คู่มือหน้าตั้งค่าการค้นหา
หน้า ตั้งค่า ให้คุณปรับ "วิธีคิดคะแนน" ของระบบค้นหาได้เอง โดยไม่ต้องแก้โค้ดหรือรีสตาร์ท ค่าทั้งหมดถูกเก็บในฐานข้อมูล คู่มือนี้อธิบายทุกช่องว่าคืออะไร ปรับแล้วเกิดอะไรขึ้น และควรตั้งเท่าไร
กฎ 2 ข้อที่ต้องรู้ก่อนปรับ
✓ ค่าที่มีผล "ทันที"
ค่าจูนการจัดอันดับ, ราคา, และ stopword — กดบันทึกแล้วใช้ได้เลย ลองค้นใหม่ก็เห็นผล
⚠ ค่าที่ต้อง "ประมวลผลใหม่"
เปลี่ยน model/dimension หรือศัพท์กฎหมาย — บันทึกแล้วต้องกดปุ่มประมวลผลดัชนีใหม่ ด้วย มิฉะนั้นข้อมูลเดิมยังไม่เปลี่ยน
ระบบจะขึ้นแบนเนอร์สีเหลืองเตือนเองทุกครั้งที่คุณบันทึกค่าที่ต้องประมวลผลใหม่ — ไม่ต้องจำเอง
1ค่าจูนการจัดอันดับ มีผลทันที
กลุ่มนี้ควบคุมว่าระบบให้คะแนน "ความหมาย" กับ "การจับคำ" อย่างละเท่าไร แล้วรวมกันยังไง — ปรับได้อิสระ ปลอดภัย ลองผิดลองถูกได้
RRF k (ค่ามาตรฐาน 60)
ตัวคุมว่า "อันดับ 1 ควรชนะอันดับรอง ๆ ขาดแค่ไหน"
- • ค่าต่ำ (เช่น 20) → อันดับต้น ๆ ได้เปรียบมาก ผลบนสุดโดดเด่นชัด
- • ค่าสูง (เช่น 100) → คะแนนของทุกอันดับใกล้กัน เกลี่ยความสำคัญมากขึ้น
แนะนำ: ปล่อย 60 ไว้ ถ้าไม่มีเหตุผลเฉพาะ
Candidates ต่อฝั่ง (ค่ามาตรฐาน 50)
แต่ละวิธี (ความหมาย/คำ) จะดึงผลมากี่รายการมาพิจารณา ก่อนรวมคะแนน
- • เพิ่มขึ้น (เช่น 100–150) → มีโอกาสเจอผลที่ดีแต่ซ่อนอยู่ลึกมากขึ้น (recall ดีขึ้น) ช้าลงเล็กน้อย
- • ลดลง → เร็วขึ้นนิด แต่เสี่ยงพลาดผลดี ๆ
แนะนำ: ขึ้นเป็น 100 ได้ถ้ารู้สึกว่าบางเรื่อง "หาไม่เจอทั้งที่ควรมี"
Similarity ขั้นต่ำ (ค่ามาตรฐาน 0 = ปิด)
"ด่านคัดกรอง" — ตัดผลฝั่งความหมายที่เหมือนน้อยเกินไปทิ้งก่อนรวมคะแนน (ค่า 0–0.99)
- • 0 → ไม่ตัดอะไรเลย (รับผลฝั่งความหมายทั้งหมด)
- • 0.3–0.4 → ตัดผลที่เกี่ยวข้องน้อยออก ช่วยลด "ผลขยะ" เมื่อคำค้นกว้าง
⚠ ตั้งสูงไป (เช่น 0.6+) อาจตัดผลดี ๆ ทิ้งด้วย — ค่อย ๆ ขยับทีละ 0.05 แล้วดูผลที่ช่องทดสอบ
น้ำหนักฝั่งความหมาย / ฝั่งคีย์เวิร์ด (ค่ามาตรฐาน 1.0 / 1.0)
บอกว่าตอนรวมคะแนน จะเชื่อ "ความหมาย" หรือ "คำที่ตรง" มากกว่ากัน
- • เพิ่มน้ำหนักความหมาย (เช่น 1.5 / 1.0) → เน้นเข้าใจเจตนา เหมาะกับคำถามเชิงบรรยาย
- • เพิ่มน้ำหนักคีย์เวิร์ด (เช่น 1.0 / 1.5) → เน้นคำตรงตัว เหมาะเมื่อผู้ใช้พิมพ์คำเฉพาะ/เลขมาตรา
แนะนำ: เริ่มที่ 1.0 เท่ากันทั้งคู่ แล้วค่อยเอียงทีละ 0.2 ตามพฤติกรรมผู้ใช้จริง
2Embedding ส่วนใหญ่ต้องประมวลผลใหม่
"Embedding" คือเครื่องมือที่แปลงข้อความเป็นความหมายเชิงตัวเลข — เป็นหัวใจของการค้นด้วยความหมาย
Model ⚠ เปลี่ยนแล้วต้อง Re-embed
- • text-embedding-3-small — เร็ว ประหยัด ($0.02/1M) คุณภาพดีพอสำหรับงานทั่วไป (ค่ามาตรฐาน)
- • text-embedding-3-large — แม่นกว่าเชิงความหมาย โดยเฉพาะภาษาไทย แต่แพงกว่า ~6.5 เท่า ($0.13/1M)
เปลี่ยน model แล้วต้องกด Re-embed ทั้งหมด เพื่อฝังข้อมูลใหม่ให้เข้ากัน มิฉะนั้นคะแนนความหมายจะเพี้ยน
Dimension ⚠ เปลี่ยนแล้วต้อง Re-embed
จำนวน "มิติ" ของความหมาย (256–2000) มาก = ละเอียดกว่าแต่กินพื้นที่/ช้ากว่านิด ค่ามาตรฐาน 1536 เหมาะกับงานส่วนใหญ่
ระบบจะจัดการปรับโครงสร้างฐานข้อมูลและสร้างดัชนีใหม่ให้เองตอน Re-embed — คุณแค่กดปุ่ม
ราคา USD / 1M tokens ✓ มีผลทันที
ใช้คำนวณค่าใช้จ่ายที่แสดงในหน้าสถิติเท่านั้น ไม่กระทบการค้นหา — ตั้งให้ตรงกับราคาจริงของ model ที่เลือก (small = 0.02, large = 0.13)
3พจนานุกรมตัดคำ
ภาษาไทยไม่มีเว้นวรรคระหว่างคำ ระบบจึงต้อง "ตัดคำ" เอง กลุ่มนี้ช่วยให้ตัดคำได้แม่นขึ้นตามศัพท์เฉพาะทาง
ศัพท์กฎหมายเพิ่มเติม ⚠ เปลี่ยนแล้วต้อง Re-tokenize
ใส่ศัพท์เฉพาะที่ระบบมักตัดผิด (บรรทัดละคำ) เช่น "หนังสือรับรองถิ่นกำเนิดสินค้า" เพื่อให้ระบบมองเป็นคำเดียวไม่ตัดแตก
เพิ่ม/ลบแล้วต้องกด Re-tokenize เพื่ออัปเดตดัชนีคำของเอกสารเดิม (ฟรี ไม่เสียเงิน)
Stopword เพิ่มเติม ✓ มีผลทันที
คำที่ไม่ช่วยในการค้น เช่น คำลงท้าย/คำถาม ("ขอ", "หน่อย", "ไหม") — ใส่ไว้เพื่อให้ระบบตัดออกจากคำค้น ผลจะแม่นขึ้น
มีผลเฉพาะฝั่งคำค้นของผู้ใช้ ไม่แตะข้อมูลเอกสาร จึงใช้ได้ทันทีไม่ต้องประมวลผลใหม่
4ประมวลผลดัชนีใหม่
เมื่อคุณเปลี่ยนค่าที่กระทบข้อมูลเดิม (แบนเนอร์เหลืองจะเตือน) ให้มากดปุ่มที่นี่เพื่ออัปเดตเอกสารทั้งหมด
Re-embed ทั้งหมด
ฝังความหมายใหม่ให้ทุกเอกสาร — ใช้เมื่อเปลี่ยน model หรือ dimension
💰 เสียค่า OpenAI (ตามจำนวนเอกสาร)
Re-tokenize ทั้งหมด
ตัดคำเอกสารใหม่ตามพจนานุกรมล่าสุด — ใช้เมื่อเพิ่ม/ลบศัพท์กฎหมาย
✓ ฟรี ไม่เสียเงิน
ขั้นตอนเมื่อกดปุ่ม
- ระบบแสดงประมาณการก่อน (จำนวนเอกสาร + ค่าใช้จ่ายโดยประมาณสำหรับ Re-embed)
- กด ยืนยัน เริ่มเลย เพื่อเริ่มจริง (หรือ ยกเลิก)
- มีแถบความคืบหน้าบอกว่าทำไปกี่ % — รอจนขึ้น "เสร็จแล้ว ✓"
ทำได้ทีละงาน — ถ้ามีงานกำลังรันอยู่ ระบบจะไม่ให้เริ่มซ้ำ ปลอดภัยแม้ปิดหน้าจอไปแล้วเปิดกลับมาดูใหม่
5ทดสอบค้นหา (ดู breakdown)
เครื่องมือสำคัญที่สุดสำหรับการปรับจูน — พิมพ์คำค้นแล้วเห็นเบื้องหลังคะแนนทุกคอลัมน์ เพื่อเข้าใจว่าทำไมผลจึงเรียงแบบนี้
| คอลัมน์ | ความหมาย |
|---|---|
| RRF รวม | คะแนนสุดท้ายที่ใช้เรียงอันดับ (รวมสองฝั่งแล้ว) |
| vec # | อันดับจากฝั่งความหมาย (— = ไม่ติดฝั่งนี้) |
| scorevec | คะแนนส่วนที่มาจากฝั่งความหมาย |
| kw # | อันดับจากฝั่งคำ (— = ไม่ติดฝั่งนี้) |
| scorekw | คะแนนส่วนที่มาจากฝั่งคำ |
| ความหมาย | % ความใกล้เชิงความหมาย (เหมือนป้ายในหน้าค้นหา) |
| คำที่ตรง | คำในคำค้นที่พบจริงในเอกสารนี้ |
บรรทัดบนสุดยังบอก "ตัดคำ" ว่าระบบแยกคำค้นเป็นอะไร และตัดคำไหนทิ้ง — ช่วยตรวจว่า stopword/ศัพท์กฎหมายที่ตั้งไว้ทำงานถูกไหม
6สูตรปรับแต่ง (อยากได้แบบนี้ → ทำแบบนี้)
“ผลขยะ/ไม่เกี่ยวโผล่มาเยอะ”
ขยับ Similarity ขั้นต่ำ ขึ้นทีละ 0.05 (เช่น 0.3) เพื่อตัดผลที่เหมือนน้อยทิ้ง
“บางเรื่องหาไม่เจอทั้งที่ควรมี”
เพิ่ม Candidates ต่อฝั่ง เป็น 100–150 เพื่อดึงผลมาพิจารณามากขึ้น
“ผู้ใช้พิมพ์คำถามยาว ๆ เชิงบรรยาย”
เพิ่ม น้ำหนักฝั่งความหมาย เป็น ~1.3–1.5
“ผู้ใช้ค้นด้วยคำเฉพาะ/เลขมาตรา”
เพิ่ม น้ำหนักฝั่งคีย์เวิร์ด เป็น ~1.3–1.5
“ศัพท์เฉพาะถูกตัดแตกเป็นคำย่อย”
เพิ่มคำนั้นใน ศัพท์กฎหมายเพิ่มเติม → บันทึก → กด Re-tokenize
“อยากได้ความแม่นสูงสุด ไม่กังวลค่าใช้จ่าย”
เปลี่ยน Model เป็น large → ตั้งราคาเป็น 0.13 → บันทึก → กด Re-embed
7คำถามที่พบบ่อย
ปรับพลาดจะพังไหม? ⌄
ไม่พัง — ค่าจูนการจัดอันดับปรับกลับได้ทันทีด้วยปุ่ม คืนค่า default ส่วนที่กระทบข้อมูล (Re-embed/Re-tokenize) ก็แค่กดทำใหม่ ระบบออกแบบให้ทำซ้ำได้เสมอ
บันทึกแล้วทำไมผลค้นยังเหมือนเดิม? ⌄
ถ้าเป็นค่าที่ "ต้องประมวลผลใหม่" (มีแบนเนอร์เหลืองเตือน) ต้องกด Re-embed หรือ Re-tokenize ด้วย ผลถึงจะเปลี่ยน ส่วนค่าจูนทั่วไปมีผลทันที ลองค้นใหม่อีกครั้ง
Re-embed เสียเงินเท่าไร? ⌄
ระบบจะบอกประมาณการก่อนเสมอเมื่อกดปุ่ม (ทั้ง USD และบาท) คุณดูตัวเลขก่อนแล้วค่อยตัดสินใจยืนยัน — ปกติชุดข้อมูลไม่ใหญ่จะถูกมาก
ต้องใส่ API key ไหม? ⌄
ใช่ — ช่อง API key มุมขวาบนต้องตรงกับที่ตั้งไว้ในระบบ จึงจะบันทึกค่า/สั่งประมวลผลได้ (เป็นการป้องกันไม่ให้คนอื่นแก้ค่า) ระบบจำค่าไว้ให้หลังใส่ครั้งแรก