สารบัญ — บทที่ ๑๐ / ๑๖
PART 1 · รู้จัก
๑ · BOMLLM คืออะไร
๒ · สถาปัตยกรรม 4 เครื่อง
๓ · ฮาร์ดแวร์ที่ต้องมี
PART 2 · ติดตั้ง
๔ · เตรียมเครือข่าย
๕ · Mac Mini = สมอง
๖ · VPS = หน้าบ้าน
๗ · .env และ litellm.yaml
๘ · Virtual keys และงบประมาณ
PART 3 · ใช้งาน
๙ · Open WebUI ครั้งแรก
▸ ๑๐ · ลงโมเดลเพิ่มและส่วนเสริม
๑๑ · ภาพและเสียง (optional)
๑๒ · สูตรภาษาไทย
PART 4 · ต่อช่องทาง
๑๓ · LINE และ Telegram bot
๑๔ · MT5 EA อ่านอย่างเดียว และ content pipeline
PART 5 · ดูแล
๑๕ · ความปลอดภัยและ monitoring
๑๖ · อัปเกรดและแก้ปัญหา
PART 3 · ใช้งาน

๑๐10ลงโมเดลเพิ่มและส่วนเสริม

Models, embeddings, tools, pipelines

TL;DR — สรุปใน 30 วินาทีtldr

บทนี้ต่อยอดหน้าร้านให้เก่งขึ้น: ต่อ RAG คลังความรู้ (embeddings + reranker), ตัวค้นเว็บในเครื่อง, และเครื่องมือเสริม (tools/pipelines) — ทั้งหมดฟรีและวิ่งบนเครื่องของเราเอง

เมื่อไหร่ควรใช้ / When to usewhen to use

ทำเมื่อเว็บแชทใช้ได้ปกติแล้ว (บทที่ ๙) และอยากได้:

  • คลังความรู้องค์กร — อัปโหลด PDF/เอกสาร/คู่มือ แล้วถาม-ตอบได้โดยอ้างอิงไฟล์จริง
  • คำตอบที่มีแหล่งอ้างอิง — ระบบค้นเว็บในเครื่อง + การอ้างอิงตอนตอบ
  • คุณภาพ RAG ที่ดีขึ้น — reranker ช่วยคัดข้อมูลที่เกี่ยวจริงก่อนเข้าโมเดล

วิธีทำ / How-tohow to

ส่วนที่ 1 — Embeddings (หัวใจของ RAG): โมเดลแปลงข้อความเป็นเวกเตอร์ bge-m3 รันบน Mac ฟรี

# ตรวจว่ามีบน Mac แล้ว (ถ้าไม่มี: ollama pull bge-m3)
ollama pull bge-m3

# WebUI เรียกใช้ผ่าน LiteLLM route ชื่อ local-embed
# (ตั้งไว้แล้วใน litellm.yaml: model=ollama/bge-m3, api_base=Mac)

การตั้งค่าฝั่ง WebUI: RAG_EMBEDDING_ENGINE=ollama + RAG_EMBEDDING_MODEL=bge-m3 (บทที่ ๖)

ส่วนที่ 2 — คลังเวกเตอร์: Qdrant เก็บเวกเตอร์ทั้งหมด (รันอยู่แล้วจาก bootstrap, bind localhost เท่านั้น) — อัปโหลดเอกสารที่หน้า Workspace ของ WebUI: ลากไฟล์เข้า → ระบบหั่นเป็นท่อน → ทำ embeddings → เก็บ Qdrant

ส่วนที่ 3 — Reranker (ยกระดับความแม่น): qwen3-reranker-4b รันบน i9 (:11435) ทำหน้าที่จัดอันดับ "ท่อนเอกสารไหนเกี่ยวกับคำถามจริง ๆ" ก่อนส่งเข้าโมเดล — กติกาสำคัญ: ถ้า reranker ตาย ระบบ fail-open กลับไปใช้ผลแบบไม่เรียงใหม่ (มี timeout คุมไว้) ไม่ใช่พังทั้งระบบ

