คู่มือการใช้งาน RAGFlow: ติดตั้งเอนจิ้น RAG แบบโอเพนซอร์สอย่างไร, ป้อนเอกสารอย่างไร, และทำอย่างไรไม่ให้ AI มั่วข้อมูล

โยน PDF ทั้งตู้ของบริษัทให้ AI อ่าน แล้วมันก็เริ่มพูดจาเหลวไหลอย่างจริงจัง—นี่น่าจะเป็นสถานการณ์ที่ทุกคนที่อยากทำฐานความรู้ขององค์กรต้องเคยเจอ RAGFlow แก้ปัญหานี้ด้วย "การทำความเข้าใจเอกสารเชิงลึก" ควบคู่ไปกับการอ้างอิงแหล่งที่มาที่ตรวจสอบได้ บทความนี้จะเล่าตั้งแต่การติดตั้งด้วย Docker, การสร้างฐานความรู้, การตั้งค่าโมเดล, ไปจนถึงวิธีทำให้คำตอบมีแหล่งที่มาแนบมาด้วย

บทนำ: เมื่อ AI อ่าน PDF ออกมาเป็นกองขยะ

ฉันเคยเจอเคสจริงเคสหนึ่ง บริษัทแห่งหนึ่งอยากทำระบบฐานความรู้ภายในองค์กร จึงโยน PDF คู่มือผลิตภัณฑ์กว่าสามร้อยฉบับเข้าไปในระบบ RAG ผลลัพธ์คือตอนที่ AI ตอบคำถาม มันดันเอาตัวเลขในตารางไปต่อกับข้อความย่อหน้าอื่น และเอาประกาศสงวนลิขสิทธิ์ตรงท้ายกระดาษมาอ้างอิงเป็นเนื้อหาหลัก พอถามมันว่า "รุ่น A มีกำลังไฟเท่าไหร่" มันกลับตอบตัวเลขของรุ่น B มาอย่างมั่นอกมั่นใจ วิศวกรผู้รับผิดชอบยิ้มเจื่อนพร้อมบอกว่า ปัญหาไม่ได้อยู่ที่โมเดลโง่ แต่อยู่ที่ "เอกสารไม่ได้ถูกอ่านให้ออกมาดีตั้งแต่แรกต่างหาก"

นี่คือความยากที่แท้จริงของ RAG ไม่ใช่การต่อโมเดล แต่เป็นการหั่นเอกสารที่มีเลย์เอาต์ซับซ้อน มีตาราง หรือเป็นไฟล์สแกน ให้กลายเป็นชิ้นส่วนที่โมเดลสามารถย่อยได้ถูกต้องต่างหาก และนี่คือสิ่งที่ RAGFlow มุ่งเน้น บทความนี้จะพาคุณไปติดตั้งใช้งานจริง อัปโหลดเอกสาร และทำให้มันระบุแหล่งที่มาอ้างอิงได้

RAGFlow คืออะไร

RAGFlow คือเอนจิ้น RAG (Retrieval-Augmented Generation) แบบโอเพนซอร์สจาก InfiniFlow โดยมีซอร์สโค้ดเปิด The Public บน GitHub หากคุณยังไม่แน่ใจว่า RAG คืออะไร แนะนำให้อ่าน RAG คืออะไร ของเราก่อนจะเข้าใจได้ง่ายขึ้น พูดง่ายๆ ก็คือ มันทำให้ AI ค้นหาข้อมูลจากกองข้อมูลของคุณก่อนที่จะตอบ และตอบตามข้อมูลที่ค้นพบ แทนที่จะมั่วตอบจากความทรงจำ

จุดที่ RAGFlow แตกต่างจากเครื่องมือ RAG ตัวอื่นมากที่สุดก็คือ ฟังก์ชันที่เรียกว่า "ความเข้าใจเอกสารเชิงลึก" (DeepDoc) เครื่องมืออ่าน PDF ทั่วไปจะทำการดึงข้อความออกมาโต้งๆ ซึ่งเลย์เอาต์ซับซ้อนหน่อยก็จะเละเทะไปหมด แต่ RAGFlow จะทำความเข้าใจโครงสร้างเลย์เอาต์ ว่าตรงไหนคือหัวข้อ ตรงไหนคือตาราง ตรงไหนค่าย่อหน้า แม้แต่ไฟล์สแกน (PDF แบบรูปภาพ) ก็สามารถจัดการได้ผ่าน OCR โดยมันรองรับหลากหลายรูปแบบ เช่น Word, งานนำเสนอ, Excel, ข้อความธรรมดา, รูปภาพ, ไฟล์สแกน, ข้อมูลที่มีโครงสร้าง และหน้าเว็บ

