รันแชทของ RAGFlow บน OpenAI-API-Compatible base URL
Updated 2026-07-29
RAGFlow มี provider OpenAI-API-Compatible ไว้พอดีสำหรับสิ่งนี้: เพิ่มแต่ละโมเดลด้วย id ของมัน ตั้ง https://api.apisrouter.com/v1 เป็น base url และ key เดียว id ของ Claude, GPT, DeepSeek, GLM, Kimi และ Qwen ก็จะเสิร์ฟ dataset, แชท และ agent ของคุณจาก endpoint เดียว
คำตอบสั้น ๆ: เพิ่มโมเดลในหน้า Model providers
login เข้า RAGFlow คลิกโลโก้ของคุณมุมขวาบน แล้วเปิด Model providers ใต้ Models to be added หา card OpenAI-API-Compatible แล้วคลิก Add the model ใน dialog Add LLM ตั้ง Model type เป็น chat ใส่ id ในแคตตาล็อกเป๊ะ ๆ เป็น Model name ใส่ https://api.apisrouter.com/v1 ใน Base url วาง key ของคุณใน API-Key และตั้ง Max tokens ให้ตรงกับขนาด context จริงของโมเดล คลิก OK จากนั้นทำให้มันทำงาน: เปิด Set default models ในหน้าเดียวกันแล้วเลือกโมเดลใหม่ของคุณเป็น LLM เริ่มต้น chat assistant, การตอบคำถามของ dataset และ agent node ทั้งหมดจะ resolve ไปที่ค่าเริ่มต้นนั้นเว้นแต่จะ override ไว้ ขอบคมหนึ่งอันที่ควรรู้ก่อนรันครั้งแรก: ฟิลด์ Max tokens ของ RAGFlow ค่าเริ่มต้นคือ 512 และ tooltip ของมันเองเตือนว่าค่าที่ผิดจะทำให้เกิด error ดังนั้นการใส่ window ที่มีเอกสารระบุของโมเดลเป็นส่วนหนึ่งของการตั้งค่า ไม่ใช่การ optimize
Model type: chat
Model name: deepseek-v4-pro
Base url: https://api.apisrouter.com/v1
API-Key: sk-YOUR-APISROUTER-KEY
Max tokens: 128000
then: Set default models → LLM → deepseek-v4-proRAGFlow ผูกโมเดลเข้ากับงานอย่างไร
RAGFlow (infiniflow บน GitHub มีดาวประมาณ 85K) คือ RAG engine สำหรับเอกสารเชิงลึก: การ parse ที่รู้ layout ของ PDF และตาราง, การแบ่ง chunk พร้อมการอ้างอิงที่มีหลักฐาน, dataset, chat assistant และ agent workflow ทับซ้อนกันอยู่ด้านบน ส่วนต่าง ๆ ของ pipeline นั้นผูกกับช่องโมเดลต่างกัน และการผูกนั้นชัดเจน Chat model สร้างคำตอบ Embedding model แปลง chunk เป็น vector สำหรับ retrieval Rerank model จัดลำดับผู้เข้าแข่งขันใหม่ และ img2txt model อธิบายรูปภาพระหว่าง parsing provider OpenAI-API-Compatible ลงทะเบียนโมเดลสำหรับ type เหล่านี้แยกกันได้ แต่ละ dialog Add LLM สร้างการผูกหนึ่งอันของ type, id, base url และ key ทุก chat model ที่ลงทะเบียนพูด chat completions มาตรฐานไปยัง base url โดยมี Model name เป็นสตริงบนสาย ดังนั้น id ใดก็ตามที่ gateway เสิร์ฟใช้ได้ ไม่ว่า vendor ไหน การแยกนั้นสำคัญในทางปฏิบัติ: การสลับโมเดลคำตอบของคุณจาก gpt-5.5 ไปเป็น claude-sonnet-4-6 ปลอดภัยทำได้วันไหนก็ได้ แต่ embedding model เชื่อมติดกับ vector ที่ index ไว้แล้ว RAGFlow บังคับใช้สิ่งนี้ด้วย compatibility check เมื่อสลับ embedding model บน dataset ที่มี chunk อยู่แล้ว และกฎที่ใช้จริงง่ายกว่านั้น: เลือกการตั้งค่า embedding ครั้งเดียว แล้วปฏิบัติต่อ chat model เป็นชั้นที่ปรับได้อย่างอิสระ
key เดียวสำหรับโมเดลจีนและตะวันตกด้วยกัน
deployment ของ RAGFlow เอนไปทางสองภาษา: ทีมต้นกำเนิดจีนที่ประมวลผลฐานเอกสารผสมภาษา และทีมนานาชาติที่ต้องการโมเดลจีนสำหรับเอกสารจีนโดยเฉพาะ เสิร์ฟตรง ๆ การผสมนั้นเจ็บปวด เพราะ DeepSeek, Zhipu, Moonshot และ Alibaba ต่างเก็บเงินแยกกัน และบางเจ้าจ่ายยากจากต่างประเทศ ในขณะที่ Anthropic และ OpenAI ก็จ่ายยากจากอีกทาง ผ่าน base url OpenAI-API-Compatible เดียว การผสมนี้ก็แค่ dialog Add LLM ที่มากขึ้น: deepseek-v4-pro และ glm-5.2 สำหรับ corpus ที่หนักภาษาจีน qwen3.7-max และ kimi-k2.6 เป็นทางเลือกภูมิภาคที่แข็งแกร่ง claude-sonnet-4-6 ตรงที่ความเนียนของคำตอบสำคัญที่สุด base url เดียวกัน key เดียวกัน id มาจากแคตตาล็อกตรง ๆ สำหรับทีมในเอเชีย เส้นทางเดียวกันทำงานกลับด้านได้เช่นกัน: id ของ Claude และ GPT เข้าถึงได้บนยอดคงเหลือแบบเติมเงินล่วงหน้าโดยไม่ต้องใช้บัตรตะวันตก ซึ่งสำหรับร้าน RAGFlow หลายแห่งคือความต่างระหว่างการทดสอบโมเดลจริงกับการอ่านเรื่องมันเฉย ๆ ยังมีเส้นทางตอน boot ที่ควรรู้: service_conf.yaml.template รับ block user_default_llm (factory, api_key, base_url) เพื่อให้การติดตั้งใหม่มาพร้อมการเชื่อมต่อไว้แล้ว เอกสารของ RAGFlow ระบุชัดเจนว่าหลัง login การตั้งค่าเกิดขึ้นที่หน้า Model providers เท่านั้น ดังนั้นให้ถือว่า YAML คือการเตรียมการตอน boot ครั้งแรก ไม่ใช่ config แบบสด
user_default_llm:
factory: OpenAI-API-Compatible
api_key: sk-YOUR-APISROUTER-KEY
base_url: https://api.apisrouter.com/v1เลือกโมเดลสำหรับ pipeline เอกสาร
คุณภาพ retrieval ตั้งเพดาน และโมเดลคำตอบตัดสินว่าคุณเข้าใกล้แค่ไหน ดังนั้น A/B โมเดลคำตอบบน corpus จริงของคุณ: dataset เดียวกัน คำถามเดียวกัน สอง assistant ที่ pin สอง id แล้วดูค่าใช้จ่ายต่อโมเดลใน console ของ APIsRouter ควบคู่กับวิจารณญาณของคุณเองต่อคำตอบ
- การตอบคำถามที่อิงหลักฐานเหนือ chunk ที่ retrieve มาเป็นงาน input หนักที่โมเดลระดับกลางส่องแสง: deepseek-v4-pro และ glm-5.2 แบกคำตอบที่ต้องอ้างอิงได้ดีบน corpus สองภาษา
- qwen3.7-max และ kimi-k2.6 คือรุ่นใหญ่ระดับภูมิภาคที่คุ้มค่าทดสอบเมื่อคำตอบต้องอ่านเป็นธรรมชาติในภาษาจีน ความต่างของคุณภาพในโมเดลจีนแสดงในการสร้างข้อความมากกว่า retrieval
- claude-sonnet-4-6 สมควรได้ช่องคำตอบตรงที่คุณภาพการสังเคราะห์คือตัวสินค้า: สรุปผู้บริหาร การวิเคราะห์สัญญา อะไรก็ตามที่มนุษย์ส่งต่อโดยไม่แก้ไข
- agent workflow ที่เรียก tool ต้องการ function calling ที่เชื่อถือได้ ทดสอบ path ของ agent บน claude-sonnet-4-6 ก่อน แล้วดูว่า id ระดับภูมิภาคไหนตามทันบน flow ของคุณ
- Max tokens เป็นค่าต่อการลงทะเบียน ดังนั้นลงทะเบียน id เดียวกันสองครั้งด้วย limit ต่างกัน ถ้า assistant หนึ่งต้องการคำตอบยาวและอีกอันต้องการแบบกระชับ
จ่ายตามการใช้งาน · ถูกกว่าราคาทางการ
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| โมเดล | ราคาทางการ | ราคาของเรา |
|---|---|---|
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| GLM-5.2 | $1.14 / $4.00 per M | $1.10 / $4.00 per M |
| Qwen 3.7 Max | $2.50 / $7.50 per M | $2.50 / $7.50 per M |
| Kimi K2.6 | $0.95 / $4.00 per M | $1.00 / $4.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
รูปแบบความล้มเหลวเฉพาะของ RAGFlow
ค่าเริ่มต้นของ Max tokens คือแบบคลาสสิก ถ้าปล่อยไว้ที่ 512 คำตอบยาวจะตัดหรือ error ในแบบที่ดูเหมือนปัญหาโมเดล ตั้งขนาด context ที่มีเอกสารระบุตอนลงทะเบียน ตามที่ tooltip เตือนเอง โมเดลที่ลงทะเบียนแล้วแต่ error ทันทีมักเป็นการสะกดของ Model name (ต้องตรงกับรายการ /v1/models เป๊ะ) หรือ Base url ที่ขาด suffix /v1 เพราะ RAGFlow เติม route path ต่อท้ายสิ่งที่คุณใส่ ไม่มีอะไรเกิดขึ้นหลังลงทะเบียนคือปัญหาค่าเริ่มต้น: การลงทะเบียนโมเดลไม่ได้เลือกมัน เช็ก Set default models และเช็กการตั้งค่าโมเดลต่อ assistant ซึ่งชนะค่าเริ่มต้นของ workspace ความสับสนเรื่อง embedding ปิดท้ายรายการ ถ้าคุณผูก embedding id ผ่าน compatible provider ยืนยันว่า endpoint เสิร์ฟมันจริงก่อนสร้าง index และเมื่อ dataset มี chunk แล้ว การเปลี่ยน embedding model จะถูกกั้นด้วย similarity check และอาจต้อง re-index จากศูนย์ การเปลี่ยน chat model ไม่มีค่าใช้จ่ายแบบนั้นเลย ซึ่งเป็นเหตุผลพอดีที่ชั้นแชทคือที่ที่คุณควรทดลอง
ใครที่ route RAGFlow ผ่าน gateway
- ทีมเอกสารสองภาษาที่ผสม DeepSeek, GLM, Qwen และ Kimi กับ id ของ Claude และ GPT อยู่หลัง base url เดียวและ key เดียว
- ทีมในเอเชียที่ต้องการคำตอบคุณภาพ Claude บนยอดคงเหลือแบบเติมเงินล่วงหน้าโดยไม่ต้องใช้บัตรตะวันตก และทีมตะวันตกที่ต้องการโมเดลจีนโดยไม่ต้องเก็บเงินตามภูมิภาค
- self-hoster ที่รัน RAGFlow สำหรับ knowledge base ภายใน ที่ต้องการค่าใช้จ่าย cloud ทั้ง deployment อยู่ใน usage log เดียว
- builder ที่เปรียบเทียบโมเดลคำตอบบน corpus คงที่ ที่แต่ละตัวเลือกเป็นแค่ dialog Add LLM แทนที่จะเป็นบัญชี vendor
- ทีม ops ที่เตรียมการติดตั้งใหม่จาก service_conf.yaml.template โดยมี endpoint ต่อสายไว้แล้วตอน boot ครั้งแรก
ตรวจสอบ endpoint และ debug การแชทแรก
Curl รายการโมเดลก่อน; ฟิลด์ Model name เป็น free text และการคัดลอก id จากรายการช่วยตัดปัญหาที่พบบ่อยที่สุดออกไปก่อนมันจะเกิด จากนั้นรัน chat completion หนึ่งครั้งกับ id ที่คุณวางแผนจะลงทะเบียน ข้างใน RAGFlow ลงทะเบียนโมเดล ตั้งเป็น LLM เริ่มต้น แล้วทดสอบใน chat assistant ธรรมดาก่อนเชื่อมกับ dataset Authentication error ชี้ไปที่ API-Key; not-found ชี้ไปที่ Model name; connection error ชี้ไปที่ Base url หรือ container egress เพราะเป็น server ของ RAGFlow ไม่ใช่ browser ของคุณที่ต้องเข้าถึง endpoint คำตอบยาวที่ถูกตัดหรือล้มเหลวชี้กลับไปที่ Max tokens เมื่อแชทไหลลื่นแล้ว console ของ APIsRouter แสดงโมเดลต่อ request, จำนวน token และค่าใช้จ่าย traffic RAG หนักไปทาง input และ usage log คือที่ที่คุณจะเห็นว่า corpus ของคุณมีค่าใช้จ่ายจริงเท่าไหร่ในการ query ต่อโมเดล ต่อวัน หน้าเดียวสำหรับ id จีนและตะวันตกด้วยกัน
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
curl -s https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer $APISROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4-pro",
"messages":[{"role":"user","content":"ping"}]}'คำถามที่พบบ่อย
ฉันจะเพิ่มโมเดล OpenAI-API-Compatible ใน RAGFlow อย่างไร?
คลิก avatar ของคุณ เปิด Model providers หา OpenAI-API-Compatible ใต้ Models to be added แล้วคลิก Add the model กรอก Model type (chat), Model name (id ในแคตตาล็อกเป๊ะ ๆ), Base url https://api.apisrouter.com/v1, API-Key และค่า Max tokens จริง แล้วยืนยันด้วย OK
ทำไมคำตอบของฉันถูกตัดหรือ error หลังเพิ่มโมเดล?
เกือบทุกครั้งเป็นเพราะ Max tokens: RAGFlow ตั้งค่าเริ่มต้นไว้ที่ 512 และ tooltip ของมันเตือนว่าค่าที่ผิดทำให้เกิด error แก้ไขการลงทะเบียนโมเดลแล้วใส่ขนาด context ที่มีเอกสารระบุของโมเดล
RAGFlow ผสมโมเดลจีนและตะวันตกผ่าน provider เดียวได้ไหม?
ได้ การลงทะเบียนแต่ละครั้งส่งสตริง Model name ไปยัง base url เดียวกัน ดังนั้น deepseek-v4-pro, glm-5.2, qwen3.7-max, kimi-k2.6 และ claude-sonnet-4-6 ล้วนลงทะเบียนเคียงข้างกันและเลือกได้ต่อ assistant คิดเงินผ่าน key เดียว
โมเดลแชทและ embedding ผูกแยกกันไหม?
ใช่ แต่ละ dialog Add LLM ลงทะเบียนโมเดลหนึ่งตัวของ type หนึ่ง และ Set default models กำหนดช่อง LLM และ embedding เริ่มต้นแยกกัน chat model สลับได้อย่างอิสระ; embedding model ผูกกับ vector ที่ index ไว้และถูกกั้นด้วย compatibility check เมื่อ dataset มี chunk แล้ว
ตั้งค่า endpoint ล่วงหน้าก่อน boot ครั้งแรกได้ไหม?
ได้ ผ่าน block user_default_llm ใน docker/service_conf.yaml.template: factory OpenAI-API-Compatible, api_key ของคุณ และ base_url RAGFlow อ่านมันตอน startup ครั้งแรก หลัง login การตั้งค่าย้ายไปที่หน้า Model providers เท่านั้น
ทำไมโมเดลที่ฉันลงทะเบียนไม่ถูกใช้?
การลงทะเบียนและการเลือกใช้เป็นคนละขั้นตอน ตั้งโมเดลเป็น LLM เริ่มต้นใต้ Set default models และเช็กการตั้งค่าโมเดลต่อ assistant ซึ่งชนะค่าเริ่มต้น ถ้ายังล้มเหลว เทียบ Model name กับการสะกดในรายการ /v1/models