ส่วนที่ 4 — ค้นเว็บในเครื่อง: SearXNG (รันแล้วในบทที่ ๖) — เปิดใช้ต่อคำถามได้จากปุ่ม "เว็บเสิร์ช" ในกล่องแชท ผลค้นจะถูกแนบเป็นบริบท (context) ไม่ใช่คำสั่ง — โมเดลถูกสอนด้วย system prompt ให้ปฎิบัติตามเจ้าของระบบเท่านั้น

ส่วนที่ 5 — Tools/Pipelines: หน้าร้านรองรับปลั๊กอินเสริม (เช่น ประมวลผลภาพ, เรียก API ภายนอก) — ติดตั้งผ่านเมนู Admin Panel → Functions/Pipelines ของเราใช้เบา ๆ: สร้างภาพผ่าน images.py ไปยัง router บทที่ ๑๑ เป็นหลัก

ถ้าติดตรงไหน → บทที่ ๑๖

ตัวอย่างการตั้งค่า / Config exampleconfig example

สรุปสายพาน RAG ทั้งเส้น:

คำถามผู้ใช้ (WebUI)
  -> ค้นคลัง Qdrant ด้วยเวกเตอร์จาก bge-m3 (ทำบน Mac, ฟรี)
  -> reranker บน i9 จัดอันดับท่อนเอกสารที่เกี่ยวที่สุด
  -> รวมกับผล SearXNG ถ้าเปิดค้นเว็บ
  -> ส่ง "คำถาม + เอกสารที่คัดแล้ว" เข้าโมเดลหลักบน Mac
  -> คำตอบอ้างอิง [1] [2] ตามที่ผู้ใช้เห็น

ทุกกล่องอยู่ในบ้าน: VPS (Qdrant+SearXNG), Mac (embeddings+โมเดล), i9 (reranker)

Pro tip — เคล็ดลับจากสนามจริงpro tip

★ PROD LESSON
RAG ไม่ใช่เวทมนตร์ — คุณภาพ RAG พึ่งความสะอาดของเอกสารมากกว่าโมเดล — ไฟล์สแกนภาพไม่มีข้อความก็หาไม่เจอ, เอกสารยาว ๆ ควรหั่นเป็นท่อนสั้นมีหัวข้อ และตั้ง top-k ไม่เกิน ~5 ก่อน เพราะส่งมากไปโมเดลจะสับสนแทนที่จะฉลาดขึ้น
★ PRO TIP
เอกสารไหนไม่ควรอัปโหลด — อย่าใส่ไฟล์ที่มีความลับของลูกค้า/บัญชีเงินเข้าคลัง RAG ที่ผู้ใช้หลายคนใช้ร่วมกัน — แยก workspace ต่อกลุ่มผู้ใช้ หรือเก็บของอ่อนไว้บนเครื่องคนเดียว

คำถามที่พบบ่อย / FAQfaq

ถาม: อัปโหลดภาษาไทยอ่านได้ไหม? — ได้ bge-m3 รองรับหลายภาษารวมถึงไทย และโมเดลหลักตอบอ้างอิงภาษาไทยได้ตรงท่อน

ถาม: ค้นเว็บแล้วได้คำตอบเพี้ยน ๆ บ้าง? — มีกรณีที่เปิดค้นเว็บแล้วโมเดลทักทายแทนที่จะตอบคำถามราคาปัจจุบัน (ติดตามใน issue ของ repo) วิธีชั่วคราว: ถามตรง ๆ ไม่เปิดค้นเว็บสำหรับข้อมูลเรียลไทม์ หรือเปิดเฉพาะคำถามทั่วไป

คำถามอื่น ๆ ดูที่ FAQ

ดูเพิ่ม / See alsosee also

ภาพประกอบ / Figuresfigures

เส้นทางของคำถามที่มี RAG และค้นเว็บ
สายพานเดียวกับในหัวข้อ config ของบทนี้

วิดีโอ / Videovideo

🎬
วิดีโอกำลังผลิต — ติดตามที่ YouTube @icafefx
คลิปสาธิตทีละขั้นของบทนี้จะอัปโหลดที่ youtube.com/@icafefx เร็ว ๆ นี้