อีกจุดสำคัญคือการอ้างอิงที่ตรวจสอบย้อนกลับได้ เมื่อมันตอบคำถาม มันจะระบุที่มาของคำตอบ ทำให้คุณเห็นว่า "ประโยคนี้มาจากส่วนไหนของเอกสารฉบับใด" ซึ่งช่วยลดโอกาสที่คุณจะถูก AI หลอกได้อย่างมาก นอกจากนี้ มันยังผสานการทำงานกับการจัดวาง Agent ในแพลตฟอร์มอย่าง Dify ที่รองรับการร้อยเรียง RAG, เครื่องมือ และ MCP เข้าเป็นเวิร์กโฟลว์แบบภาพได้อีกด้วย

นำไปทำอะไรได้บ้าง

  • ฐานความรู้ภายในองค์กร: นำคู่มือผลิตภัณฑ์, SOP, แม่แบบสัญญามาป้อน พนักงานสามารถถามด้วยภาษาธรรมชาติ และได้คำตอบพร้อมแหล่งอ้างอิง
  • ระบบหลังบ้านตอบคำถามลูกค้า: เชื่อมต่อกับคำถามที่พบบ่อย (FAQ) และเอกสารทางเทคนิค เพื่อใช้เป็นสมองให้กับแชทบอท
  • การวิจัยและวิเคราะห์: คำพิพากษาทางกฎหมาย, งบการเงิน, หรือบทความวิชาการ ที่มีเลย์เอาต์ซับซ้อนและต้องการการอ้างอิงที่แม่นยำ ซึ่งตรงกับจุดเด่นของ DeepDoc พอดี
  • สมองส่วนที่สองส่วนบุคคล: โยนบันทึกหรืออีบุ๊กที่คุณสะสมมาหลายปีใส่ลงไป แปลงให้เป็นฐานความรู้ที่พูดคุยด้วยได้

หากต้องการทำความเข้าใจวิธีประกอบระบบ RAG โดยรวม สามารถอ่านประกอบกับ คู่มือการใช้งานจริง RAG ได้

วิธีใช้งาน: เริ่มต้นครั้งแรก

RAGFlow ติดตั้งผ่าน Docker ขั้นตอนไม่ได้ยาก แต่ค่อนข้างกินสเปคเครื่อง มาดูสเปคกันก่อน

1. ตรวจสอบความต้องการของระบบ

คำแนะนำจากทางการ: CPU อย่างน้อย 4 คอร์, แรมอย่างน้อย 16GB, พื้นที่ดิสก์อย่างน้อย 50GB, Docker 24 ขึ้นไป, Docker Compose v2.26 ขึ้นไป ข้อเรื่องแรมนี้สำคัญมาก เพราะมันต้องรันเอนจิ้นค้นหาเวกเตอร์ แรมไม่พอจะทำให้แฮงค์บ่อย อย่าคิดฝืนใช้เครื่องเล็กๆ ขนาด 4GB เด็ดขาด

2. ดึงโปรเจกต์และเริ่มการทำงาน

หลังจากโคลนมาจาก GitHub แล้ว ให้เข้าไปที่ไดเรกทอรี docker แล้วสั่งรัน:

bash
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
docker compose up -d

การรันครั้งแรกจะดาวน์โหลดอิมเมจจำนวนมาก ชงกาแฟรอสักครู่ เมื่อเสร็จแล้วให้ใช้ docker ps เพื่อตรวจสอบว่าคอนเทนเนอร์ทำงานครบทุกตัว

3. เปิดหลังบ้านและตั้งค่าโมเดล

หลังจากบริการเริ่มทำงานแล้ว ให้เปิดเบราว์เซอร์ไปที่ http://IP-เครื่องของคุณ (พอร์ต 80 เป็นค่าเริ่มต้น) ลงทะเบียนบัญชีเพื่อเข้าสู่ระบบ จากนั้นไปที่การตั้งค่าเพื่อกรอก API Key ของโมเดล ขั้นตอนนี้ข้ามไม่ได้ RAGFlow ไม่มีโมเดลมาให้ในตัว คุณต้องบอกมันว่าจะใช้ LLM ตัวไหน (สำหรับตอบคำถาม) และใช้โมเดล Embedding ตัวไหน (สำหรับแปลงข้อความให้เป็นเวกเตอร์) สามารถกรอก OpenAI, โมเดลคลาวด์ค่ายต่างๆ หรือจะเชื่อมต่อ Ollama บนเครื่องก็ได้

