اپ‌های Dify را روی یک endpoint سازگار با OpenAI-API اجرا کنید.

Updated 2026-07-29

Dify دقیقاً برای همین یک provider سازگار با OpenAI-API عرضه می‌کند: آن را از Marketplace نصب کنید، هر مدل را با id آن اضافه کنید، https://api.apisrouter.com/v1 را به‌عنوان API Base URL بگذارید، و یک کلید. آنگاه chatflow، agent، و workflow های شما روی هر مدل کاتالوگ اجرا می‌شوند، شامل Claude و DeepSeek.

پاسخ سریع: provider را نصب کنید، مدل‌ها را با id اضافه کنید.

در Dify، Settings را باز کنید و به Model Provider بروید. از Dify 1.0 به بعد، provider ها افزونه‌اند: OpenAI-API-compatible (منتشرشده توسط langgenius) را در فهرست پیدا کنید یا آن را از Marketplace نصب کنید، سپس روی Add Model در کارت آن کلیک کنید. دیالوگ به ازای هر مدل است: Model Type را انتخاب کنید (LLM برای مدل‌های چت)، id دقیق کاتالوگ را در Model Name وارد کنید، کلید خود را در API Key بچسبانید، و API Base URL را روی https://api.apisrouter.com/v1 تنظیم کنید. Completion mode را روی Chat رها کنید، سپس Model context size و Upper bound for max tokens را روی محدودیت‌های مستند id ای که اضافه می‌کنید تنظیم کنید. ذخیره کنید، و مدل در فهرست provider ظاهر می‌شود، قابل‌انتخاب از dropdown مدل هر اپ. برای هر id ای که می‌خواهید دیالوگ را تکرار کنید؛ دو دقیقه به ازای هر مدل، یک‌بار.

Model Type:                LLM
Model Name:                claude-sonnet-4-6
API Key:                   sk-YOUR-APISROUTER-KEY
API Base URL:              https://api.apisrouter.com/v1
Completion mode:           Chat
Model context size:        200000
Upper bound for max tokens: 64000

Dify چطور با یک provider سازگار صحبت می‌کند.

Dify (langgenius در GitHub، حدود ۱۴۹ هزار ستاره) پلتفرم اپ LLM متن‌باز پیشرو است: workflow های تصویری، گره‌های agent، pipeline های RAG روی knowledge base ها، و اپ‌های منتشرشده با endpoint API خودشان. هر گره LLM در آن پشته به یک مدل ثبت‌شده زیر یک provider resolve می‌شود. provider OpenAI-API-compatible عمداً عمومی است. هر مدلی که اضافه می‌کنید یک رکورد خودمختار است، id، endpoint، کلید، محدودیت، و Dify درخواست‌های chat-completions استاندارد را به base url پیکربندی‌شده با Model Name شما به‌عنوان رشته model می‌فرستد. هیچ‌چیز در درخواست اهمیتی نمی‌دهد کدام vendor مدل را train کرده، پس claude-sonnet-4-6 و deepseek-v4-pro اینجا به‌اندازه هر id GPT معتبرند، و مدل‌های مختلف حتی می‌توانند به endpoint های مختلف اشاره کنند اگر روزی به آن نیاز داشتید. ثبت هر-مدلی که مثل اصطکاک به‌نظر می‌رسد سطح کنترل هم هست: مقادیر context size و max-tokens که وارد می‌کنید همان چیزی است که orchestrator دیفای برای بودجه‌بندی prompt، تراش تاریخچه مکالمه، و اعتبارسنجی تنظیمات گره استفاده می‌کند. عددهای صادقانه از مستندات مدل وارد کنید. بیش‌گفتن context درخواست‌هایی تولید می‌کند که endpoint رد می‌کند؛ کم‌گفتن آن بی‌صدا context ای را می‌تراشد که گره‌های RAG شما برای بازیابی‌اش زحمت کشیدند.

فیلدهایی که کار واقعی انجام می‌دهند.

