n8n Thai
by n8n Thai

สร้างระบบ RAG ด้วย n8n: AI ตอบจากข้อมูลของคุณ

วิธีสร้างระบบ RAG (Retrieval-Augmented Generation) ด้วย n8n ให้ AI ตอบจากเอกสาร ฐานข้อมูล หรือ knowledge base ของคุณ

สร้างระบบ RAG ด้วย n8n: AI ตอบจากข้อมูลของคุณ

ปัญหาใหญ่ที่สุดของ AI Chatbot คือ “มันไม่รู้เรื่องของเรา” ChatGPT ตอบได้ดีเรื่องทั่วไป แต่ถามเรื่อง manual ของบริษัท นโยบายภายใน หรือ catalog สินค้าเฉพาะของคุณ มันจะตอบผิดหรือบอกว่าไม่รู้

RAG (Retrieval-Augmented Generation) แก้ปัญหานี้ได้ โดยให้ AI ค้นหาข้อมูลที่เกี่ยวข้องก่อนตอบ เหมือนเปิดหนังสือก่อนทำข้อสอบ แทนที่จะตอบจากความจำล้วนๆ

RAG ทำงานอย่างไร

กระบวนการ RAG แบ่งเป็น 2 phase:

Phase 1: Indexing (ทำครั้งเดียว)

  1. โหลดเอกสาร (PDF, Word, CSV, เว็บไซต์ ฯลฯ)
  2. แบ่งเอกสารเป็น chunk เล็กๆ
  3. แปลงแต่ละ chunk เป็น Vector (ตัวเลขที่แทนความหมาย) ด้วย Embedding Model
  4. บันทึก Vector ลง Vector Database

Phase 2: Retrieval + Generation (ทุกครั้งที่มีคำถาม)

  1. แปลงคำถามเป็น Vector
  2. ค้นหา Vector ที่คล้ายกันมากที่สุดใน Database (Similarity Search)
  3. นำ chunk ที่ค้นพบมาใส่ใน context ของ AI
  4. AI ตอบโดยอิงจาก context นั้น

สิ่งที่ต้องเตรียม

  • n8n ที่ติดตั้งแล้ว
  • OpenAI API Key (สำหรับ Embedding และ LLM)
  • Vector Database — แนะนำ Supabase (มี free tier) หรือ Qdrant (self-host ได้)
  • เอกสารที่ต้องการให้ AI รู้

ขั้นตอนที่ 1: ตั้งค่า Vector Database

สำหรับผู้เริ่มต้น แนะนำ Supabase เพราะมี free tier และตั้งค่าง่าย

ไปที่ supabase.com สร้างโปรเจคใหม่ ใน SQL Editor รัน:

CREATE EXTENSION vector;
CREATE TABLE documents (
  id bigserial PRIMARY KEY,
  content text,
  metadata jsonb,
  embedding vector(1536)
);
CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops);

Copy URL และ anon key จาก Project Settings → API

ใน n8n ไปที่ Credentials สร้าง Supabase Credentials ใส่ URL และ API Key

ขั้นตอนที่ 2: สร้าง Indexing Workflow

Workflow นี้ทำหน้าที่ “ป้อนข้อมูล” เข้า Vector Database

ลำดับ Node:

  1. Manual Trigger หรือ Schedule Trigger (ถ้าต้องการอัปเดตอัตโนมัติ)
  2. Read Binary File หรือ HTTP Request — โหลดเอกสาร
  3. Default Data Loader — แปลงเอกสารเป็น text chunk (ตั้ง chunk size ที่ 500-1000 ตัวอักษร)
  4. Embeddings OpenAI Node — แปลง chunk เป็น Vector
  5. Supabase Vector Store Node (Insert mode) — บันทึกลง Database

ทดสอบโดยรัน Workflow แล้วดูว่า Supabase table มีข้อมูลเพิ่มขึ้น