4. สร้างฐานความรู้และป้อนเอกสาร

สร้าง Knowledge Base ขึ้นมา แล้วอัปโหลด PDF หรือ Word ของคุณเข้าไป จุดสำคัญอยู่ตรงนี้: หลังอัปโหลดแล้ว คุณต้องเลือกเทมเพลตการตัดแบ่ง (chunk method) RAGFlow มีเทมเพลตหลากหลายที่รองรับรูปแบบเอกสารที่ต่างกัน ทั้งเอกสารทั่วไป, บทความวิชาการ, หนังสือ, กฎหมาย, งานนำเสนอ, ตาราง, คู่ถาม-ตอบ ฯลฯ เลือกเทมเพลตให้ถูก คุณภาพการตัดแบ่งจะต่างกันลิบลับ เลือกเสร็จแล้วกดวิเคราะห์ (parse) มันจะรัน DeepDoc เพื่อแยกเอกสารออกเป็นส่วนๆ

5. ตรวจสอบผลลัพธ์การตัดแบ่ง

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

6. สร้างผู้ช่วยแชทและทดสอบการถาม-ตอบ

เมื่อการตัดแบ่งไม่มีปัญหาแล้ว ให้สร้าง Chat เชื่อมฐานความรู้ตัวนี้เข้าไป ก็เริ่มถามคำถามได้เลย ตอนที่มันตอบ จะแนบแหล่งที่มาอ้างอิงมาด้วย สามารถคลิกเพื่อกระโดดไปยังส่วนข้อความต้นฉบับได้

เทคนิคขั้นสูง

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

ใช้การค้นหาแบบผสม (Hybrid Search): RAGFlow ทำการค้นหาด้วยเวกเตอร์และการค้นหาด้วยคีย์เวิร์ด BM25 ไปพร้อมๆ กัน พร้อมทั้งมีการจัดลำดับใหม่ (re-rank) การค้นหาด้วยเวกเตอร์ล้วน มักจะจับคำค้นหาประเภท "คำศัพท์เฉพาะ,หมายเลขชิ้นส่วน,หมายเลขมาตรา" ได้ไม่ค่อยแม่น ซึ่งการค้นหาด้วยคีย์เวิร์ดเข้ามาช่วยอุดช่องว่างนี้พอดี มีค่าเริ่มต้นให้แล้ว แต่คุณสามารถปรับน้ำหนักได้

เชื่อม Ollama เพื่อรันโมเดลโลคอล: สำหรับผู้ที่ใส่ใจเรื่องความเป็นส่วนตัวของข้อมูล และไม่อยากส่งเอกสารของบริษัทขึ้นคลาวด์ สามารถชี้ทั้ง LLM และโมเดล Embedding ไปที่ Ollama บนเครื่องได้เลย รันแบบออฟไลน์ทั้งชุด แลกมากับการต้องใช้ฮาร์ดแวร์ที่ดีขึ้น

เชื่อมต่อ API เข้ากับระบบของตัวเอง: RAGFlow มี API ให้บริการ คุณสามารถใช้มันเป็นเลเยอร์การค้นหาหลังบ้าน และใช้หน้าตาอินเทอร์เฟซของตัวเองที่หน้าบ้าน หรือต่อเข้ากับระบบบริการลูกค้าที่มีอยู่แล้ว หากต้องการทำเวิร์กโฟลว์ที่ซับซ้อนขึ้น ก็สามารถใช้ฟังก์ชันการจัดวาง Agent ของมันได้ ซึ่งมีแนวคิดเชื่อมโยงกับ การพัฒนา AI Agent

