تكامل Open WebUI
اربط QCode.cc بـ Open WebUI بوصفه اتصالًا متوافقًا مع OpenAI: صفحة الاتصالات في لوحة الإدارة، وقائمة معرّفات النماذج المسموح بها، وسبب عدم توفر Claude
تحتاج مفتاح API؟ أنشئ حسابًا ←نقاط النهاية وعناوين Base URL ←
في هذه الصفحة
آخر تحقق: 2026-10-13 · 📄 وفقًا للوثائق الرسمية (Open WebUI v0.12.0)
نظرة سريعة¶
| البند | التفاصيل |
|---|---|
| النماذج التي يمكنك استخدامها | Claude ❌ غير متوفر (انظر القسمين التاليين) · GPT ✅ · النماذج الصينية ✅ · Gemini ❌ — لا يوفّر QCode عائلة Gemini، استخدم نموذج GPT أو نموذجًا صينيًا بدلًا من ذلك |
| البروتوكول وBase URL | OpenAI Chat Completions فقط: https://api.qcode.cc/openai/v1 |
| مكان الإعداد | الإعدادات → الإدارة → الاتصالات، ضمن قائمة إدارة اتصالات OpenAI API |
| الوثائق الرسمية | docs.openwebui.com |
🔴 لا يتوفر Claude في Open WebUI. لا يرسل Open WebUI سوى طلبات OpenAI Chat Completions، ويقدّم QCode نماذج Claude الخاصة به حصريًا عبر نقطة نهاية Anthropic Messages — أما Claude، فاستخدم أداة تتحدث بروتوكول Anthropic، أو Claude Code. ترد نظرة عامة حسب الأداة في توافق الأدوات.
Open WebUI واجهة ويب للدردشة ذاتية الاستضافة تشغّلها باستخدام Docker أو pip أو uv. وتوضّح وثائقه الخاصة نطاقه بصراحة: إن Open WebUI «يتصل بأي خادم أو مزوّد ينفّذ API المتوافق مع OpenAI»، وبينما يتولى Open WebUI الواجهة والأدوات، «فإنه يتوقع أن تتبع الواجهة الخلفية لديك معيار Chat Completions العالمي». الإصدار الذي جرى التحقق منه هنا هو v0.12.0، المنشور في 2026-10-10. الأسعار لكل token؛ وتُدرج أسعار كل نموذج في qcode.cc/models.
أي بروتوكول¶
تسرد الوثائق عدة بروتوكولات اتصال — Ollama، وAPIs المتوافقة مع OpenAI، ودعمًا تجريبيًا لـ Open Responses. تغطي هذه الصفحة مسار OpenAI Chat Completions فقط، وهو المسار الذي تخدمه نقطة نهاية OpenAI لدى QCode.
| عائلة النموذج | يعمل في Open WebUI | ما الذي يجب تعبئته |
|---|---|---|
GPT — gpt-6.1-sol، gpt-6-sol، gpt-6-astra، gpt-5.6-sol، gpt-5.6-terra، gpt-5.5 |
✅ | URL https://api.qcode.cc/openai/v1 |
GLM / Kimi / DeepSeek / Qwen — deepseek-v4.1-flash، deepseek-v4-flash، deepseek-v4-pro، glm-5.3، glm-5.2، qwen3.8-max، qwen3.8-flash، qwen3.7-plus، kimi-k3 |
✅ | عنوان URL نفسه |
| Claude | ❌ غير متوفر — استخدم أداة تتحدث بروتوكول Anthropic، أو Claude Code | يقدّم QCode Claude عبر نقطة نهاية Anthropic Messages https://api.qcode.cc/api؛ ولا يستطيع Open WebUI استدعاء ذلك البروتوكول |
| عائلة Gemini | ❌ لا يوفّر QCode عائلة Gemini | استخدم نموذج GPT أو نموذجًا صينيًا |
لماذا يُعدّ صف Claude رفضًا قاطعًا، بحسب كلمات المشروع نفسه:
- يصف Open WebUI نفسه بأنه «منصة متمركزة حول البروتوكول»، وحتى بالنسبة لنماذج OpenAI «فإننا نفعل ذلك أساسًا عبر بروتوكول OpenAI Chat Completions API». وتكون الوثائق صريحة بشأن الحد: «لا ننفّذ في النواة APIs غير قياسية خاصة بمزوّدين»، وتكرّر الأسئلة الشائعة: «نتجنّب تنفيذ APIs مملوكة وخاصة بمزوّدين في النواة».
- الحالة الخاصة المدمجة لـ Anthropic محدودة النطاق. يذكر دليل Anthropic الرسمي: «يكتشف Open WebUI عناوين URL الخاصة بـ Anthropic (أي URL يحتوي على
api.anthropic.com)» — وحتى بالنسبة إلى URL كهذا، «تُرسَل طلبات الدردشة نفسها دون تغيير إلى/v1/chat/completionsالمتوافق مع OpenAI لدى Anthropic مع مصادقة Bearer». لا تزال الحالة الخاصة Chat Completions، مرتبطة باسم مضيف واحد محدّد، ولا يحتوي عنوان اتصال QCode عليه. - في الشيفرة المصدرية الصادرة للإصدار نفسه (
backend/open_webui/config.pyعند الوسمv0.12.0)، تكون متغيرات Base URL الخاصة بـ OpenAI كلها موجودة، في حين يعيد بحث غير حساس لحالة الأحرف عنanthropicصفر نتائج — فلا يوجد إعداد Anthropic Messages صادر يمكن توجيهه إلى بوابة. - ثمة تفصيل يُقرأ خطأً: يعرض Open WebUI نقطة نهاية خاصة به متوافقة مع Anthropic Messages، لكن الوثائق تذكر أن غرضها السماح لـ «الأدوات وSDKs والتطبيقات المبنية من أجل Anthropic API بالعمل مباشرةً مع Open WebUI» — والاتجاه إلى الداخل. ولا يحوّل ذلك Open WebUI إلى عميل بروتوكول Anthropic لمزوّدك.
- حين يتحدث مزوّد ما عبر API لا ينفّذه Open WebUI، فإن المسار الموثّق هو دالة pipe أو وكيل ترجمة مثل LiteLLM. لم نتحقق من أي منهما مقابل QCode، لذا لا تقدّم هذه الصفحة وصفة من هذا القبيل — إذا كنت تحتاج إلى Claude اليوم، فاختر عميلًا يتحدث بروتوكول Anthropic.
للاطلاع على الجدول الكامل للبروتوكول × عائلة النموذج، انظر نقاط النهاية ومسارات API.
التثبيت¶
الأوامر الثلاثة أدناه منسوخة من البداية السريعة الرسمية.
Docker — تتطلب الوثائق Docker وتطلب منك استبدال your-secret-key بمخرجات openssl rand -hex 32:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main
قراءة تعيين المنفذ: يقول جدول الخيارات الرسمي «تكون واجهة المستخدم على المنفذ 3000 في جهازك. غيّر الرقم الأيسر إذا كان 3000 مشغولًا.»
pip:
pip install open-webui
open-webui serve
وفقًا للوثائق، «أصبح Open WebUI الآن على http://localhost:8080. عيّن DATA_DIR لاختيار مكان تخزين بياناتك».
uv (دون تثبيت عام؛ مثال macOS/Linux):
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
إصدارات Python: «يدعم Open WebUI Python 3.11 و3.12. Python 3.13 غير مدعوم بعد».
الإعداد¶
مسار اتصالات المسؤول (موصى به)¶
- افتح Open WebUI في متصفحك.
- كما تقول الوثائق: «انتقل إلى Settings > Admin > Connections وابحث عن قائمة Manage OpenAI API Connections.»
- «انقر على ➕ Add Connection.»
- أبقِ Connection Type: External.
- URL:
https://api.qcode.cc/openai/v1. يشير الدليل الرسمي إلى أن «حقل URL سيقوم بـاقتراح نقاط نهاية شائعة للمزوّد أثناء الكتابة» — هذه الاقتراحات هي عناوين مزوّدين آخرين، لذا اكتب عنوان QCode كاملًا. لا تذكر الوثائق ما إذا كان يجب أن ينتهي عنوان بوابة مخصص بـ/v1؛ استخدم العنوان الذي تنشره بوابتك بالضبط. بالنسبة إلى QCode فهوhttps://api.qcode.cc/openai/v1، دون شرطة مائلة لاحقة. - API Key: مفتاح QCode الخاص بك (يبدأ بـ
cr_). - Model IDs (ضمن Advanced): أضف كل معرّف تريد رؤيته في محدّد النموذج، واحدًا تلو الآخر — الصياغة الرسمية هي «في إعدادات الاتصال، اعثر على Model IDs، واكتب معرّف النموذج، وانقر على أيقونة +، ثم احفظ.» بمجرد التحقق من الاتصال، «يقترح حقل Model IDs معرّفات النموذج الخاصة بالمزوّد أثناء الكتابة».
ترك الحقل فارغًا يُبقي الاكتشاف التلقائي («Default (Empty): يكتشف تلقائيًا جميع النماذج المتاحة من المزوّد.»)؛ وملؤه يغيّر السلوك: «يتوقف Open WebUI عن استدعاء
/modelsالخاص بالمزوّد لذلك الاتصال ويسرد المعرّفات التي كتبتها بالضبط». - Prefix ID (اختياري): توصي الوثائق ببادئة عندما «تتصل بعدة مزوّدين لديهم نماذج بالاسم نفسه» وتذكر أن «Open WebUI يضم البادئة ومعرّف النموذج بنقطة» — لذا مع البادئة
qcodeوالمعرّفglm-5.3، يعرض المحدّدqcode.glm-5.3. - Provider (ضمن Advanced): اتركه على Default. «تركه على Default آمن دائمًا.» توجد القائمة المنسدلة لاتصالات OpenAI فقط.
- انقر على Save. يحمل كل اتصال مخزّن أيضًا مفتاح تبديل يتيح لك تمكينه أو تعطيله دون حذفه.
اختر المعرّفات التي تريدها فعليًا من نماذج عائلة الصين واختيار النموذج؛ الفوترة لكل token، والأسعار على qcode.cc/models.
متغيرات البيئة (المثيلات المستضافة ذاتيًا)¶
تعتبر الوثائق المسارين متكافئين: «يُعدّ Open WebUI عبر متغيرات البيئة، ويمكنك أيضًا تعيين القيم نفسها من لوحة إدارة Open WebUI.»
# add these -e flags to the docker command above, or export them before `open-webui serve`
OPENAI_API_BASE_URL=https://api.qcode.cc/openai/v1
OPENAI_API_KEY=cr_your_qcode_key
المعاني الموثّقة: OPENAI_API_BASE_URL «يهيّئ Base URL الخاص بـAPI OpenAI» (قيمته الافتراضية المضمّنة هي https://api.openai.com/v1)، وOPENAI_API_KEY «يعيّن مفتاح API الخاص بـOpenAI». لموازنة بوابتين في مثيل واحد، OPENAI_API_BASE_URLS «يدعم عناوين Base URL المتوازنة لـAPI OpenAI، مفصولة بفاصلة منقوطة.»
ملاحظتان تحذيريتان مباشرتان من صفحة المرجع تلك:
- هذه المتغيرات موسومة بـ
ConfigVar، لذا «بعد التشغيل الأولي، إذا أعدت تشغيل الحاوية، فلن تستخدم متغيرات البيئةConfigVarقيم متغيرات البيئة الخارجية بعد الآن. بدلًا من ذلك، ستستخدم القيم المخزّنة داخليًا.» عيّنها قبل أول تشغيل، أو غيّرها لاحقًا في واجهة المستخدم الإدارية. - تقول الصفحة نفسها إنها «محدّثة وفق إصدار Open WebUI [v0.11.1]»، بينما الإصدار الذي تم التحقق منه هنا هو v0.12.0 — أعد التحقق من أسماء المتغيرات بعد الترقية.
النماذج الصينية¶
تعمل العائلات الصينية كلها على اتصال OpenAI المتوافق نفسه: deepseek-v4.1-flash، deepseek-v4-flash، deepseek-v4-pro، glm-5.3، glm-5.2، qwen3.8-max، qwen3.8-flash، qwen3.7-plus، kimi-k3. أضف ما تريده منها إلى Model IDs، ثم اقرأ نماذج عائلة الصين لمعرفة الفروق.
التحقق¶
تحدد وثائق Open WebUI نفسها التوقع: «حفظ الاتصال لا يختبره.» ويوصف الزر المجاور لحقل URL بدقة: «النقر على زر Verify Connection المجاور لحقل URL يستدعي نقطة نهاية /models لدى المزوّد باستخدام token Bearer قياسي ويبلّغ Server connection verified.» والمزوّدون الذين لا ينفّذون نقطة النهاية تلك، أو يحمونها بطريقة مختلفة، وُثّق سلوكهم على النحو التالي: «سيفشل التحقق من الاتصال بخطأ (مثل 400 أو 401 أو 403).» — و«هذا لا يعني أن المزوّد غير متوافق: ستظل إكمالات الدردشة تعمل.» والحل الموثّق يدوي: «كل ما عليك هو إضافة أسماء النماذج يدويًا إلى قائمة السماح Model IDs في إعدادات الاتصال.»
لذا، عمليًا:
- ضع المعرّفات التي تنوي استخدامها في Model IDs — فهذا هو المسار الموثوق بصرف النظر عمّا يقوله زر التحقق.
- أرسل رسالة واحدة إلى نموذج واحد في قائمة السماح داخل الدردشة. تلك الرحلة ذهابًا وإيابًا هي الاختبار الحقيقي.
- إذا أردت فصل جهة QCode عن جهة Open WebUI، فاستدعِ نقطة النهاية مباشرة:
curl -X POST https://api.qcode.cc/openai/v1/chat/completions \
-H "Authorization: Bearer $QCODE_KEY" \
-H "content-type: application/json" \
-d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"ping"}]}'
لا نملك مفتاح اختبار لهذه الجولة، ولهذا تبقى العلامة في الأعلى 📄: لا يُدّعى هنا وجود رمز حالة أو جسم استجابة. قارن ما أعادَه طلبك الخاص بالمدخلات الواردة تحت استكشاف الأخطاء.
استكشاف الأخطاء / القيود المعروفة¶
| العَرَض | الصياغة الرسمية | ما يجب فعله |
|---|---|---|
| قائمة النماذج فارغة أو تنقصها عناصر | /models «يُستخدم لاكتشاف النماذج واختيارها في واجهة المستخدم. إذا لم يكن متاحًا، فأضف النماذج إلى قائمة السماح يدويًا.» |
أضف كل معرّف ضمن Model IDs |
| جلب قائمة النماذج بطيء، أو عنوان محفوظ غير قابل للوصول يعطّل واجهة المستخدم | «ارفع المهلة للاتصالات الأبطأ. القيمة الافتراضية 10 ثوانٍ، والقيمة الفارغة تعطّلها»، مثل AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST=30 |
عيّن المتغير، أو امسح عنوان URL غير الصالح |
| خادم على جهازك غير قابل للوصول من الحاوية | «إذا كنت تشغّل Open WebUI في Docker وخادم النماذج لديك على الجهاز المضيف، فاستبدل localhost بـ host.docker.internal في URL.» |
أعد كتابة URL |
| اتصال المسؤول يفشل بينما تعمل اتصالات المستخدمين | تسرد الوثائق «502 Bad Gateway على الاتصالات المُهيأة من المسؤول بينما تعمل اتصالات المستخدمين على نحو جيد» وتوضح أنه بالنسبة إلى طلبات المسؤول/العامة «يحلّ خادم Open WebUI الخلفي اسم المضيف ذلك، وقد يحلّه داخل حاوية Docker إلى 127.0.0.1»؛ النصيحة الرسمية: «لاتصالات الخادم الخلفي/المسؤول، استخدم URL الداخلي الذي يستطيع الخادم الخلفي الوصول إليه فعليًا» |
تحقق من العنوان الذي يحلّه الخادم الخلفي، لا الذي يراه متصفحك |
| يتعطل تثبيت pip أو uv | «يدعم Open WebUI Python 3.11 و3.12. Python 3.13 غير مدعوم بعد» | استخدم 3.11 أو 3.12 |
| لا يمكن العثور على القائمة المنسدلة Provider إطلاقًا | «تنتمي القائمة المنسدلة Provider إلى اتصالات OpenAI فقط.» | لا تُعرض في أنواع الاتصالات الأخرى |
حدود جهة QCode التي يجدر معرفتها قبل التخطيط للإطلاق:
- لا يمكن الوصول إلى Claude من هذه الأداة. لا ينشر QCode مسارًا لـ Claude على نقطة النهاية المتوافقة مع OpenAI؛ تنتمي طلبات Claude إلى نقطة نهاية Anthropic Messages، التي لا يستدعيها Open WebUI. بالنسبة إلى Claude، استخدم أداة تتحدث بروتوكول Anthropic، أو Claude Code — راجع توافق الأدوات.
- لا يوفّر QCode النموذجين
gpt-6-luna/gpt-5.6-luna، ولا عائلة Gemini؛ استخدمgpt-6.1-solأوgpt-6-solأوgpt-5.6-terra، أو نموذجًا صينيًا. - Direct Connections (حين يوجّه المستخدمون متصفحهم مباشرة إلى مزوّد) موثّقة بأنها «حاليًا تجريبية»، ومعطّلة ما لم يفعّلها المسؤول — «Settings > Admin > Connections > Direct Connections: بدّل إلى On»، أو
ENABLE_DIRECT_CONNECTIONS=true، وهو «يفعّل الاتصالات المباشرة أو يعطّلها» — وهناك يوجد المفتاح في جهة العميل: «تُخزَّن المفاتيح في التخزين المحلي للمتصفح». ولأن المتصفح هو من يجري الاستدعاء، تشترط الصفحة الرسمية أن «يكون لدى مزوّد API مشاركة الموارد عبر الأصل (CORS) مهيأة للسماح بالطلبات من نطاق Open WebUI الخاص بك»؛ أما ما إذا كان QCode يستجيب للطلبات المباشرة من المتصفح لنطاقك، فذلك غير متحقق منه هنا، لذا اعتبر اتصال المسؤول هو المسار المدعوم. - لم يُشغَّل أي شيء في هذه الصفحة باستخدام مفتاح فعلي. أسماء الحقول ومسارات القوائم وأسماء المتغيرات والأوامر مقتبسة من الوثائق الرسمية؛ وقيم نقطة نهاية QCode مأخوذة من نقاط النهاية ومسارات API.
ذات صلة¶
- نقاط النهاية ومسارات API — أي عائلة نماذج تعمل على أي بروتوكول
- توافق الأدوات — الأدوات التي تدعم بروتوكول Anthropic، لاستخدام Claude
- نماذج العائلة الصينية — المعرّفات والاختلافات لـ GLM / Kimi / DeepSeek / Qwen
- اختيار النموذج — اختيار معرّف لمهمة
- استكشاف الأخطاء وإصلاحها — البحث عن الأخطاء من جانب QCode
- تكامل Cherry Studio — عميل باتصال من نوع Anthropic، إذا كنت تحتاج إلى Claude
- تكامل SillyTavern — عميل آخر متوافق مع OpenAI
ابدأ مع QCode
مفتاح API واحد لـ Claude Code وCodex وغيرها — تُحسب حسب التوكن، وأسعار كل نموذج على qcode.cc/models