ขั้นตอนที่ 3: สร้าง Query Workflow

Workflow นี้ทำหน้าที่ “ตอบคำถาม”

ลำดับ Node:

  1. Chat Trigger หรือ Webhook — รับคำถาม
  2. AI Agent Node — ใช้เป็นตัวประมวลผล
    • Chat Model: OpenAI Chat Model (gpt-4o)
    • Memory: Window Buffer Memory
  3. Vector Store Tool — ลาก Supabase Vector Store Node เป็น Tool ให้ AI Agent

ใน Vector Store Tool ตั้ง description ว่า “ค้นหาข้อมูลจาก knowledge base ของบริษัท ใช้เมื่อผู้ใช้ถามเรื่องนโยบาย สินค้า หรือข้อมูลเฉพาะ”

  1. Respond to Webhook — ส่งคำตอบกลับ

ขั้นตอนที่ 4: ปรับแต่ง Retrieval ให้แม่นขึ้น

ค่า default อาจไม่เหมาะกับทุก use case ลองปรับ:

Similarity Threshold — กรองผลที่ similarity ต่ำกว่า 0.7 ออก ป้องกัน AI ตอบจากข้อมูลที่ไม่เกี่ยวข้อง

Top K — จำนวน chunk ที่ดึงมาใส่ context ค่า default คือ 4 ถ้าเอกสารซับซ้อนอาจเพิ่มเป็น 6-8 แต่ระวัง context window ของ LLM

Chunk Size — ถ้าคำตอบมักตัดกลางเรื่อง ให้ลด chunk overlap ลงและเพิ่ม chunk size

ขั้นตอนที่ 5: รองรับหลาย Document Type

n8n รองรับ Document Loader หลายประเภท:

ประเภทไฟล์Node ที่ใช้
PDFBinary Data → PDF Loader
Word (.docx)Binary Data → Docx Loader
CSVCSV → Text แล้ว chunk เอง
เว็บไซต์HTTP Request → HTML Extractor → Text
NotionNotion API → Text
Google DriveGoogle Drive → Binary

ถ้ามีหลาย source ให้สร้าง Indexing Workflow แยกต่างหากสำหรับแต่ละประเภท แต่บันทึกลง Vector Database เดียวกัน

Use Case จริงสำหรับธุรกิจไทย

HR Chatbot — อัปโหลด handbook, นโยบาย, สัญญาจ้างงาน ให้พนักงานถามได้ตลอดเวลา
Product Catalog Bot — สินค้าหลายพัน SKU ให้ลูกค้าค้นหาด้วยภาษาธรรมชาติ
Legal Document Q&A — สัญญา, เงื่อนไข, ข้อกฎหมาย ให้ทีมค้นหาได้รวดเร็ว
Support Knowledge Base — ดึง FAQ และ ticket เก่ามาให้ AI ตอบคำถาม support ได้อัตโนมัติ

ความแตกต่างระหว่าง RAG กับ Fine-tuning

หลายคนสงสัยว่าทำไมไม่ Fine-tune Model แทน RAG ตอบสั้นๆ ว่า:

  • RAG — ข้อมูลอัปเดตได้ทันที ไม่ต้อง retrain ราคาถูก เหมาะกับข้อมูลที่เปลี่ยนบ่อย
  • Fine-tuning — Model เรียนรู้ style การตอบ ดีกว่าสำหรับ tone และ format แต่ราคาแพงและ update ยาก

สำหรับธุรกิจส่วนใหญ่ RAG เพียงพอและคุ้มกว่ามาก

ถ้าต้องการเลือก Vector Database สำหรับ Production ดูเพิ่มเติมที่ เชื่อมต่อ Vector Database กับ n8n

อยากเรียน n8n แบบเป็นระบบ ตั้งแต่เริ่มต้นจนสร้าง Workflow ใช้งานจริงได้ ลองดู คอร์สสอน n8n ที่ aiunlock.co

Related posts