Open WebUI را به یک endpoint سفارشی سازگار با OpenAI وصل کنید.
Updated 2026-07-29
Open WebUI اتصالات سازگار با OpenAI را یک تنظیم ادمین درجهیک در نظر میگیرد: یک اتصال زیر Admin Settings با https://api.apisrouter.com/v1 و یک کلید اضافه کنید، و هر مدل کاتالوگ در انتخابگر مدل برای همه کاربران شما ظاهر میشود، کنار هرچه محلی اجرا میشود.
پاسخ سریع: یک اتصال در Admin Settings.
بهعنوان ادمین، Admin Settings را باز کنید، به Connections بروید، و زیر بخش OpenAI API روی افزودن یک اتصال کلیک کنید. دو فیلد اهمیت دارند: URL، تنظیمشده روی https://api.apisrouter.com/v1، و کلید API. ذخیره کنید، و Open WebUI فهرست /v1/models endpoint را query میکند تا انتخابگر مدل را پر کند؛ با کنترل چک اتصال تأیید کنید، سپس هر id کاتالوگ را در یک چت جدید انتخاب کنید. اتصالاتی که به این روش اضافه میشوند در سطح workspace هستند: هر کاربر نمونه Open WebUI شما مدلها را میبیند، مشروط به هر کنترل دسترسی-مدلی که پیکربندی میکنید. همان مقادیر میتوانند بهجای کلیکشدن در UI بهعنوان متغیر محیطی در زمان deploy هم ship شوند، OPENAI_API_BASE_URL و OPENAI_API_KEY، که مسیر تمیزتر است وقتی نمونه با فایلهای compose بهجای کلیک تنظیم میشود.
URL: https://api.apisrouter.com/v1
API Key: sk-YOUR-APISROUTER-KEY
Save → models auto-populate from /v1/models
(optional) Model IDs allowlist to curate the selectorOpen WebUI چطور از اتصالات OpenAI استفاده میکند.
Open WebUI (حدود ۱۴۵ هزار ستاره GitHub) رابط پیشفرض self-hosted چت AI است: یک کلاینت وب کامل با کاربران و مجوزها، RAG و مجموعههای دانش، فراخوانی ابزار، و مدیریت مدل، بهطور کلاسیک با Ollama برای مدلهای محلی جفتشده اما به همان اندازه راحت در صحبت با API های راهدور. مدل اتصال آن افزایشی است. بخش Ollama runtime های محلی را پوشش میدهد؛ بخش API OpenAI هر endpoint ای که گویش استاندارد chat-completions صحبت میکند را پوشش میدهد، و میتوانید چند اتصال کنار هم اضافه کنید. هر اتصال فهرست مدل خودش را به انتخابگر مشترک میدهد، هرکدام کلید خودش را دارد، و هرکدام میتواند بدون حذف پیکربندیاش خاموش شود. درخواستها id مدل را بهعنوان یک رشته ساده به هر اتصالی که آن را سرویس میدهد حمل میکنند. آن طراحی یعنی یک اتصال gateway هیچچیز را جابهجا نمیکند: مدلهای محلی شما همچنان بدون هزینه هر-token از طریق Ollama اجرا میشوند، در حالی که claude-sonnet-4-6، gpt-5.5، gemini-3.5-flash، و deepseek-v4-pro entry های انتخابگر برای مکالماتی میشوند که کیفیت مرزی میخواهند. یک کلید همه آنها را پوشش میدهد، و usage سمت ادمین خوانا میماند چون ترافیک ابری دقیقاً از یک جا خارج میشود.
راهاندازی زمان-deploy: متغیرهای محیطی.
برای deployment های docker-compose و Kubernetes، اتصال میتواند بخشی از manifest باشد. OPENAI_API_BASE_URL endpoint را میگیرد و OPENAI_API_KEY کلید را؛ نمونه با اتصال از قبل حاضر بالا میآید. چند endpoint از طریق فرمهای جمع پشتیبانی میشوند (OPENAI_API_BASE_URLS و OPENAI_API_KEYS با مقادیر جدا-شده-با-سمیکالن) اگر بیش از یک منبع راهدور اجرا میکنید. دو نکته عملیاتی. اول، مقادیر تنظیمشده از طریق UI در پایگاهداده Open WebUI ماندگار میشوند و بعد از اولین boot بر پیشفرضهای محیطی اولویت دارند، یک رفتار مستند که مرتب اپراتورهایی را غافلگیر میکند که env را عوض میکنند و هیچ اتفاقی نمیبینند؛ اتصال موجود را در Admin Settings تنظیم کنید، یا ENABLE_PERSISTENT_CONFIG=false را تنظیم کنید اگر میخواهید محیط معتبر بماند. دوم، اگر فهرست مدل endpoint بزرگ است، از allowlist Model IDs اتصال برای curate کردن آنچه کاربران شما میبینند استفاده کنید؛ یک انتخابگر چهار-موردی استفاده میشود، یکی با دویست مورد scroll میشود. نکته نسخه: عبارت منو در طول ریتم انتشار سریع پروژه drift کرده (Settings در برابر Admin Settings، نام بخشها داخل Connections)، پس روی build های قدیمیتر جفت base URL و کلید API OpenAI را هرجا اتصالات زندگی میکنند بگردید.
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
environment:
- OPENAI_API_BASE_URL=https://api.apisrouter.com/v1
- OPENAI_API_KEY=sk-YOUR-APISROUTER-KEY
ports:
- "3000:8080"انتخاب مدل برای یک workspace چند-کاربر.
چون هر مدل ابری از طریق یک کلید صورتحساب میشود، تست A/B یک انتخاب انتخابگر است. همان حجم کاری تیم را دو هفته جدا روی دو پیشفرض کاندید اجرا کنید و بگذارید نمای usage هر-مدل در کنسول APIsRouter داوری کند، هر مدل و هر روز، بهجای حدسزدن از benchmark ها.
- انتخاب مدل پیشفرض بیشترین کار را در یک نمونه مشترک انجام میدهد. claude-haiku-4-5-20251001 یا gemini-3.5-flash بهعنوان پیشفرض workspace هزینه هر-مکالمه استفاده معمولی را ثابت نگه میدارد.
- claude-sonnet-4-6 و gpt-5.5 در انتخابگر برای پیشنویسی، تحلیل، و سؤالات کد تعلق دارند؛ کاربران وقتی وظیفه لیاقتش را دارد ارتقا میدهند.
- pipeline های RAG token های ورودی را ضرب میکنند: هر پاسخ chunk های بازیابیشده را حمل میکند. deepseek-v4-pro ارزش تستشدن بهعنوان اسبکار RAG را دارد، جایی که مدیریت long-context به ازای هر token صرفشده صفت تعیینکننده است.
- مطالب واقعاً خصوصی را روی مدلهای محلی از طریق Ollama نگه دارید و بقیه را از طریق gateway مسیردهی کنید؛ انتخابگر هر دو خط را صادقانه نگه میدارد.
- از allowlist Model IDs بهعنوان سیاست استفاده کنید: آنچه در انتخابگر نیست نمیتواند در لاگ usage شما را غافلگیر کند.
پرداخت بر اساس مصرف · پایینتر از قیمت رسمی
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| مدل | قیمت رسمی | قیمت ما |
|---|---|---|
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 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 |
حالتهای شکست مختص Open WebUI.
عدمظهور هیچ مدلی بعد از اضافهکردن اتصال رایجترین گزارش است. علتها به ترتیب: کلید در برابر /v1/models شکست خورده (با کنترل تأیید اتصال چک کنید)، URL پسوند /v1 آن گمشده، یا toggle اتصال خاموش است. Open WebUI انتخابگر را از آنچه فهرست برمیگرداند میسازد، پس یک انتخابگر خالی یعنی فراخوانی فهرست شکست خورده یا هیچچیز برنگردانده. تغییرات محیطی که نادیده گرفتهشده بهنظر میرسند همان قانون پیکربندی-ماندگار توضیحدادهشده بالاست: بعد از اولین boot، پایگاهداده برای تنظیماتی که UI مدیریت میکند بر محیط غالب است. اتصال را در Admin Settings ویرایش کنید یا پیکربندی ماندگار را صریح غیرفعال کنید. یک مدل که فهرست میشود اما در چت خطا میدهد معمولاً یک id است که فهرست نشان میدهد اما کلید شما نمیتواند استفاده کند، یا یک غلطتایپی که با ویرایش دستی allowlist Model IDs وارد شده؛ در برابر خروجی خام /v1/models مقایسه کنید. و هنگام عیبیابی خطوط را صاف نگه دارید: مشکلات اتصال Ollama و مشکلات اتصال OpenAI از پنجره چت یکسان بهنظر میرسند. صفحه Connections نشان میدهد یک مدل به کدام خط تعلق دارد؛ خط شکستخورده را مستقیم تست کنید قبل از فرض اینکه کل نمونه down است.
چه کسانی Open WebUI را از طریق یک gateway مسیردهی میکنند.
- تیمهایی که یک رابط چت را برای همه self-host میکنند و میخواهند مدلهای مرزی بدون صدور کلیدهای vendor به کاربران منفرد در دسترس باشند.
- کاربران Ollama که مدلهای محلی را برای کار خصوصی نگه میدارند اما کیفیت Claude و GPT را در همان انتخابگر برای مکالماتی که به آن نیاز دارند میخواهند.
- ادمینهایی که به صورتحساب ابری قابلخواندن نیاز دارند: یک اتصال، یک کلید، و یک لاگ usage هر-مدل بهجای رسیدهایی از چهار vendor.
- اپراتورهایی در مناطقی که برخی ثبتنامهای vendor دردناک است؛ دسترسی مبتنی بر شارژ بدون الزام کارت وابستگی هر-provider را حذف میکند.
- کاربران خانگی که Open WebUI را برای خانواده اجرا میکنند، جایی که یک موجودی پیشپرداخت واحد راحتتر از هر اشتراکی برای فکرکردن است.
endpoint را تأیید کنید و اولین چت را عیبیابی کنید.
اول endpoint را از سرور اثبات کنید، مخصوصاً در deployment های کانتینری جایی که شبکه کانتینر لپتاپ شما نیست. یک فهرست مدل و یک chat completion از داخل host نیمه gateway را قبل از ورود Open WebUI به تصویر تأیید میکنند. سپس اتصال را اضافه کنید و تماشا کنید انتخابگر پر میشود. خطاهای احراز هویت فیلد کلید هستند؛ یک انتخابگر خالی فراخوانی فهرست است؛ یک مسیر دوبار (/v1/v1/...) در لاگهای سرور یعنی فیلد URL از قبل یک /v1 حمل میکرده و چیزی دیگری اضافه شده، پس URL را دقیقاً همانطور که ذخیره شده بخوانید. وقتی چتها جریان یابند، کنسول APIsRouter مدل، شمارش token، و هزینه به ازای هر درخواست را نشان میدهد. برای یک نمونه چند-کاربر این عددی است که اهمیت دارد: کاربران شما واقعاً کدام مدلها را انتخاب میکنند، و یک هفته workspace واقعاً چقدر هزینه دارد، به ازای هر مدل، هر روز، روی یک صفحه.
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":"claude-haiku-4-5-20251001",
"messages":[{"role":"user","content":"ping"}]}'پرسشهای پرتکرار
چطور یک endpoint سفارشی API OpenAI به Open WebUI اضافه کنم؟
در Admin Settings، Connections را باز کنید و یک اتصال زیر بخش OpenAI API اضافه کنید: URL یعنی https://api.apisrouter.com/v1 بهعلاوه کلید خود. ذخیره کنید و انتخابگر مدل از فهرست /v1/models endpoint پر میشود؛ از allowlist Model IDs برای curate کردن آن استفاده کنید.
آیا URL به پسوند /v1 نیاز دارد؟
بله. Open WebUI مسیرهایی مثل /chat/completions را به base URL ای که میدهید پیوست میکند، پس مقدار درست https://api.apisrouter.com/v1 است. یک پسوند گمشده بهعنوان یک فهرست مدل خالی ظاهر میشود؛ یک پسوند دوبار بهعنوان 404 های /v1/v1 در لاگها ظاهر میشود.
آیا میتوانم Ollama و یک اتصال gateway را همزمان اجرا کنم؟
بله، و این راهاندازی استاندارد است. اتصالات Ollama و اتصالات API OpenAI بخشهای جدایی هستند که هر دو انتخابگر مدل را تغذیه میکنند، پس مدلهای محلی و id های کاتالوگ مثل claude-sonnet-4-6 کنار هم مینشینند، هر مکالمه خط خودش را انتخاب میکند.
چرا تغییرات متغیر محیطی من نادیده گرفته میشوند؟
Open WebUI تنظیمات را بعد از اولین boot در پایگاهداده خود ماندگار میکند، و مقادیر ماندگارشده بر پیشفرضهای محیطی اولویت دارند. اتصال را در Admin Settings ویرایش کنید، یا ENABLE_PERSISTENT_CONFIG=false را تنظیم کنید تا محیط در سراسر ریاستارتها معتبر بماند.
آیا همه کاربران مدلهای یک اتصال ادمین را میبینند؟
اتصالات اضافهشده در Admin Settings بهطور پیشفرض سطح-workspace هستند، مشروط به کنترلهای دسترسی-مدل و مجوز-workspace ای که نسخه شما ارائه میدهد. انتخابگر را با allowlist Model IDs و تنظیمات دسترسی هر-مدل curate کنید نه کلیدهای هر-کاربر.
آیا Open WebUI میتواند به Claude و Gemini از طریق یک اتصال OpenAI برسد؟
بله. اتصال chat completions استاندارد را صحبت میکند و id مدل را بهعنوان یک رشته ساده منتقل میکند، پس هر id ای که gateway سرویس میدهد کار میکند: id های Claude، Gemini، DeepSeek، و GPT همه از طریق یک URL و یک کلید.