چت RAGFlow را روی یک Base URL از نوع OpenAI-API-Compatible اجرا کنید.

Updated 2026-07-29

RAGFlow یک provider OpenAI-API-Compatible دقیقاً برای همین عرضه می‌کند: هر مدل را با id آن اضافه کنید، https://api.apisrouter.com/v1 را به‌عنوان base url، و یک کلید. آنگاه id های Claude، GPT، DeepSeek، GLM، Kimi، و Qwen دیتاست‌ها، چت‌ها، و agent های شما را از یک endpoint تکی سرویس می‌دهند.

پاسخ سریع: مدل را در صفحه Model providers اضافه کنید.

وارد RAGFlow شوید، روی لوگوی خود در بالا-راست کلیک کنید، و Model providers را باز کنید. زیر Models to be added، کارت OpenAI-API-Compatible را پیدا کنید و روی Add the model کلیک کنید. در دیالوگ Add LLM، Model type را روی chat تنظیم کنید، id دقیق کاتالوگ را به‌عنوان Model name وارد کنید، https://api.apisrouter.com/v1 را در Base url بگذارید، کلید خود را در API-Key بچسبانید، و Max tokens را روی اندازه context واقعی مدل تنظیم کنید. روی OK کلیک کنید. سپس آن را به کاری وادار کنید: Set default models را در همان صفحه باز کنید و مدل جدید خود را به‌عنوان LLM پیش‌فرض انتخاب کنید. دستیارهای چت، پاسخ‌دهی به سؤال دیتاست، و گره‌های agent همه به آن پیش‌فرض resolve می‌شوند مگر آن را override کنند. یک لبه تیز که باید قبل از اولین اجرا بدانید: فیلد Max tokens در RAGFlow به‌طور پیش‌فرض روی ۵۱۲ است و tooltip خودش هشدار می‌دهد یک مقدار نامعتبر باعث خطا می‌شود، پس وارد کردن پنجره مستند مدل بخشی از راه‌اندازی است، نه یک بهینه‌سازی.

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-pro

RAGFlow چطور مدل‌ها را به کار بایند می‌کند.

RAGFlow (infiniflow در GitHub، حدود ۸۵ هزار ستاره) یک موتور RAG اسناد عمیق است: پارس‌کردن layout-آگاه PDF ها و جدول‌ها، chunk کردن با citation های مبتنی، دیتاست‌ها، دستیارهای چت، و workflow های agent روی آن‌ها. بخش‌های مختلف آن pipeline به اسلات‌های مختلف مدل بایند می‌شوند، و binding صریح است. مدل‌های چت پاسخ تولید می‌کنند. مدل‌های embedding chunk ها را برای retrieval به vector تبدیل می‌کنند. مدل‌های rerank کاندیدها را دوباره مرتب می‌کنند، و مدل‌های img2txt در طول پارس تصاویر را توصیف می‌کنند. provider OpenAI-API-Compatible می‌تواند مدل‌ها را برای این انواع به‌طور جداگانه ثبت کند، هر دیالوگ Add LLM یک binding از نوع، id، base url، و کلید می‌سازد. هر مدل چت ثبت‌شده chat completions استاندارد را به base url با Model name به‌عنوان رشته wire صحبت می‌کند، پس هر id ای که gateway سرویس می‌دهد معتبر است، صرف‌نظر از vendor. آن جدایی عملیاتی اهمیت دارد: سوییچ مدل پاسخ شما از gpt-5.5 به claude-sonnet-4-6 هر روز امن است، اما مدل embedding به vector های index-شده شما جوش‌خورده. RAGFlow این را با یک چک سازگاری هنگام سوییچ مدل‌های embedding روی یک دیتاست که قبلاً chunk دارد اجرا می‌کند، و قانون عملی ساده‌تر است: راه‌اندازی embedding را یک‌بار انتخاب کنید، و مدل‌های چت را لایه‌ای در نظر بگیرید که آزادانه تنظیم می‌کنید.

یک کلید برای مدل‌های چینی و غربی با هم.

