🌐 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
Typowe problemy i rozwiązania dla OmniRoute.
| Problem | Rozwiązanie |
|---|---|
| Pierwsze logowanie nie działa | Sprawdź INITIAL_PASSWORD w .env (domyślnie: 123456) |
| Panel kontrolny otwiera się na złym porcie | Ustaw PORT=20128 i NEXT_PUBLIC_BASE_URL=http://localhost:20128 |
Brak dzienników żądań pod logs/ |
Ustaw ENABLE_REQUEST_LOGS=true |
| EACCES: odmowa pozwolenia | Ustaw DATA_DIR=/path/to/writable/dir, aby zastąpić ~/.omniroute |
| Strategia routingu nie jest zapisywana | Aktualizacja do wersji 1.4.11+ (poprawka schematu Zoda zapewniająca trwałość ustawień) |
Przyczyna: Limit dostawcy został wyczerpany.
Poprawka:
- Sprawdź moduł śledzenia limitów na pulpicie nawigacyjnym
- Użyj kombinacji z poziomami rezerwowymi
- Przejdź na tańszy/bezpłatny poziom
Przyczyna: Wyczerpany limit subskrypcji.
Poprawka:
- Dodaj rezerwę:
cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking - Użyj GLM/MiniMax jako taniej kopii zapasowej
OmniRoute automatycznie odświeża tokeny. Jeśli problemy nadal występują:
- Panel kontrolny → Dostawca → Połącz ponownie
- Usuń i ponownie dodaj połączenie dostawcy
- Sprawdź, czy
BASE_URLwskazuje na działającą instancję (np.http://localhost:20128) - Zweryfikuj punkty
CLOUD_URLw punkcie końcowym w chmurze (np.https://omniroute.dev) - Zachowaj wyrównanie wartości
NEXT_PUBLIC_*z wartościami po stronie serwera
Objaw: Unexpected token 'd'... na punkcie końcowym w chmurze dla połączeń innych niż przesyłanie strumieniowe.
Przyczyna: Upstream zwraca ładunek SSE, podczas gdy klient oczekuje JSON.
Rozwiązanie: użyj stream=true do bezpośrednich połączeń w chmurze. Lokalne środowisko wykonawcze obejmuje rezerwę SSE → JSON.
- Utwórz nowy klucz z lokalnego pulpitu nawigacyjnego (
/api/keys) - Uruchom synchronizację z chmurą: Włącz chmurę → Synchronizuj teraz
- Stare/niezsynchronizowane klucze nadal mogą zwracać
401w chmurze
- Sprawdź pola wykonawcze:
curl http://localhost:20128/api/cli-tools/runtime/codex | jq - W trybie przenośnym: użyj docelowego obrazu
runner-cli(w pakiecie CLI) - W trybie montowania hosta: ustaw
CLI_EXTRA_PATHSi zamontuj katalog bin hosta jako tylko do odczytu - Jeśli
installed=trueirunnable=false: znaleziono plik binarny, ale kontrola stanu nie powiodła się
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}'- Sprawdź statystyki użytkowania w Panelu → Użycie
- Zmień model podstawowy na GLM/MiniMax
- Korzystaj z bezpłatnej warstwy (Gemini CLI, iFlow) do zadań niekrytycznych
- Ustaw budżety kosztów według klucza API: Panel → Klucze API → Budżet
Ustaw ENABLE_REQUEST_LOGS=true w swoim pliku .env. Dzienniki pojawiają się w katalogu logs/.
# Health dashboard
http://localhost:20128/dashboard/health
# API health check
curl http://localhost:20128/api/monitoring/health- Stan główny:
${DATA_DIR}/db.json(dostawcy, kombinacje, aliasy, klucze, ustawienia) - Użycie:
${DATA_DIR}/usage.json,${DATA_DIR}/log.txt,${DATA_DIR}/call_logs/ - Dzienniki żądań:
<repo>/logs/...(kiedyENABLE_REQUEST_LOGS=true)
Gdy wyłącznik automatyczny dostawcy jest OTWARTY, żądania są blokowane do czasu upłynięcia czasu odnowienia.
Poprawka:
- Przejdź do Panel sterowania → Ustawienia → Odporność
- Sprawdź kartę wyłącznika dla odpowiedniego dostawcy
- Kliknij Resetuj wszystko, aby wyczyścić wszystkie wyłączniki, lub poczekaj, aż upłynie czas odnowienia
- Przed zresetowaniem sprawdź, czy dostawca jest rzeczywiście dostępny
Jeśli dostawca wielokrotnie wchodzi w stan OPEN:
- Sprawdź Panel kontrolny → Kondycja → Kondycja dostawcy pod kątem wzorca awarii
- Przejdź do Ustawienia → Odporność → Profile dostawców i zwiększ próg awarii
- Sprawdź, czy dostawca zmienił limity API lub wymaga ponownego uwierzytelnienia
- Sprawdź dane telemetryczne dotyczące opóźnień — duże opóźnienia mogą powodować awarie wynikające z przekroczenia limitu czasu
- Upewnij się, że używasz prawidłowego przedrostka:
deepgram/nova-3lubassemblyai/best - Sprawdź, czy dostawca jest podłączony w ** Panelu → Dostawcy**
- Sprawdź obsługiwane formaty audio:
mp3,wav,m4a,flac,ogg,webm - Sprawdź, czy rozmiar pliku mieści się w granicach dostawcy (zwykle < 25 MB)
- Sprawdź ważność klucza API dostawcy na karcie dostawcy
Użyj Panel kontrolny → Tłumacz, aby debugować problemy z tłumaczeniem formatu:
| Tryb | Kiedy stosować |
|---|---|
| Plac zabaw | Porównaj formaty wejścia/wyjścia obok siebie — wklej nieudane żądanie, aby zobaczyć, jak zostanie przetłumaczone |
| Tester czatu | Wysyłaj wiadomości na żywo i sprawdzaj pełny ładunek żądania/odpowiedzi, w tym nagłówki |
| Stolik testowy | Przeprowadź testy wsadowe dla kombinacji formatów, aby dowiedzieć się, które tłumaczenia są uszkodzone |
| Monitorowanie na żywo | Obserwuj przepływ żądań w czasie rzeczywistym, aby wykryć sporadyczne problemy z tłumaczeniem |
- Tagi myślenia nie pojawiają się — Sprawdź, czy dostawca docelowy obsługuje myślenie i ustawienie budżetu na myślenie
- Porzucanie wywołań narzędzi — Niektóre tłumaczenia formatów mogą usuwać nieobsługiwane pola; sprawdź w trybie placu zabaw
- Brak podpowiedzi systemowej — Claude i Gemini inaczej obsługują podpowiedzi systemowe; sprawdź wynik tłumaczenia
- SDK zwraca surowy ciąg znaków zamiast obiektu — Naprawiono w wersji 1.1.0: narzędzie do czyszczenia odpowiedzi usuwa teraz niestandardowe pola (
x_groq,usage_breakdownitp.), które powodują błędy sprawdzania poprawności OpenAI SDK w Pydantic - GLM/ERNIE odrzuca rolę
system— Naprawiono w wersji 1.1.0: normalizator ról automatycznie łączy komunikaty systemowe z komunikatami użytkownika w przypadku niekompatybilnych modeli developerrola nie została rozpoznana — Naprawiono w wersji 1.1.0: automatycznie konwertowana nasystemdla dostawców innych niż OpenAIjson_schemanie działa z Gemini — Naprawiono w wersji 1.1.0:response_formatjest teraz konwertowany naresponseMimeTypeGemini +responseSchema
- Automatyczne ograniczenie szybkości dotyczy tylko dostawców kluczy API (nie OAuth/subskrypcja)
- Sprawdź, czy Ustawienia → Odporność → Profile dostawców ma włączone automatyczne ograniczenie stawek
- Sprawdź, czy dostawca zwraca kody stanu
429lub nagłówkiRetry-After
Profile dostawców obsługują następujące ustawienia:
- Opóźnienie bazowe — Początkowy czas oczekiwania po pierwszej awarii (domyślnie: 1 s)
- Maks. opóźnienie — Maksymalny limit czasu oczekiwania (domyślnie: 30 s)
- Mnożnik — O ile zwiększyć opóźnienie przy kolejnej awarii (domyślnie: 2x)
Gdy wiele jednoczesnych żądań trafia do dostawcy z ograniczoną szybkością, OmniRoute używa mutexu i automatycznego ograniczania szybkości, aby serializować żądania i zapobiegać kaskadowym błędom. Jest to automatyczne w przypadku dostawców kluczy API.
- Problemy z GitHubem: github.com/diegosouzapw/OmniRoute/issues
- Architektura: Zobacz link, aby uzyskać szczegółowe informacje wewnętrzne
- Dokumentacja API: Zobacz link dla wszystkich punktów końcowych
- Panel stanu: Sprawdź Panel kontrolny → Zdrowie, aby sprawdzić stan systemu w czasie rzeczywistym
- Tłumacz: Użyj Panel kontrolny → Tłumacz, aby debugować problemy z formatem