🌐 Languages: 🇺🇸 English | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filipino
المشاكل والحلول الشائعة لـ OmniRoute.
| مشكلة | الحل |
|---|---|
| تسجيل الدخول الأول لا يعمل | تحقق من INITIAL_PASSWORD في .env (الافتراضي: 123456) |
| تفتح لوحة المعلومات على منفذ خاطئ | اضبط PORT=20128 وNEXT_PUBLIC_BASE_URL=http://localhost:20128 |
لا توجد سجلات للطلب ضمن logs/ |
تعيين ENABLE_REQUEST_LOGS=true |
| EACCES: تم رفض الإذن | اضبط DATA_DIR=/path/to/writable/dir لتجاوز ~/.omniroute |
| استراتيجية التوجيه لا تنقذ | التحديث إلى الإصدار 1.4.11+ (إصلاح مخطط Zod لاستمرارية الإعدادات) |
السبب: استنفدت حصة الموفر.
الإصلاح:
- تحقق من تعقب الحصص في لوحة القيادة
- استخدم مجموعة من المستويات الاحتياطية
- قم بالتبديل إلى الطبقة الأرخص/المجانية
السبب: استنفدت حصة الاشتراك.
الإصلاح:
- إضافة احتياطي:
cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking - استخدم GLM/MiniMax كنسخة احتياطية رخيصة الثمن
يقوم OmniRoute بتحديث الرموز المميزة تلقائيًا. إذا استمرت المشكلات:
- لوحة المعلومات → الموفر → إعادة الاتصال
- قم بحذف وإعادة إضافة اتصال الموفر
- تحقق من نقاط
BASE_URLلمثيلك قيد التشغيل (على سبيل المثال،http://localhost:20128) - تحقق من نقاط
CLOUD_URLإلى نقطة نهاية السحابة الخاصة بك (على سبيل المثال،https://omniroute.dev) - حافظ على محاذاة قيم
NEXT_PUBLIC_*مع القيم من جانب الخادم
العَرَض: Unexpected token 'd'... على نقطة نهاية السحابة للمكالمات غير المتدفقة.
السبب: يقوم المنبع بإرجاع حمولة SSE بينما يتوقع العميل JSON.
الحل البديل: استخدم stream=true للمكالمات السحابية المباشرة. يتضمن وقت التشغيل المحلي SSE → JSON الاحتياطي.
- قم بإنشاء مفتاح جديد من لوحة المعلومات المحلية (
/api/keys) - قم بتشغيل المزامنة السحابية: قم بتمكين السحابة → المزامنة الآن
- لا يزال بإمكان المفاتيح القديمة/غير المتزامنة إرجاع
401على السحابة
- تحقق من حقول وقت التشغيل:
curl http://localhost:20128/api/cli-tools/runtime/codex | jq - بالنسبة للوضع المحمول: استخدم هدف الصورة
runner-cli(CLIs المجمعة) - بالنسبة لوضع تثبيت المضيف: قم بتعيين
CLI_EXTRA_PATHSوتثبيت دليل حاوية المضيف للقراءة فقط - إذا تم العثور على
installed=trueوrunnable=false: ثنائي ولكن فشل التحقق من الصحة
curl -s http://localhost:20128/api/cli-tools/codex-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'
curl -s http://localhost:20128/api/cli-tools/claude-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'
curl -s http://localhost:20128/api/cli-tools/openclaw-settings | jq '{installed,runnable,commandPath,runtimeMode,reason}'- تحقق من إحصائيات الاستخدام في لوحة المعلومات → الاستخدام
- قم بتبديل النموذج الأساسي إلى GLM/MiniMax
- استخدم الطبقة المجانية (Gemini CLI، iFlow) للمهام غير الحرجة
- قم بتعيين ميزانيات التكلفة لكل مفتاح واجهة برمجة التطبيقات: لوحة المعلومات ← مفاتيح واجهة برمجة التطبيقات ← الميزانية
قم بتعيين ENABLE_REQUEST_LOGS=true في ملف .env الخاص بك. تظهر السجلات ضمن الدليل logs/.
# Health dashboard
http://localhost:20128/dashboard/health
# API health check
curl http://localhost:20128/api/monitoring/health- الحالة الرئيسية:
${DATA_DIR}/db.json(المزودون، المجموعات، الأسماء المستعارة، المفاتيح، الإعدادات) - الاستخدام:
${DATA_DIR}/usage.json،${DATA_DIR}/log.txt،${DATA_DIR}/call_logs/ - سجلات الطلب:
<repo>/logs/...(عندماENABLE_REQUEST_LOGS=true)
عندما يكون قاطع دائرة الموفر مفتوحًا، يتم حظر الطلبات حتى تنتهي فترة التهدئة.
الإصلاح:
- انتقل إلى لوحة التحكم ← الإعدادات ← المرونة
- تحقق من بطاقة قاطع الدائرة الكهربائية الخاصة بالمزود المتأثر
- انقر فوق إعادة تعيين الكل لمسح جميع القواطع، أو انتظر حتى تنتهي فترة التهدئة
- تحقق من أن الموفر متاح فعليًا قبل إعادة التعيين
إذا دخل مقدم الخدمة بشكل متكرر في الحالة المفتوحة:
- تحقق من Dashboard → Health → Provider Health لمعرفة نمط الفشل
- انتقل إلى الإعدادات → المرونة → ملفات تعريف الموفر وقم بزيادة حد الفشل
- تحقق مما إذا كان الموفر قد قام بتغيير حدود واجهة برمجة التطبيقات (API) أو طلب إعادة المصادقة
- قم بمراجعة القياس عن بعد لزمن الاستجابة - قد يتسبب زمن الاستجابة العالي في حدوث أعطال بسبب انتهاء المهلة
- تأكد من أنك تستخدم البادئة الصحيحة:
deepgram/nova-3أوassemblyai/best - تحقق من أن الموفر متصل في لوحة التحكم ← الموفرون
- تحقق من تنسيقات الصوت المدعومة:
mp3،wav،m4a،flac،ogg،webm - التحقق من أن حجم الملف يقع ضمن حدود الموفر (عادةً أقل من 25 ميجابايت)
- التحقق من صلاحية مفتاح API الخاص بالموفر في بطاقة المزود
استخدم لوحة المعلومات → المترجم لتصحيح مشكلات ترجمة التنسيق:
| الوضع | متى تستخدم |
|---|---|
| ساحة اللعب | قارن تنسيقات الإدخال/الإخراج جنبًا إلى جنب — الصق طلبًا فاشلاً لترى كيف تتم ترجمته |
| ** اختبار الدردشة ** | أرسل رسائل مباشرة وافحص حمولة الطلب/الاستجابة الكاملة بما في ذلك الرؤوس |
| ** مقعد الاختبار ** | قم بإجراء اختبارات مجمعة عبر مجموعات التنسيق للعثور على الترجمات المعطلة |
| مراقبة حية | شاهد تدفق الطلبات في الوقت الفعلي للتعرف على مشكلات الترجمة المتقطعة |
- لا تظهر علامات التفكير — تحقق مما إذا كان الموفر المستهدف يدعم التفكير وإعداد ميزانية التفكير
- استدعاءات الأداة — قد تؤدي بعض ترجمات التنسيق إلى إزالة الحقول غير المدعومة؛ تحقق في وضع الملعب
- مطالبة النظام مفقودة — يتعامل نظام Claude وGemini مع المطالبات بشكل مختلف؛ التحقق من إخراج الترجمة
- ** تقوم SDK بإرجاع سلسلة أولية بدلاً من الكائن ** - تم الإصلاح في الإصدار 1.1.0: تقوم أداة معالجة الاستجابة الآن بإزالة الحقول غير القياسية (
x_groq،usage_breakdown، وما إلى ذلك) التي تتسبب في فشل التحقق من صحة OpenAI SDK Pydantic - GLM/ERNIE يرفض دور
system— تم إصلاحه في الإصدار 1.1.0: يقوم مُطبيع الدور تلقائيًا بدمج رسائل النظام في رسائل المستخدم للنماذج غير المتوافقة developerلم يتم التعرف على الدور — تم إصلاحه في الإصدار 1.1.0: تم تحويله تلقائيًا إلىsystemلمقدمي الخدمات غير التابعين لـ OpenAIjson_schemaلا يعمل مع Gemini — تم إصلاحه في الإصدار 1.1.0:response_formatتم تحويله الآن إلىresponseMimeType+responseSchemaالخاص بـ Gemini__
- ينطبق حد المعدل التلقائي فقط على موفري مفاتيح واجهة برمجة التطبيقات (وليس OAuth/الاشتراك)
- تحقق من أن الإعدادات → المرونة → ملفات تعريف الموفر تم تمكين حد المعدل التلقائي
- تحقق مما إذا كان الموفر يعرض
429رموز الحالة أو رؤوسRetry-After
تدعم ملفات تعريف الموفر هذه الإعدادات:
- التأخير الأساسي — وقت الانتظار الأولي بعد الفشل الأول (الافتراضي: 1 ثانية)
- الحد الأقصى للتأخير — الحد الأقصى لوقت الانتظار (الافتراضي: 30 ثانية)
- المضاعف — مقدار زيادة التأخير لكل فشل متتالي (الافتراضي: 2x)
عندما تصل العديد من الطلبات المتزامنة إلى موفر محدود السعر، يستخدم OmniRoute تحديد المعدل التلقائي + mutex لإجراء تسلسل للطلبات ومنع حالات الفشل المتتالية. وهذا تلقائي لموفري مفاتيح API.
- مشكلات GitHub: github.com/diegosouzapw/OmniRoute/issues
- الهندسة المعمارية: راجع OMNI_TOKEN_55 للحصول على التفاصيل الداخلية
- مرجع واجهة برمجة التطبيقات: راجع OMNI_TOKEN_56 لجميع نقاط النهاية
- لوحة معلومات الصحة: تحقق من لوحة المعلومات ← الصحة لمعرفة حالة النظام في الوقت الفعلي
- المترجم: استخدم لوحة المعلومات ← المترجم لتصحيح مشكلات التنسيق