deployment های RAGFlow به‌سمت دوزبانگی متمایل‌اند: تیم‌های با منشأ چینی که پایگاه‌های سند چندزبانه را پردازش می‌کنند، و تیم‌های بین‌المللی که مشخصاً مدل‌های چینی را برای اسناد چینی می‌خواهند. اگر مستقیم سرویس‌دهی شود، آن ترکیب دردناک است، چون DeepSeek، Zhipu، Moonshot، و Alibaba هرکدام جدا صورت‌حساب می‌شوند و برخی برای پرداخت از خارج دست‌وپاگیرند، در حالی که Anthropic و OpenAI از جهت دیگر دست‌وپاگیرند. از طریق یک base url از نوع OpenAI-API-Compatible، آن ترکیب فقط دیالوگ‌های Add LLM بیشتر است: deepseek-v4-pro و glm-5.2 برای corpus های سنگین-چینی، qwen3.7-max و kimi-k2.6 به‌عنوان جایگزین‌های منطقه‌ای قوی، claude-sonnet-4-6 جایی که صیقل پاسخ بیشترین اهمیت را دارد. همان base url، همان کلید، id ها مستقیم از کاتالوگ. برای تیم‌های آسیا همان مسیر برعکس هم کار می‌کند: id های Claude و GPT روی یک موجودی پیش‌پرداخت بدون کارت غربی قابل‌دسترس می‌شوند، که برای بسیاری فروشگاه‌های RAGFlow تفاوت بین ارزیابی یک مدل و خواندن درباره‌اش است. یک مسیر boot-time هم ارزش دانستن دارد: service_conf.yaml.template یک بلوک user_default_llm (factory، api_key، base_url) می‌پذیرد پس نصب‌های تازه از پیش سیم‌کشی‌شده بالا می‌آیند. مستندات RAGFlow صریح‌اند که بعد از login، پیکربندی فقط در صفحه Model providers رخ می‌دهد، پس YAML را به‌عنوان provisioning اولین-بوت در نظر بگیرید، نه config زنده.

user_default_llm:
  factory: OpenAI-API-Compatible
  api_key: sk-YOUR-APISROUTER-KEY
  base_url: https://api.apisrouter.com/v1

انتخاب مدل‌ها برای یک pipeline اسناد.

کیفیت retrieval سقف را تنظیم می‌کند و مدل پاسخ تصمیم می‌گیرد چقدر به آن نزدیک می‌شوید، پس مدل‌های پاسخ را روی corpus واقعی خود A/B کنید: همان دیتاست، همان سؤالات، دو دستیار pin-شده به دو id، و صرف هر-مدل در کنسول APIsRouter کنار قضاوت خودتان از پاسخ‌ها.

  • پاسخ‌دهی مبتنی روی chunk های بازیابی‌شده کار ورودی-سنگین است جایی که مدل‌های mid-tier می‌درخشند: deepseek-v4-pro و glm-5.2 پاسخ‌های citation-following را روی corpus های دوزبانه خوب حمل می‌کنند.
  • qwen3.7-max و kimi-k2.6 سنگین‌وزن‌های منطقه‌ای‌اند که وقتی پاسخ‌ها باید بومی چینی خوانده شوند ارزش تست‌کردن دارند؛ تفاوت‌های کیفیت بین مدل‌های چینی بیشتر در تولید نشان می‌دهد تا retrieval.
  • claude-sonnet-4-6 اسلات پاسخ را جایی کسب می‌کند که کیفیت synthesis محصول است، خلاصه‌های اجرایی، تحلیل قرارداد، هر چیزی که یک انسان بدون ویرایش فوروارد می‌کند.
  • workflow های agent که ابزار فرا می‌خوانند به function calling قابل‌اعتماد نیاز دارند؛ ابتدا مسیر agent را روی claude-sonnet-4-6 تست کنید، سپس ببینید کدام id منطقه‌ای روی flow های شما با آن مطابقت دارد.
  • Max tokens به‌ازای-هر-ثبت است، پس همان id را دوبار با محدودیت‌های متفاوت ثبت کنید اگر یک دستیار به پاسخ‌های بلند نیاز دارد و دیگری به پاسخ‌های فشرده.

پرداخت بر اساس مصرف · پایین‌تر از قیمت رسمی

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 همان کلاسیک است. اگر روی ۵۱۲ رها شود، پاسخ‌های بلند به شکلی که مثل مشکلات مدل به‌نظر می‌رسند کوتاه می‌شوند یا خطا می‌دهند؛ همان‌طور که خود tooltip هشدار می‌دهد، هنگام ثبت اندازه context مستند را تنظیم کنید. مدلی که فوراً خطا می‌دهد معمولاً املای Model name است (باید دقیقاً با فهرست /v1/models مطابقت داشته باشد) یا یک Base url که پسوند /v1 خود را گم کرده، چون RAGFlow مسیرها را به آنچه وارد می‌کنید اضافه می‌کند. هیچ‌چیز بعد از ثبت رخ نمی‌دهد یک مشکل پیش‌فرض‌هاست: ثبت یک مدل آن را انتخاب نمی‌کند. Set default models را چک کنید، و تنظیمات مدل به‌ازای-هر-دستیار را چک کنید، که بر پیش‌فرض workspace غالب‌اند. سردرگمی embedding فهرست را کامل می‌کند. اگر یک id embedding را از طریق provider سازگار بایند کنید، قبل از index کردن تأیید کنید endpoint واقعاً آن را سرویس می‌دهد؛ و وقتی یک دیتاست chunk دارد، تغییر مدل embedding آن با یک چک شباهت gate می‌شود و ممکن است نیاز به re-index از صفر داشته باشد. تغییرات مدل چت هیچ هزینه‌ای ندارند، دقیقاً به همین دلیل لایه چت جایی است که باید آزمایش کنید.

