AI และคลังความรู้
ภาพรวม
Domain นี้คือส่วนที่ทำให้ LINE OA สามารถตอบคำถามลูกค้าด้วย AI ได้ ประกอบด้วยสองส่วนหลัก
- การตั้งค่าโมเดล — ตาราง
ai_configเก็บผู้ให้บริการ ชื่อโมเดล และ API key โดยมี Gemini เป็นค่าเริ่มต้น - คลังความรู้แบบ RAG — ตาราง
knowledge_base,knowledge_documentและknowledge_chunkทำหน้าที่เก็บเอกสารและตัดเป็นชิ้นย่อย (chunk) เพื่อให้ค้นหาด้วย embedding ได้
การตัดสินว่า AI จะได้ตอบข้อความหรือไม่ ขึ้นอยู่กับ line_oa.message_handling_config
ซึ่งเป็นตัวจัดลำดับความสำคัญระหว่าง AI, auto-response และ trigger rule
โครงสร้างข้อมูลหลัก
ai_config — การตั้งค่าโมเดล
provider(ค่าเริ่มต้นgemini) และmodel(ค่าเริ่มต้นgemini-2.0-flash)api_keyแบบ TEXT พร้อมsettingsแบบ JSONB สำหรับพารามิเตอร์เพิ่มเติม- unique constraint
(organization_id, line_oa_id, provider)ชื่อuq_ai_config_org_lineoa_providerหมายความว่าแต่ละช่องทางตั้งค่าได้หนึ่งชุดต่อหนึ่งผู้ให้บริการ
knowledge_base — คลังความรู้
name,descriptionและsystem_instructionซึ่งเป็น prompt ระดับระบบของคลังนั้นstatsแบบ JSONB สรุปจำนวนเอกสารและ chunk พร้อมstatus- ผูกกับ
line_oa_idและorganization_idและใช้ soft delete ผ่านdeleted_date - มีความสัมพันธ์แบบ 1 ต่อหลาย กับทั้ง
knowledge_documentและknowledge_chunk
knowledge_document — เอกสารในคลัง
แต่ละแถวคือเอกสารหนึ่งชิ้นที่ผู้ดูแลเพิ่มเข้ามา
typeระบุรูปแบบของเอกสาร เช่น ข้อความอิสระ คู่คำถาม-คำตอบ หรือไฟล์แนบ- เนื้อหา:
title,content,question,answer - ข้อมูลไฟล์:
file_url,file_name,file_type,file_size - สถานะการทำ index:
index_status(ค่าเริ่มต้นpending) และindex_error - FK
knowledge_base_idชี้กลับไปยังknowledge_base
knowledge_chunk — ชิ้นย่อยที่ใช้ค้นหาจริง
contentและchunk_indexระบุลำดับของชิ้นภายในเอกสารembedding_idเก็บเพียง ตัวอ้างอิงไปยัง vector store ภายนอก เท่านั้น ตัว vector ไม่ได้ถูกเก็บไว้ใน PostgreSQLmetadataแบบ JSONB สำหรับข้อมูลประกอบการค้นหา- มี FK ทั้ง
knowledge_document_idและknowledge_base_idโดยตัวหลังเป็นการ denormalize ไว้เพื่อให้ query ชิ้นทั้งหมดของคลังได้ในคำสั่งเดียว
ไฟล์ที่เกี่ยวข้อง
prisma/schema.prisma:1539— modelAiConfigprisma/schema.prisma:1607— modelKnowledgeBaseprisma/schema.prisma:1629— modelKnowledgeDocumentprisma/schema.prisma:1657— modelKnowledgeChunkschema-dumps/2026-07-24/schema.sql:823,:2027,:2104,:2068
จุดเชื่อมต่อกับ Service อื่น
- cms-api-go ให้ผู้ดูแลตั้งค่า AI อัปโหลดเอกสารเข้าคลัง และสั่งทำ index ใหม่
- worker-go รับงาน index เอกสาร โดยตัดเนื้อหาเป็น chunk สร้าง embedding
แล้วอัปเดต
index_statusกลับมา - webhook-go เป็นฝั่งที่ใช้งานจริง เมื่อผู้ใช้พิมพ์ข้อความเข้ามาและลำดับความสำคัญกำหนดให้ AI ตอบ
ระบบจะค้น chunk ที่เกี่ยวข้องแล้วเรียกโมเดลพร้อมกับ
system_instructionของคลังนั้น - เชื่อมโยงกับ ช่องทาง LINE OA ในส่วน
message_handling_configและกับ การตอบกลับอัตโนมัติ