บทความทั้งหมด
  • AI
  • RAG
  • วิศวกรรม

RAG สำหรับการสนับสนุนลูกค้า: ทำอย่างไรให้คำตอบของ AI แม่นยำจริง

LLM ล้วน ๆ มักแต่งคำตอบที่ฟังดูน่าเชื่อขึ้นมาเอง การสร้างที่เสริมด้วยการค้นคืน (RAG) ทำให้ AI ตอบโดยอิงเนื้อหาของคุณเอง นี่คือวิธีที่ AskAIs ทำทีละขั้นตอน

ทีม AskAIs

อ่าน 7 นาที

ถาม LLM ล้วน ๆ ว่า “จะรีเซ็ตรหัสผ่านได้อย่างไร?” แล้วคุณจะได้คำตอบที่ฟังดูน่าเชื่อ แต่น่าจะผิด: ปุ่มคนละปุ่ม ขั้นตอนคนละแบบ URL คนละที่ RAG (การสร้างที่เสริมด้วยการค้นคืน) แก้ปัญหานี้ด้วยการใส่ช่วงข้อความที่ถูกต้องจากเนื้อหาของคุณเองลงในพรอมต์ก่อนที่โมเดลจะตอบ

ภาพรวมของไปป์ไลน์

สามขั้นตอน: นำเข้า ค้นคืน และสร้างคำตอบ

1. นำเข้า

  • อัปโหลดไฟล์ PDF, DOCX, TXT, Markdown, CSV หรือ JSON รวบรวมข้อมูลจากเว็บไซต์ของคุณ หรือเพิ่มคู่คำถาม-คำตอบในหน้า Training
  • เวิร์กเกอร์จะดึงข้อความออกมาและแบ่งเป็นช่วงข้อความยาวประมาณ 2,000 อักขระ (ราว 500 token) โดยซ้อนทับกัน 200 อักขระ คู่คำถาม-คำตอบแต่ละคู่จะเป็นหนึ่งช่วงข้อความ
  • แต่ละช่วงข้อความจะถูกสร้าง embedding ด้วย text-embedding-3-small (1,536 มิติ)
  • ช่วงข้อความจัดเก็บใน PostgreSQL พร้อมส่วนขยาย pgvector และดัชนี HNSW สำหรับ cosine distance

2. ค้นคืน

เมื่อข้อความของผู้เยี่ยมชมต้องใช้ข้อเท็จจริง เราจะสร้าง embedding จากข้อความล่าสุดของผู้เยี่ยมชม แล้วค้นหาด้วย cosine distance ในช่วงข้อความของพื้นที่ทำงาน คำทักทายและการคุยเล่นจะข้ามขั้นตอนนี้ คิวรีแบบย่อ:

-- Simplified. The real query also checks that the document is
-- ready, enabled, in date and visible on the visitor's platform.
SELECT c.id, c.content,
       1 - (c.embedding <=> $1::vector) AS similarity
FROM knowledge_chunks c
WHERE c.tenant_id = $2
ORDER BY c.embedding <=> $1::vector
LIMIT $3;  -- 3 × top-K candidates, re-ranked afterwards

เราดึงช่วงข้อความตัวเลือกมาเป็นสามเท่าของจำนวนที่ต้องใช้ จัดอันดับใหม่ ตัดรายการที่ต่ำกว่าเกณฑ์ความคล้าย (ประมาณ 0.3) เก็บไว้ไม่เกินสองช่วงข้อความต่อเอกสาร แล้วส่งห้าช่วงแรก (ค่าเริ่มต้น) ให้โมเดล

3. สร้างคำตอบ

ช่วงข้อความจะถูกต่อท้าย system prompt ภายในส่วนอ้างอิงที่มีขอบเขตกำกับชัดเจน โมเดลได้รับคำสั่งให้ถือว่าส่วนนั้นเป็นข้อมูล ไม่ใช่คำสั่ง ให้ใช้เฉพาะข้อมูลอ้างอิงที่ตอบคำถามได้ และไม่แต่งข้อเท็จจริงเกี่ยวกับผลิตภัณฑ์ที่ไม่มีอยู่ในนั้น

หากผู้เยี่ยมชมถามข้อเท็จจริงเกี่ยวกับผลิตภัณฑ์แต่ไม่พบข้อมูลที่เกี่ยวข้อง ระบบจะไม่เรียกโมเดลเลย: ผู้เยี่ยมชมจะได้รับแจ้งว่าไม่มีข้อมูลนั้น และแชทจะส่งต่อให้คน เว้นแต่จะปิดการส่งต่ออัตโนมัติไว้

ลดต้นทุน

สามสิ่งที่ช่วยให้ฐานความรู้ขนาดใหญ่มีต้นทุนที่รับได้:

  • แคช embedding: ข้อความค้นหาเดียวกันจะได้ embedding เดียวกัน คีย์แคชคือชื่อโมเดลรวมกับแฮช SHA-1 ของข้อความ เก็บไว้ใน Redis เป็นเวลา 24 ชั่วโมง
  • การแคชพรอมต์: สำหรับโมเดล Claude คำขอจะขอให้ Anthropic แคชพรอมต์ไว้ และ OpenAI จะแคชพรอมต์ยาวโดยอัตโนมัติ ส่วนอ้างอิงเปลี่ยนไปทุกครั้งที่ตอบ ส่วนที่ได้ประโยชน์จึงเป็นส่วนคงที่ของพรอมต์เป็นหลัก
  • การข้ามตามเกณฑ์: หากไม่มีช่วงข้อความใดผ่านเกณฑ์ ก็จะไม่มีอะไรถูกเพิ่มลงในพรอมต์

เมื่อ RAG ยังไม่พอ

RAG ตอบคำถามแบบ “ทำอย่างไร…?” ได้ดี แต่ตอบ “คำสั่งซื้อของฉันอยู่ที่ไหน?” ไม่ได้ เพราะข้อมูลนั้นไม่ได้อยู่ในเอกสารของคุณ

สำหรับกรณีนี้ AskAIs มี Custom tools: คุณอธิบายเอนด์พอยต์ HTTP ในระบบของคุณเอง เช่น คำสั่งซื้อ การจอง หรือสต็อกสินค้า แล้ว AI จะเรียกใช้ได้ระหว่างเขียนคำตอบ คำถามทั่วไปตอบจากความรู้ของคุณ คำถามเฉพาะบุคคลตอบจากระบบของคุณ และที่เหลือส่งต่อให้ทีมของคุณ

เริ่มต้นฟรีวันนี้

เจ้าหน้าที่ 1 คน การตอบกลับด้วย AI 100 ครั้งต่อเดือน พร้อมแอป iPhone, iPad และ Android ฟรีตลอดไป อัปเกรดได้เมื่อทีมของคุณเติบโต

  • ไม่ต้องใช้บัตรเครดิต
  • ตั้งค่าเสร็จในไม่กี่นาที