چه کسانی RAGFlow را از طریق یک gateway مسیردهی می‌کنند.

  • تیم‌های سند دوزبانه که DeepSeek، GLM، Qwen، و Kimi را با id های Claude و GPT پشت یک base url و یک کلید ترکیب می‌کنند.
  • تیم‌های آسیا که پاسخ‌های با کیفیت Claude روی یک موجودی پیش‌پرداخت بدون کارت غربی می‌خواهند، و تیم‌های غربی که مدل‌های چینی را بدون صورت‌حساب منطقه‌ای می‌خواهند.
  • self-hoster هایی که RAGFlow را برای knowledge base های داخلی اجرا می‌کنند و می‌خواهند کل صرف cloud deployment روی یک usage log باشد.
  • سازندگانی که مدل‌های پاسخ را روی یک corpus ثابت مقایسه می‌کنند، جایی که هر کاندید یک دیالوگ Add LLM است نه یک حساب vendor.
  • تیم‌های ops که نصب‌های تازه را از service_conf.yaml.template با endpoint از پیش سیم‌کشی‌شده در اولین بوت provision می‌کنند.

endpoint را تأیید کنید و اولین چت را عیب‌یابی کنید.

ابتدا فهرست مدل‌ها را curl کنید؛ فیلد Model name متن آزاد است، و کپی‌کردن id ها از فهرست شایع‌ترین شکست را قبل از رخ‌دادنش حذف می‌کند. سپس یک chat completion را در برابر id ای که قصد ثبت دارید اجرا کنید. داخل RAGFlow، مدل را ثبت کنید، آن را به‌عنوان LLM پیش‌فرض تنظیم کنید، و در یک دستیار چت ساده تست کنید قبل از درگیرکردن دیتاست‌ها. خطاهای authentication به API-Key اشاره دارند؛ not-found به Model name؛ خطاهای اتصال به Base url یا egress کانتینر، چون این سرور RAGFlow است، نه مرورگر شما، که باید به endpoint برسد. پاسخ‌های بلند بریده‌شده یا شکست‌خورده به Max tokens اشاره دارند. وقتی چت‌ها جاری شوند، کنسول APIsRouter مدل، شمارش token، و هزینه هر-درخواست را نشان می‌دهد. ترافیک RAG ورودی-غالب است، و 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 تأیید کنید.

چرا پاسخ‌های من بعد از اضافه‌کردن یک مدل کوتاه می‌شوند یا خطا می‌دهند؟

تقریباً همیشه Max tokens: RAGFlow آن را به‌طور پیش‌فرض روی ۵۱۲ می‌گذارد و tooltip آن هشدار می‌دهد مقادیر نادرست باعث خطا می‌شوند. ثبت مدل را ویرایش کنید و اندازه context مستند مدل را وارد کنید.

آیا RAGFlow می‌تواند مدل‌های چینی و غربی را از طریق یک provider ترکیب کند؟

بله. هر ثبت رشته Model name خود را به همان base url می‌فرستد، پس deepseek-v4-pro، glm-5.2، qwen3.7-max، kimi-k2.6، و claude-sonnet-4-6 همه می‌توانند کنار هم ثبت شوند و به ازای هر دستیار انتخاب شوند، صورت‌حساب‌شده از طریق یک کلید.

آیا مدل‌های چت و embedding جداگانه بایند می‌شوند؟

بله. هر دیالوگ Add LLM یک مدل از یک نوع ثبت می‌کند، و Set default models اسلات‌های LLM و embedding پیش‌فرض را مستقلاً اختصاص می‌دهد. مدل‌های چت آزادانه قابل‌سوییچ‌اند؛ مدل‌های embedding به vector های index-شده گره‌خورده‌اند و وقتی دیتاست chunk دارد با یک چک سازگاری gate می‌شوند.

آیا می‌توانم endpoint را قبل از اولین بوت از پیش پیکربندی کنم؟

بله، از طریق بلوک user_default_llm در docker/service_conf.yaml.template: factory برابر OpenAI-API-Compatible، api_key خودتان، و base_url. RAGFlow آن را در اولین راه‌اندازی می‌خواند؛ بعد از login، پیکربندی فقط به صفحه Model providers منتقل می‌شود.

چرا مدل ثبت‌شده من استفاده نمی‌شود؟

ثبت و انتخاب گام‌های جدا هستند. مدل را زیر Set default models به‌عنوان LLM پیش‌فرض تنظیم کنید، و تنظیمات مدل به‌ازای-هر-دستیار را چک کنید، که بر پیش‌فرض غالب‌اند. اگر همچنان شکست می‌خورد، Model name را با املای فهرست /v1/models مقایسه کنید.