ข้อผิดพลาดทั่วไปและข้อควรระวัง

  • ตั้งค่าแรมให้น้อยเกินไปแล้วฝืนติดตั้ง: 16GB คือขีดจำกัดขั้นต่ำไม่ใช่คำแนะนำ หากต่ำกว่านี้คอนเทนเนอร์จะพังซ้ำแล้วซ้ำเล่า มือใหม่มักติดปัญหาตรงนี้และหาทางออกไม่เจอ
  • ลืมตั้งค่าโมเดล Embedding: หลายคนตั้งค่าแค่ LLM สำหรับตอบ แต่ลืมโมเดล Embedding ส่งผลให้เอกสารไม่ได้ถูกแปลงเป็นเวกเตอร์อย่างถูกต้อง ถามอะไรก็ตอบไม่แม่น ต้องตั้งค่าให้ครบทั้งสองตัว
  • เลือกเทมเพลตการตัดแบ่งส่งเดชหรือไม่ตรวจสอบ: ใช้เทมเพลตเริ่มต้นกับ PDF ที่มีโครงสร้างซับซ้อน แล้วมาบ่นว่าคำตอบแย่ ปัญหา 80% มาจากการตัดแบ่งนี่แหละ ต้องดูผลลัพธ์ภาพตัวอย่างทุกครั้ง พังตรงไหนให้ปรับตรงนั้น
  • คิดว่ามีแหล่งอ้างอิงแล้วจะถูกต้อง 100%: การอ้างอิงที่ตรวจสอบย้อนกลับได้มีไว้เพื่อให้คุณ "ตรวจสอบได้" ไม่ใช่ "รับประกันว่าถูก" การอ้างอิงช่วยลดความเสี่ยงเรื่องภาพหลอน (Hallucination) แต่โมเดลก็ยังอาจตีความข้อความผิดพลาดได้ ในกรณีสำคัญโปรดตรวจสอบแหล่งที่มาด้วยตาอีกรอบ หากอยากเข้าใจเพิ่มเติมว่าทำไม AI ถึงพูดมั่ว อ่าน AI Hallucination คืออะไร
  • คิดเรื่องความเป็นส่วนตัวของข้อมูลไม่รอบคอบ: หากใช้โมเดลคลาวด์ ชิ้นส่วนเอกสารของคุณจะถูกส่งไปยังผู้ให้บริการโมเดล ข้อมูลที่ละเอียดอ่อนโปรดใช้แนวทางโมเดลบนเครื่อง (Local Model)

ความเห็นจาก TheAI學院

เครื่องมือที่รองรับ RAG ในตลาดมีอยู่เกลื่อนกลาด แต่ส่วนใหญ่จะไปเน้นหนักที่ "วิธีต่อโมเดล, วิธีจัดเก็บเวกเตอร์" โดยตั้งสมมติฐานว่าเอกสารจะถูกอ่านเข้ามาได้อย่างสะอาดหมดจด ในความเป็นจริงแล้ว การแยกวิเคราะห์เอกสารต่างหากคือจุดที่โปรเจกต์ 90% ต้องล่มไม่เป็นท่า RAGFlow ทุ่มเทแรงไปที่ DeepDoc และการแสดงผลภาพของการตัดแบ่ง ซึ่งเท่ากับการยอมรับและจัดการกับงานสกปรกนี้ตรงๆ สำหรับทีมที่ต้องการทำฐานความรู้องค์กร และกำลังหัวเสียกับตารางและไฟล์สแกน การตัดสินใจนี้ถือว่าตอบโจทย์มาก

คนที่ทำ RAG มานานจะเข้าใจประโยคนี้: คุณภาพของคำตอบไม่ได้วัดกันที่โมเดลเก่งแค่ไหน แต่วัดกันที่เอกสารได้รับการอ่านที่ดีพอหรือเปล่า RAGFlow วางเดิมพันไว้ตรงจุดนี้ และถือว่าวางเดิมพันได้ถูกต้อง

ต้องตระหนักว่านี่คือเครื่องมือที่เน้นงานวิศวกรรม ต้องรู้เรื่อง Docker และต้องมีเครื่องคอมพิวเตอร์ดีๆ สักเครื่อง ไม่ใช่บริการคลาวด์ที่กดติดตั้งแล้วใช้ได้เลย หากคุณเป็นบุคคลทั่วไปที่แค่อยากลองเล่น RAG ง่ายๆ เกณฑ์ความยากอาจจะสูงไปหน่อย แต่ถ้าคุณต้องการสร้างเอง ควบคุมได้เอง และต้องจัดการกับเอกสารที่ซับซ้อน มันคุ้มค่าที่จะสละเวลาช่วงบ่ายเพื่อติดตั้งมาลองเล่นดูสักตั้ง

แหล่งที่มา

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

RAGFlow ฟรีไหม? ถ้าโฮสต์เองต้องเสียเงินไหม?

