🌐 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
Probleme și soluții comune pentru OmniRoute.
| Problemă | Soluție |
|---|---|
| Prima conectare nu funcționează | Verificați INITIAL_PASSWORD în .env (implicit: 123456) |
| Tabloul de bord se deschide pe portul greșit | Setați PORT=20128 și NEXT_PUBLIC_BASE_URL=http://localhost:20128 |
Niciun jurnal de solicitare sub logs/ |
Setați ENABLE_REQUEST_LOGS=true |
| EACCES: permisiunea refuzată | Setați DATA_DIR=/path/to/writable/dir să înlocuiască ~/.omniroute |
| Strategia de rutare nu se salvează | Actualizare la v1.4.11+ (remedierea schemei Zod pentru persistența setărilor) |
Cauza: Cota de furnizor epuizată.
Remediere:
- Verificați instrumentul de urmărire a cotelor din tabloul de bord
- Utilizați un combo cu niveluri de rezervă
- Treceți la nivelul mai ieftin/gratuit
Cauza: Cota de abonament epuizată.
Remediere:
- Adăugați alternativă:
cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking - Utilizați GLM/MiniMax ca rezervă ieftină
OmniRoute reîmprospătează automat jetoanele. Dacă problemele persistă:
- Tabloul de bord → Furnizor → Reconectare
- Ștergeți și adăugați din nou conexiunea la furnizor
- Verificați
BASE_URLpuncte către instanța dvs. care rulează (de exemplu,http://localhost:20128) - Verificați
CLOUD_URLpuncte către punctul final de cloud (de exemplu,https://omniroute.dev) - Păstrați valorile
NEXT_PUBLIC_*aliniate cu valorile de pe server
Simptom: Unexpected token 'd'... pe punctul final cloud pentru apeluri care nu sunt transmise în flux.
Cauza: Upstream returnează sarcina utilă SSE în timp ce clientul așteaptă JSON.
Soluție: utilizați stream=true pentru apelurile directe în cloud. Timpul de rulare local include SSE→JSON fallback.
- Creați o cheie nouă din tabloul de bord local (
/api/keys) - Rulați sincronizarea în cloud: Activați Cloud → Sincronizare acum
- Cheile vechi/nesincronizate pot reveni în continuare
401pe cloud
- Verificați câmpurile de rulare:
curl http://localhost:20128/api/cli-tools/runtime/codex | jq - Pentru modul portabil: utilizați imaginea țintă
runner-cli(CLI-uri incluse) - Pentru modul de montare gazdă: setați
CLI_EXTRA_PATHSși montați directorul bin gazdă ca doar citire - Dacă
installed=trueșirunnable=false: binarul a fost găsit, dar verificarea de sănătate a eșuat
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}'- Verificați statisticile de utilizare în Tabloul de bord → Utilizare
- Comutați modelul principal la GLM/MiniMax
- Utilizați nivelul gratuit (Gemini CLI, iFlow) pentru sarcini necritice
- Setați bugete de cost pentru fiecare cheie API: Tabloul de bord → Chei API → Buget
Setați ENABLE_REQUEST_LOGS=true în fișierul dvs. .env. Jurnalele apar în directorul logs/.
# Health dashboard
http://localhost:20128/dashboard/health
# API health check
curl http://localhost:20128/api/monitoring/health- Stare principală:
${DATA_DIR}/db.json(furnizori, combo-uri, aliasuri, chei, setări) - Utilizare:
${DATA_DIR}/usage.json,${DATA_DIR}/log.txt,${DATA_DIR}/call_logs/ - Jurnalele de solicitare:
<repo>/logs/...(cândENABLE_REQUEST_LOGS=true)
Când întrerupătorul unui furnizor este DESCHIS, cererile sunt blocate până la expirarea perioadei de răcire.
Remediere:
- Accesați Tabloul de bord → Setări → Reziliență
- Verificați cardul întreruptorului pentru furnizorul afectat
- Faceți clic pe Reset All pentru a șterge toate întrerupătoarele sau așteptați ca perioada de răcire să expire
- Verificați că furnizorul este efectiv disponibil înainte de resetare
Dacă un furnizor intră în mod repetat în starea DESCHIS:
- Verificați Tabloul de bord → Sănătate → Sănătatea furnizorului pentru modelul de eșec
- Accesați Setări → Reziliență → Profiluri furnizor și creșteți pragul de eșec
- Verificați dacă furnizorul a modificat limitele API sau dacă necesită re-autentificare
- Examinați telemetria latenței — latența mare poate cauza eșecuri bazate pe timeout
- Asigurați-vă că utilizați prefixul corect:
deepgram/nova-3sauassemblyai/best - Verificați că furnizorul este conectat în Tabloul de bord → Furnizori
- Verificați formatele audio acceptate:
mp3,wav,m4a,flac,ogg,webm - Verificați că dimensiunea fișierului este în limitele furnizorului (de obicei < 25 MB)
- Verificați valabilitatea cheii API a furnizorului în cardul furnizorului
Utilizați Tabloul de bord → Traducător pentru a depana problemele de traducere de format:
| Modul | Când să utilizați |
|---|---|
| Teren de joacă | Comparați formatele de intrare/ieșire una lângă alta — inserați o solicitare eșuată pentru a vedea cum se traduce |
| Tester de chat | Trimiteți mesaje live și inspectați întreaga sarcină de solicitare/răspuns, inclusiv antetele |
| Banc de testare | Rulați teste în loturi în combinații de formate pentru a afla ce traduceri sunt întrerupte |
| Monitor live | Urmăriți fluxul de solicitări în timp real pentru a detecta problemele intermitente de traducere |
- Nu apar etichete de gândire — Verificați dacă furnizorul țintă acceptă gândirea și setarea bugetului de gândire
- Scăderea apelurilor de instrumente — Unele traduceri în format pot elimina câmpurile neacceptate; verificați în modul Playground
- Lipsește promptul de sistem — Claude și Gemini gestionează prompturile în mod diferit; verificați rezultatul traducerii
- SDK returnează șir brut în loc de obiect — Remediat în v1.1.0: dezinfectantul de răspuns acum elimină câmpurile nestandard (
x_groq,usage_breakdownetc.) care cauzează eșecuri de validare OpenAI SDK Pydantic - GLM/ERNIE respinge rolul
system— Remediat în v1.1.0: normalizatorul de roluri îmbină automat mesajele de sistem în mesajele utilizatorului pentru modele incompatibile developerrol nerecunoscut — Remediat în v1.1.0: convertit automat însystempentru furnizorii non-OpenAIjson_schemanu funcționează cu Gemini — Remediat în v1.1.0:response_formateste acum convertit înresponseMimeType+responseSchemaal lui Gemini
- Limita automată a ratei se aplică numai furnizorilor de chei API (nu OAuth/abonament)
- Verificați că Setări → Reziliență → Profiluri furnizorului are limita de rata automată activată
- Verificați dacă furnizorul returnează codurile de stare
429sau anteturileRetry-After
Profilurile furnizorilor acceptă aceste setări:
- Întârziere de bază — Timp de așteptare inițial după prima defecțiune (implicit: 1s)
- Întârziere maximă — Limită maximă a timpului de așteptare (implicit: 30s)
- Multiplicator — Cât de mult se mărește întârzierea pentru fiecare defecțiune consecutivă (implicit: 2x)
Când multe solicitări concurente ajung la un furnizor cu o rată limitată, OmniRoute folosește mutex + limitarea automată a ratei pentru a serializa cererile și a preveni eșecurile în cascadă. Acest lucru este automat pentru furnizorii de chei API.
- Probleme GitHub: github.com/diegosouzapw/OmniRoute/issues
- Arhitectură: Consultați link pentru detalii interne
- Referință API: Consultați link pentru toate punctele finale
- Tabloul de bord pentru sănătate: verificați Tabloul de bord → Sănătate pentru starea sistemului în timp real
- Translator: utilizați Tabloul de bord → Translator pentru a depana problemele de format