Model Name مقدار wire است: باید کاراکتر به کاراکتر با فهرست /v1/models گیت‌وی مطابقت داشته باشد، چون در هر درخواست سفر می‌کند. نام نمایشی اختیاری مدل فقط UI را دوباره برچسب می‌زند. Completion mode باید برای هر مدل در کاتالوگ فعلی روی Chat بماند؛ گزینه Completion برای endpoint های text-completion قدیمی وجود دارد و درخواست‌های بدشکل روی مدل‌های چت تولید می‌کند. Model context size و Upper bound for max tokens جفتی هستند که مردم با عجله رد می‌شوند. context size پنجره کل مدل است؛ حد بالا سقف می‌زند چند token خروجی یک گره می‌تواند درخواست کند. Dify هر دو را به‌طور پیش‌فرض روی ۴۰۹۶ می‌گذارد، که خیلی پایین‌تر از چیزی است که مدل‌های فعلی پشتیبانی می‌کنند، و رها کردن پیش‌فرض‌ها بی‌صدا RAG اسناد بلند و تولید متن بلند را فلج می‌کند. آن‌ها را از مستندات مدل تنظیم کنید، نه از عادت. انتخاب‌گرهای قابلیت وقتی اپ‌های شما از آن‌ها استفاده می‌کنند اهمیت دارند: Vision Support فقط برای id هایی که ورودی تصویر می‌پذیرند، و تنظیم function-call برای مطابقت با پشتیبانی tool-use مدل، چون گره‌های agent روی آن تکیه می‌کنند. یک ادعای قابلیت اشتباه در زمان اجرا داخل workflow شکست می‌خورد، که جایی کندتر برای دیباگ نسبت به این دیالوگ است. اگر workspace شما همچنین از مدل‌های embedding یا rerank استفاده می‌کند، همان provider آن‌ها را زیر entry های Model Type خودشان در برابر همان base url ثبت می‌کند؛ قبل از سیم‌کشی تنظیمات knowledge-base به آن‌ها تأیید کنید id های خاص توسط endpoint سرویس‌دهی می‌شوند.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# register these ids verbatim as Model Name entries

انتخاب مدل‌ها برای workflow ها و agent ها.

صفحات overview خود Dify token به ازای هر اپ را نشان می‌دهند، اما نمای usage هر-کلید در کنسول APIsRouter تقسیم هر-مدل را در همه اپ‌ها روی همان صفحه اضافه می‌کند، که همان عددی است که تصمیم می‌گیرد کدام id جایگاه را نگه می‌دارد.

  • گره‌های LLM در workflow حجمی‌اند: طبقه‌بندی، استخراج، مسیریابی، گام‌های خلاصه‌سازی که در هر اجرا شلیک می‌شوند. claude-haiku-4-5-20251001، gpt-5.4-mini، و gemini-3.5-flash هزینه هر-اجرا را ثابت نگه می‌دارند.
  • گره‌های agent و گام‌های استدلال پیچیده claude-sonnet-4-6 را می‌طلبند، و tool use قابل‌اعتماد آن در agent ها بیشتر از امتیازهای benchmark خام اهمیت دارد.
  • گره‌های پاسخ RAG context بازیابی‌شده را در هر فراخوانی حمل می‌کنند، پس قیمت ورودی غالب است؛ deepseek-v4-pro ارزش تست‌کردن دارد جایی که retrieval سنگین و پاسخ‌ها بلندند.
  • یک id سریع و یک id قوی برای همان نقش ثبت کنید و آن‌ها را به ازای هر گره A/B کنید: در Dify، سوییچ مدل یک گره یک dropdown است، نه یک migration.
  • اپ‌های منتشرشده انتخاب مدل گره‌های خودشان را به ارث می‌برند، پس تصمیم dropdown ای که در editor می‌گیرید همان اقتصاد واحد اپی است که منتشر می‌کنید.

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

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

مدلقیمت رسمیقیمت ما
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GPT-5.4 mini$0.75 / $4.50 per M$0.60 / $3.60 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M

حالت‌های شکست مختص Dify.

غایب‌بودن provider از فهرست یعنی افزونه نصب نشده: از Dify 1.0 به بعد provider سازگار با OpenAI-API به‌عنوان یک افزونه Marketplace عرضه می‌شود، و instance های self-hosted تازه بدون آن شروع می‌شوند. آن را یک‌بار به ازای هر workspace نصب کنید. مدلی که ذخیره می‌شود اما در اولین استفاده خطا می‌دهد معمولاً یکی از سه چیز است: Model Name ای که با املای کاتالوگ مطابقت ندارد، یک base url که /v1 خود را گم کرده (Dify مسیرهایی مثل /chat/completions را به آنچه وارد می‌کنید اضافه می‌کند)، یا مقادیر context/max-token فراتر از آنچه مدل می‌پذیرد. خطا در log اپ یا workflow ظاهر می‌شود؛ راه‌حل دوباره در دیالوگ Add Model است. شکست گره‌های agent در حالی که گره‌های چت ساده کار می‌کنند به تنظیم قابلیت function-calling اشاره دارد، یا به مدلی که tool use آن با انتظار استراتژی agent مطابقت ندارد. ابتدا agent ها را در برابر claude-sonnet-4-6 تست کنید تا مشکلات پیکربندی را از انتخاب مدل جدا کنید. و روی instance های self-hosted پشت قوانین egress سخت‌گیر، به‌خاطر بسپارید این کانتینر api دیفای است که باید به endpoint برسد، نه مرورگر شما؛ یک curl از داخل آن کانتینر سؤالات اتصال را سریع تسویه می‌کند.

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

  • تیم‌هایی که اپ‌های LLM می‌سازند و Claude، GPT، Gemini، و DeepSeek را به ازای هر گره قابل‌انتخاب می‌خواهند بدون نگه‌داری یک حساب vendor به ازای هر provider.
  • self-hoster هایی که Dify را برای ابزارهای داخلی اجرا می‌کنند، جایی که یک کلید در یک provider هزینه cloud کل workspace را روی یک usage log نگه می‌دارد.
  • سازندگانی که مدل‌ها را روی workflow های واقعی مقایسه می‌کنند: هر کاندید یک دیالوگ Add Model و یک سوییچ dropdown است، نه یک integration جدید.
  • توسعه‌دهندگان بدون دسترسی به صورت‌حساب یک vendor خاص. دسترسی مبتنی بر شارژ بدون الزام کارت وابستگی ثبت‌نام هر-provider را حذف می‌کند.
  • آژانس‌هایی که اپ‌های مشتری را روی Dify منتشر می‌کنند و به کلیدهای هر-پروژه نیاز دارند تا هزینه مدل هر مشتری خودش را گزارش کند.

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