RAGFlow เป็นโอเพนซอร์สในตัว หากคุณปรับใช้ผ่าน Docker บนเซิร์ฟเวอร์ของคุณเอง จะไม่มีค่าใช้จ่ายซอฟต์แวร์ แต่จะมีต้นทุนอยู่สองส่วน คือ ฮาร์ดแวร์ (แนะนำเครื่องที่มีแรม 16GB ขึ้นไป) และค่าใช้จ่ายโมเดล—ค่า API ของ LLM บนคลาวด์และโมเดล Embedding ที่คุณเชื่อมต่อจะถูกคิดเงินต่างหาก หากเปลี่ยนมาใช้โมเดล Ollama ในเครื่องทั้งหมด ทางทฤษฎีแล้วสามารถทำให้ไม่มีค่า API เลยได้ แต่แลกมากับการต้องใช้ฮาร์ดแวร์ที่ดีขึ้น นอกจากนี้ ทางการยังมีบริการบนคลาวด์แบบเสียเงินให้เลือกด้วย สำหรับผู้ที่ไม่ต้องการติดตั้งเอง

ฉันเขียนโปรแกรมไม่ค่อยเก่ง จะติดตั้งได้ไหม?

การติดตั้ง RAGFlow จะพึ่งพา Docker เป็นหลัก ขอแค่ทำตามคำสั่ง clone โปรเจกต์ และรัน docker compose up ก็แทบไม่ต้องเขียนโปรแกรมแล้ว แต่คุณต้องมีความเข้าใจพื้นฐานเกี่ยวกับ Command Line และ Docker และต้องสามารถแก้ปัญหาด้วยตัวเองได้เมื่อคอนเทนเนอร์ไม่ยอมทำงานหรือหน่วยความจำไม่พอ จึงพูดได้ว่าเป็นเครื่องมือที่เน้นฝั่งวิศวกรรม สำหรับมือใหม่ที่ไม่เคยแตะ Terminal เลย อุปสรรคจะค่อนข้างสูง แนะนำให้หาเพื่อนร่วมงานที่เป็น Docker มาช่วยในการติดตั้งครั้งแรก

ทำไมต้องเลือกเทมเพลตการตัดแบ่งด้วย? ใช้ค่าเริ่มต้นไม่ได้หรือ?

ใช้ค่าเริ่มต้นได้ แต่ผลลัพธ์มักจะไม่ค่อยน่าพอใจ เทมเพลตการตัดแบ่งของ RAGFlow ถูกออกแบบมาสำหรับเอกสารแต่ละประเภท—บทความวิชาการ, หนังสือ, กฎหมาย, งานนำเสนอ, และตาราง ต่างก็มีตรรกะที่สอดคล้องกัน เอกสารที่มีเลย์เอาต์ซับซ้อนหากเลือกเทมเพลตผิด จะทำให้ตารางถูกตัดขาด หรือหัวข้อกับเนื้อหาปะปนกัน ซึ่งจะไปฉุดความแม่นยำในการตอบคำถามลงทันที การเสียเวลาสักหนึ่งนาทีเพื่อเลือกเทมเพลตที่ถูกต้องและตรวจสอบผลลัพธ์การแยกวิเคราะห์ด้วยตา เป็นขั้นตอนที่คุ้มค่าที่สุด อย่าประหยัดเวลาตรงนี้เลย

RAGFlow ต่างจากเครื่องมืออย่าง Dify หรือ LangChain อย่างไร?

ตำแหน่งหน้าที่ต่างกัน LangChain เป็นเฟรมเวิร์กสำหรับการพัฒนา ให้วิศวกรเขียนโค้ดเพื่อประกอบขั้นตอน RAG; Dify จะเอียงไปทางแพลตฟอร์มพัฒนาแอปพลิเคชัน LLM ที่ครอบคลุมกว้างกว่า ในขณะที่ RAGFlow จะเน้นหนักไปที่ "คุณภาพความเข้าใจและการดึงข้อมูลจากเอกสาร" โดยมี DeepDoc การวิเคราะห์เชิงลึกและการแสดงผลการตัดแบ่งด้วยภาพเป็นจุดเด่น หากปัญหาของคุณคือ "อ่านเอกสารไม่สะอาด, คำตอบไม่แม่นยำ" RAGFlow คือยาที่รักษาตรงจุด แต่ถ้าสิ่งที่คุณต้องการคือแพลตฟอร์มการจัดเตรียมแอปพลิเคชันที่สมบูรณ์ อาจจะต้องใช้งานร่วมกับเครื่องมืออย่าง Dify หรือเปลี่ยนไปใช้เครื่องมือเหล่านั้นแทน

繁體中文版 →