ابتدا فهرست مدل‌ها را curl کنید و id ها را از خروجی آن ثبت کنید؛ Model Name های دستی‌تایپ‌شده علت اصلی خطاهای not-found هستند چون فیلد متن آزاد است. سپس یک chat completion را در برابر id ای که ثبت کرده‌اید، با همان کلید اجرا کنید. داخل Dify، قبل از سیم‌کشی workflow های production در یک اپ scratch تست کنید: یک گره LLM اضافه کنید، مدل جدید را انتخاب کنید، یک‌بار اجرا کنید. خطاهای authentication به فیلد API Key اشاره دارند؛ not-found به Model Name؛ خطاهای اتصال به base url یا egress کانتینر؛ خطاهای طول به مقادیر context و max-token. وقتی اجراها جاری شوند، کنسول APIsRouter مدل، شمارش token، و هزینه هر-درخواست را نشان می‌دهد. workflow ها فراخوانی‌های LLM را به شکل‌هایی ضرب می‌کنند که از editor سخت است چشمی تخمین زد، و usage log جایی است که پروفایل token واقعی یک pipeline پنج‌گره‌ای قابل‌مشاهده می‌شود، به ازای هر مدل، هر روز.

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-haiku-4-5-20251001",
       "messages":[{"role":"user","content":"ping"}]}'

پرسش‌های پرتکرار

چطور یک provider سازگار با OpenAI-API به Dify اضافه کنم؟

Settings، Model Provider، سپس افزونه OpenAI-API-compatible را از Marketplace نصب کنید اگر فهرست نشده. روی Add Model در کارت آن کلیک کنید و هر id را با Model Name، API Key، و API Base URL برابر https://api.apisrouter.com/v1 ثبت کنید.

Model context size و Upper bound for max tokens چه چیزی را کنترل می‌کنند؟

context size به Dify پنجره کل مدل را می‌گوید، برای بودجه‌بندی prompt و تاریخچه استفاده می‌شود؛ حد بالا token های خروجی درخواستی را سقف می‌زند. هر دو به‌طور پیش‌فرض ۴۰۹۶ هستند، که برای مدل‌های فعلی خیلی پایین است، پس هنگام ثبت مدل آن‌ها را از محدودیت‌های مستند آن تنظیم کنید.

آیا Dify می‌تواند Claude یا DeepSeek را از طریق این provider اجرا کند؟

بله. provider رشته Model Name را به base url شما روی chat completions استاندارد می‌فرستد، پس هر id ای که gateway سرویس می‌دهد کار می‌کند: claude-sonnet-4-6، deepseek-v4-pro، gemini-3.5-flash، و id های GPT کنار هم، یک کلید برای همه.

آیا API Base URL باید شامل /v1 باشد؟

بله: https://api.apisrouter.com/v1. Dify مسیر route را به آنچه وارد می‌کنید اضافه می‌کند، پس /v1 گمشده خطاهای اتصال یا 404 در اولین استفاده تولید می‌کند، و چسباندن مسیر کامل /chat/completions مسیر را دوبار می‌کند.

آیا یک پیکربندی همه اپ‌های Dify من را پوشش می‌دهد؟

مدل‌ها به ازای هر workspace ثبت می‌شوند، پس هر اپ، workflow، و agent در آن workspace می‌تواند بعد از اضافه‌شدن آن‌ها را یک‌بار انتخاب کند. workspace ها یا محیط‌های متعدد راه‌اندازی را تکرار می‌کنند، که همچنین اجازه می‌دهد هرکدام کلید خودش را برای گزارش usage جدا حمل کند.

چرا provider سازگار با OpenAI-API از Dify من غایب است؟

از Dify 1.0 به بعد، provider های مدل به‌عنوان افزونه عرضه می‌شوند، و instance های self-hosted بدون هیچ‌کدام نصب‌شده شروع می‌شوند. Marketplace را باز کنید، OpenAI-API-compatible از langgenius را نصب کنید، و کارت زیر تنظیمات Model Provider با عمل Add Model ظاهر می‌شود.