🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
İstifadəçilər üçün: Sürətli həllər axtarırsınız? Aşağıdakı Qısa arayışa baxın.
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
OmniRoute üçün ümumi problemlər və həllər.
OmniRoute ilə yenicə tanış olursunuz? Buradan başlayın — bunlar problemlərin 90%-ni həll edir:
| Bunu görürəm | Mənası | Nə etməli |
|---|---|---|
| "Qoşulmaq mümkün deyil" | OmniRoute işləmir | omniroute əmrini icra edin və ya docker restart omniroute istifadə edin |
| "Yanlış API açarı" | Açarınız yanlışdır və ya vaxtı bitib | Açarı provayderin saytından yenidən köçürün |
| "Sorğu tezliyi limiti aşılıb" | Həddindən çox sorğu göndərirsiniz | 1 dəqiqə gözləyin və ya avtomatik alternativ üçün model: "auto" istifadə edin |
| "Kvota aşılıb" | Pulsuz/ödənişli kvotanızı bitirmisiniz | Daha çox provayder qoşun və ya pulsuz provayderlərdən (Kiro, Pollinations) istifadə edin |
| "Yavaş cavablar" | Provayder məşğuldur və ya uzaqda yerləşir | model: "auto/fast" istifadə edin və ya daha sürətli provayder (Groq, Cerebras) qoşun |
| "Yanlış provayder istifadə edildi" | auto başqa provayder seçib |
Bu normaldır! auto ən yaxşısını seçir. model: "openai/gpt-4o" ilə konkret provayderi məcburi seçin |
| "502 Bad Gateway" | Provayder işləmir | Gözləyib yenidən cəhd edin və ya provayderi dəyişmək üçün model: "auto" istifadə edin |
| "401 Unauthorized" | Giriş məlumatlarınız yanlışdır | API açarınızı yoxlayın və ya OAuth ilə yenidən autentifikasiya olun |
| "omniroute tanınmır" | Windows PATH-də qlobal node modulları yoxdur | npm qlobal prefiksinizi Windows PATH-ə əlavə edin. Onu npm config get prefix ilə tapın. |
| "429 Too Many Requests" | Sorğu tezliyi məhdudlaşdırılıb | 1 dəqiqə gözləyin və ya daha çox provayder qoşun |
Hələ də problem həll olunmayıb? Aşağıdakı ətraflı problemlərin aradan qaldırılması bölməsinə baxın və ya Discord üzərindən soruşun.
Əlamət: Pulsuz/autentifikasiya tələb etməyən provayderlərlə (opencode, auggie və s.) model: "auto" istifadə edərkən cavab əvəzinə vaxtaşırı HTTP 429, 400 və ya 401 xətası alırsınız. Bir neçə saniyə sonra eyni sorğunu təkrar göndərdikdə sorğular uğurla yerinə yetirilir, lakin avtomatlaşdırma (cron tapşırıqları, agentlər, skriptlər) ilk xətada dayanır.
Əsas səbəb: Üç müstəqil nasazlıq rejimi üst-üstə düşür:
- Provayderin sorğu tezliyi limiti (
429): Pulsuz səviyyələr müəyyən zaman intervalı üçün kvota tətbiq edə bilər. Paralel çağırışların ani artımı bu kvotanı tükədir, buna görə də interval sıfırlanana qədər növbəti sorğu rədd edilir. - Birbaşa ötürmədə nasaz model (
400/401):auto/*hovuzlarınaopencodeprovayderinin kataloqda qeydiyyatdan keçmiş, lakin aktiv giriş məlumatları olmayan birbaşa ötürmə modelləri daxil ola bilər (məsələn,oc/north-mini-code-free→401). Avtomatik marşrutlaşdırıcı onlardan birini sınayır, uğursuz olur və alternativə keçid işə düşməzdən əvvəl xəta ötürülür. - Paralelliyin gücləndirilməsi (yük altında
429): Bir neçə agent/cron sessiyası eyni andaauto-ya müraciət etdikdə ümumi sorğu tezliyi pulsuz provayderlərin qəbul edə biləcəyi həddi aşır, buna görə də qanuni çağırışlar sui-istifadə kimi işarələnir.
Təsdiqlənmiş həll (icma tərəfindən bildirilib, 2026-08-10): rotasiya, paralellik və alternativə keçidin pulsuz səviyyədəki qeyri-sabitliyi xəta ilə dayanmaq əvəzinə kompensasiya etməsi üçün üç mühit dəyişənini tənzimləyin:
export OMNIROUTE_ROTATE_ON_400=true # 400/401 zamanı başqa modelə/provayderə keçin (nasaz birbaşa ötürmə modellərini ötürür)
export OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT=4 # ağır sorğular üçün açıq qəbul həddi (standart olaraq təyin edilməyib: sorğu sayı limiti yoxdur, aşağıdakı qeydə baxın)
export OMNIROUTE_CHAT_ADMISSION_QUEUE_MS=5000 # dərhal təkrar sınana bilən 503 xətası əvəzinə ağır sorğu tutumu üçün daha uzun, məhdud gözləməBunları OmniRoute prosesinin mühitində (demonda, məsələn, LaunchAgent plist vasitəsilə və ya systemctl edit ilə) təyin edin, sonra OmniRoute-u yenidən başladın. Rotasiya bayrağı ən yüksək təsirə malik tək parametrdir: o, hovuzdakı işlək provayderdə şəffaf şəkildə yenidən cəhd etməklə sərt xətanı aradan qaldırır.
Qeyd: OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT eyni anda neçə ağır — uzun kontekstli — sorğunun işləyəcəyini məhdudlaşdırır; bu hədd provayderin sorğu tezliyi məhdudlaşdırıcısı deyil, qəbul keçididir. #503-fanout yeniləməsi: bu dəyişən artıq standart olaraq təyin edilmir (indi yalnız yuxarıdakı kimi açıq şəkildə konfiqurasiya edildikdə tətbiq olunur) — bunun əvəzinə ağır sorğuların qəbulu hostun real yaddaş həddinə əsasən özünü miqyaslandıran, avtomatik hesablanan bayt büdcəsi (OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES) ilə idarə olunur; buna görə də yeni quraşdırmada bu dəyişən ümumiyyətlə təyin edilmədən daha az 503 chat_admission_busy rəddi müşahidə edilməlidir. Onu burada açıq şəkildə təyin etmək yenə də sənədləşdirildiyi kimi işləyir. Bayt büdcəsinin açıq şəkildə dəyişdirilməsi 8 MiB–2 GiB aralığı ilə məhdudlaşdırılır. 413 body_exceeds_budget keçici xəta deyil: həmin bayt büdcəsini artırın, OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES dəyərini azaldın və ya prosesin yaddaş həddini artırın. inflight_bytes_budget səbəbindən yükün azaldılması müvəqqəti resurs çəkişməsidir və yenidən sınana bilər. Hər provayder üzrə sorğu tezliyinin məhdudlaşdırılması (open-sse/services/rateLimitManager.ts) ayrıca olaraq RATE_LIMIT_MAX_WAIT_MS, RATE_LIMIT_MAX_QUEUE_DEPTH və RATE_LIMIT_AUTO_ENABLE ilə idarə olunur — .env.example faylına baxın.
İşlədiyini necə yoxlamaq olar: agentinizi/cron tapşırığınızı qısa fasilə ilə iki dəfə işə salın və hər ikisinin uğurla tamamlandığını təsdiqləyin. Düzəlişdən əvvəl ikinci icra adətən 429/401 xətası verir. Düzəlişdən sonra xətalar (əgər varsa) şəffaf şəkildə yenidən sınanır və çağırış tamamlanır. Həmçinin curl /monitoring/health əmrini icra edib provayder bağlantılarındakı rateLimitedUntil sahəsini və təsirə məruz qalan provayderlər üçün circuitBreakers.providerBreakers[].state dəyərini izləyə bilərsiniz — vəziyyət CLOSED, DEGRADED, OPEN və ya HALF_OPEN dəyərlərindən biridir (src/shared/utils/circuitBreaker.ts faylına baxın) və uğursuzluğa davam edən provayder, sıfırlama pəncərəsi sınaq sorğusunun keçməsinə imkan verməzdən (HALF_OPEN) əvvəl CLOSED → DEGRADED → OPEN keçidini edəcək.
Hələ də 429 görürsünüzsə: həmin provayder üçün aktiv hesab həqiqətən öz kvotasını tükədib (sadəcə sorğu tezliyi limiti deyil). OmniRoute idarəetmə panelində → Providers → Accounts bölməsindən eyni provayder üçün ikinci hesab əlavə edin və ya başqa pulsuz provayderi (məsələn, routeway, auggie) qoşun. Rotasiya yalnız müvəqqəti sorğu tezliyi/400/401 xətalarında kömək edir; kvotanın tam tükənməsi ikinci etimadnamə və ya fərqli provayder tələb edir.
Görüntü modellərində (auto/vision, bazaarlink/*) 403 görürsünüzsə: qoşulmuş hesabın görüntü imkanlarını əhatə edən ödənişli planı yoxdur və ya API açarının icazələri kifayət etmir. Provayderin idarəetmə panelində açarın əhatə dairəsinə görüntü/multimodal imkanlarının daxil olduğunu yoxlayın və ya ödənişli tarifli hesab qoşaraq onu görüntü üçün hədəf kimi saxlayın.
npm install -g omniroute əmrini işlətdikdə npm warn ERESOLVE, peer-asılılıq bildirişləri və deprecated mesajları kimi çoxlu xəbərdarlıq görə bilərsiniz. Bunlar gözləniləndir və zərərsizdir. Çıxışda added <N> packages görürsünüzsə, quraşdırma uğurla tamamlanıb.
Peer-asılılıqların həlli ilə bağlı xəbərdarlıqları gizlətmək üçün OmniRoute-un dəstəklədiyi quraşdırma formasından istifadə edin:
npm install -g omniroute --legacy-peer-deps--legacy-peer-deps yalnız ERESOLVE və peer-asılılıq bildirişlərini gizlədir. Köhnəlmə bildirişləri görünməyə davam edir, çünki onlar tranzitiv üçüncü tərəf paketlərindən gəlir; bu bildirişlər quraşdırmanın uğursuz olduğunu göstərmir.
Xəbərdarlıqlar OmniRoute-un nəzarət etmədiyi üçüncü tərəf paketlərindəki köhnəlmiş peer-asılılıq diapazonlarından qaynaqlanır:
marked-terminalpaketimarked >=1 <16tələb edir, lakinmarked@18tapılıb — praktikada problemsiz işləyir; yuxarı səviyyəli peer diapazonu sadəcə köhnəlib.deprecated prebuild-install@7.1.3— tranzitiv yerli binar fayl endirmə köməkçisidir. O, sabitlənmişwreq-jsnəqliyyat bağlamasını quraşdırmaq üçün istifadə edilmir və veb-kuki provayderinin nəqliyyat quraşdırmasının uğursuz olduğunu göstərmir.
Heç bir tədbir tələb olunmur — yuxarı səviyyəli paketləri fork etmədən xəbərdarlıqları tamamilə susdurmaq mümkün deyil.
Gemini Web sorğusu Playwright Chromium-un quraşdırılmadığını bildirən mesajla 503
qaytarırsa, npm paketi mövcuddur, lakin brauzerin binar faylı yoxdur.
Playwright brauzer endirmələrini qəsdən npm paketinin
quraşdırılmasından ayrı saxlayır, buna görə də brauzer quraşdırılanadək bu cavab gözləniləndir.
Qlobal npm quraşdırması üçün Chromium-u OmniRoute paketinin kataloqundan quraşdırın ki, brauzer keşi eyni Playwright quraşdırmasına aid olsun:
cd "$(npm root -g)/omniroute"
npx playwright install chromiumQuraşdırmadan sonra OmniRoute-u yenidən başladın, sonra Gemini Web sorğusunu təkrar edin. OmniRoute-u
Docker təsvirindən işlədirsinizsə, Chromium və onun asılılıqlarını ehtiva edən -web təsvirindən
(və ya runner-web yığma hədəfindən) istifadə edin; əsas təsvir bunları
ehtiva etmir.
| Problem | Həll |
|---|---|
| İlk giriş işləmir | .env faylında INITIAL_PASSWORD təyin edin (sərt kodlaşdırılmış standart dəyər yoxdur) |
| İdarəetmə paneli yanlış portda açılır | PORT=20128 və NEXT_PUBLIC_BASE_URL=http://localhost:20128 təyin edin |
| Diskə heç bir jurnal yazılmır | APP_LOG_TO_FILE=true təyin edin və çağırış jurnalının qeydə alınmasının aktiv olduğunu yoxlayın |
| EACCES: icazə rədd edildi | ~/.omniroute yolunu əvəz etmək üçün DATA_DIR=/path/to/writable/dir təyin edin |
| Marşrutlaşdırma strategiyası yadda saxlanmır | Ən son v3.x buraxılışına yeniləyin (parametrlərin saxlanması üçün Zod sxemi düzəlişi əvvəlki versiyalarda təqdim edilib) |
| Giriş zamanı çökmə / boş səhifə | Node.js versiyasını yoxlayın — aşağıdakı Node.js Uyğunluğu bölməsinə baxın |
dlopen / slice is not valid mach-o file (macOS) |
cd $(npm root -g)/omniroute/app && npm rebuild better-sqlite3 && omniroute əmrini işlədin — aşağıdakı macOS yerli modulunun yenidən yığılması bölməsinə baxın |
| Proksidə "fetch failed" | Proksi konfiqurasiyasının düzgün səviyyədə təyin edildiyinə əmin olun — aşağıdakı Proksi Problemləri bölməsinə baxın |
Docker curl: (56) Recv failure: Connection reset by peer |
Docker port bağlamanız IPv6 üzərinə yönələ bilər. IPv4-ü məcburi etmək üçün -p 127.0.0.1:20128:20128 istifadə edin və ya curl -4 ilə sınaqdan keçirin. Aşağıdakı Docker IPv6 bölməsinə baxın |
Antivirus README.md faylını karantinə alır |
Yanlış müsbət nəticədir — aşağıdakı Antivirusun yanlış müsbət nəticələri bölməsinə baxın |
| Kaspersky Masaüstü tətbiqini troyan kimi işarələyir | İmzalanmamış quraşdırıcıya görə davranış əsaslı yanlış müsbət nəticədir — aşağıdakı Antivirusun yanlış müsbət nəticələri bölməsinə baxın |
Bu, yanlış müsbət nəticədir. Heç bir yoluxma yoxdur və heç bir tədbir tələb olunmur.
Avast və AVG çoxlu HTTP sorğusuna bənzəyən keçidlər olan adi mətn/Markdown fayllarını
işarələyən evristik analizdən istifadə edir. OmniRoute-un README.md faylı npm paketinə
daxildir (package.json → files siyahısında göstərilir), buna görə qlobal quraşdırma
zamanı node_modules/omniroute/README.md ünvanına yerləşdirilir — və orada təxminən 15
http://localhost:20128/... nümunəsi (MCP HTTP/SSE son nöqtələri, A2A .well-known URL-i
və curl fraqmentləri) var. Keçidlərin bu sıxlığı evristikanın işə düşməsi üçün kifayətdir.
Əgər bu, yalnız yaxın vaxtlarda başlayıbsa: faylın mahiyyəti dəyişməyib. README-də son
nöqtələr cədvəli genişləndirilib (MCP HTTP + SSE + A2A əlavə edilib) və daha çox curl
nümunəsi əlavə olunub; nəticədə hədd aşılıb.
Bu fayl heç bir icra edilə bilən məzmunu olmayan passiv sənəddir. Onu təhlükəsiz şəkildə karantindən bərpa edə bilərsiniz.
Nə etməli:
- Bildirişləri dayandırın — quraşdırma qovluğunu antivirusunuzda istisnalara əlavə edin
(Avast: Settings → Exceptions); qlobal
node_modulesyolunu və/və ya OmniRoute məlumat qovluğunu (~/.omniroute/) əlavə edin. - Yanlış müsbət nəticə barədə məlumat verin — https://www.avast.com/false-positive-file-form.php,
karantinə alınmış
README.mdfaylını əlavə edin. Bu, hər kəsə kömək edən həll yoludur, çünki problem təchizatçının evristikasının mətn faylına həddindən artıq reaksiya verməsidir.
Niyə bunu öz tərəfimizdə "düzəltmirik": bütün nümunələr http://localhost istifadə edir
və öz-özünə imzalanmış sertifikatların yaratdığı çətinliklər olmadan localhost üçün https
istifadə etmək mümkün deyil. Bir təchizatçının evristikasından yayınmaq üçün sənədləri
təhrif etmək skaner xətasını razı salmaq naminə bütün oxuculara zərər verərdi.
Bu, davranış evristikasından qaynaqlanan yanlış müsbət nəticədir. Heç bir yoluxma yoxdur.
Kaspersky-nin PDM: prefiksi hökmün məlum zərərli proqramla uyğunlaşdırma əsasında deyil,
Proactive Defense Module (System Watcher) tərəfindən, quraşdırıcının nə etdiyinə əsasən
verildiyini bildirir. Bu modul işə düşdükdə Kaspersky bütün quraşdırmanı "geri qaytarır" —
artıq yazılmış faylları silir — buna görə tətbiq sonda xarab olur və ya yoxa çıxır.
İşarələdiyi fayllar masaüstü tətbiqi ilə paketlənən, bəyan edilmiş açıq mənbəli asılılıqların standart hissələridir, məsələn:
resources/app/.build/next/node_modules/playwright-<hash>/lib/…/agentParser.jsvəworkerProcessEntry.js— tətbiqdaxili provayder girişində və brauzer əsaslı söhbətdə istifadə olunan brauzer avtomatlaşdırma kitabxanası Playwright.resources/app/.build/next/node_modules/@wreq-js/binding-win32-<arch>-msvc-<hash>/wreq-js.win32-<arch>-msvc.node— veb-kuki provayderlərində brauzer barmaq izi ilə HTTP üçün istifadə olunan sabitlənmişwreq-jsyerli bağlaması (<arch>—x64və yaarm64).
Niyə işə düşür: Windows quraşdırıcısı hələ kod imzası ilə imzalanmayıb, buna görə
imzasız NSIS quraşdırıcısının reputasiyası sıfırdır və davranış evristikaları maksimum
aqressivliklə işləyir. Paketlənmiş yerli DLL və %LOCALAPPDATA%\Programs\OmniRoute altında
yazılan yüzlərlə .js faylı (Next.js müstəqil yığmasından heş suffiksli paket qovluqları
daxil olmaqla) ilə birlikdə bu, evristikanın işə düşməsi üçün kifayətdir. Kod imzalama
planlaşdırılır; tətbiq edilənədək yeni buraxılışlarda bu hal təkrarlana bilər.
Nə etməli:
- Əvvəlcə endirmənizi yoxlayın (faylın dəyişdirilmiş olması ehtimalını aradan qaldırır).
Hər buraxılışda
sha512sahəsi (base64)OmniRoute.Setup.<version>.exequraşdırıcısını əhatə edənlatest.ymlyayımlanır. PowerShell-də quraşdırıcının olduğu qovluqdan:Çıxış$b = [System.Security.Cryptography.SHA512]::Create().ComputeHash( [System.IO.File]::ReadAllBytes("$PWD\OmniRoute.Setup.<version>.exe")) [Convert]::ToBase64String($b)
latest.yml→sha512ilə uyğun gəlməlidir. Uyğun gəlmirsə, faylı silin və yalnız GitHub buraxılışları səhifəsindən yenidən endirin. - Bərpa edin + istisna əlavə edin — geri qaytarılmış elementləri karantindən bərpa edin
və
%LOCALAPPDATA%\Programs\OmniRouteüçün istisna əlavə edin (Kaspersky → Settings → Threats and Exclusions), sonra yenidən quraşdırın. - Yanlış müsbət nəticə barədə məlumat verin — https://opentip.kaspersky.com/. İstifadəçilər tərəfindən göndərilən yanlış müsbət nəticə hesabatları icazə siyahısına əlavə edilməni həqiqətən sürətləndirir.
Səbəb: OmniRoute-un təsdiqlənmiş təhlükəsiz icra mühiti üçün minimum tələbindən kənar Node.js versiyasından istifadə edirsiniz. Ən çox rast gəlinən hal OmniRoute-un tələb etdiyi təhlükəsizlik yeniləmələri səviyyəsindən aşağı olan köhnə Node 22 və ya 24 yamaq versiyasının işlədilməsidir.
Əlamətlər:
- Giriş səhifəsi boş ekran və ya server xətası göstərir
- Konsolda
Error: Module did not self-registervə ya buna bənzər yerli bağlama xətaları göstərilir - İcra mühiti dəstəklənən təhlükəsizlik siyasətinə uyğun olmadıqda giriş səhifəsində Node versiyanızı göstərən narıncı xəbərdarlıq banneri görünür
Həll:
- Dəstəklənən Node.js LTS buraxılışını quraşdırın (tövsiyə olunur: Node.js 24.x):
nvm install 24 nvm use 24
- Versiyanızı yoxlayın:
node --version24.x LTS xəttindəv24.0.0və ya daha yeni versiya göstərməlidir - OmniRoute-u yenidən quraşdırın:
npm install -g omniroute - Yenidən başladın:
omniroute
Dəstəklənən təhlükəsiz versiyalar:
>=22.22.2 <23və ya>=24.0.0 <27. Node.js 24.x LTS (Krypton) və Node.js 26 tam dəstəklənir.
Səbəb: npm v11 (Node.js 24+ ilə birlikdə təqdim olunur) standart olaraq əlavə
asılılıqlar üçün quraşdırma skriptlərini bloklayır. better-sqlite3 optionalDependencies
bölməsində göstərildiyindən və yerli kompilyasiya (node-gyp rebuild) tələb etdiyindən, npm onu səssizcə ötürür.
Əlamətlər:
- Server işə salınarkən
Cannot find module 'better-sqlite3'xətası ilə çökür ls node_modules/better-sqlite3əmri "No such file or directory" göstərirnpm ls better-sqlite3əmri(empty)göstərir
Həll:
- Quraşdırma skriptlərini təsdiqləyin və yenidən quraşdırın:
npm approve-scripts better-sqlite3 npm install
- Yaxud əvvəlcədən yığılmış versiyanı əl ilə quraşdırın:
npm pack better-sqlite3@13.0.1 tar -xzf better-sqlite3-*.tgz -C node_modules mv node_modules/package node_modules/better-sqlite3 rm better-sqlite3-*.tgz
- İşlədiyini yoxlayın:
node -e "require('better-sqlite3')(':memory:').close(); console.log('OK')"
Səbəb: Qlobal npm install -g omniroute quraşdırmasından sonra paketin daxilindəki better-sqlite3 yerli binar faylı lokal olaraq işləyən mühitdən fərqli arxitektura və ya Node.js ABI üçün kompilyasiya edilmiş ola bilər. Əvvəlcədən yığılmış binar fayl mühitinizə uyğun gəlmədikdə bu hal macOS-da (həm Apple Silicon, həm də Intel sistemlərində) tez-tez baş verir.
Əlamətlər:
- Server işə salındıqdan dərhal sonra
dlopenxətası ilə dayanır - Xətada
slice is not valid mach-o fileifadəsi var - Tam nümunə:
dlopen(/Users/<user>/.nvm/versions/node/v24.14.1/lib/node_modules/omniroute/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node, 0x0001): tried: '...' (slice is not valid mach-o file)
Həll — lokal mühitiniz üçün yenidən yığın (Node.js versiyasını aşağı salmaq tələb olunmur):
cd $(npm root -g)/omniroute/app
npm rebuild better-sqlite3
omnirouteQeyd: Bu əməliyyat yerli bağlamanı lokal Node.js versiyanıza və CPU arxitekturanıza uyğun şəkildə yenidən kompilyasiya edərək binar uyğunsuzluğunu aradan qaldırır. Rəsmi olaraq dəstəklənən icra mühiti diapazonu
>=22.22.2 <23və ya>=24.0.0 <27-dir (src/shared/utils/nodeRuntimeSupport.tsfaylındakıSUPPORTED_NODE_RANGE,package.jsonfaylındakıenginessahəsinə uyğunlaşdırılıb). Node.js 24.x LTS (Krypton) və Node.js 26,better-sqlite3v12.x ilə tam dəstəklənir.
Səbəb: API açarının yoxlama son nöqtəsi (POST /api/providers/validate) əvvəllər proksi konfiqurasiyasından yan keçirdi və bu, proksi marşrutlaşdırması tələb edən mühitlərdə xətalara səbəb olurdu.
Həll (v3.5.5+): Bu problem artıq aradan qaldırılıb. Provayder yoxlaması runWithProxyContext vasitəsilə yönləndirilir və provayder səviyyəli və qlobal proksi parametrlərini avtomatik nəzərə alır.
Səbəb: Arxa planda OAuth tokeninin yenilənməsi hər bağlantı üçün proksi konfiqurasiyasını müəyyən etmirdi.
Həll (v3.5.5+): Token sağlamlıq yoxlaması planlaşdırıcısı artıq yeniləməyə cəhd etməzdən əvvəl hər bağlantı üçün proksi konfiqurasiyasını müəyyən edir. v3.5.5+ versiyasına yeniləyin.
Səbəb: Node.js 22-də undici@8 dispatcher-i Node-un daxili fetch() reallaşdırması ilə uyğun deyil.
Həll (v3.5.5+): OmniRoute artıq proksi dispatcher-i aktiv olduqda undici-nin öz fetch() funksiyasından istifadə edir və beləliklə ardıcıl davranışı təmin edir. v3.5.5+ versiyasına yeniləyin.
Səbəb: MITM proksisi və onun CA sertifikatı OmniRoute-un işlədiyi mühitə quraşdırılır. WSL altında həmin mühit Linux qonaq sistemi olduğu halda, AI masaüstü tətbiqləri (Kiro, Trae, Copilot, Zed, …) Windows hostunda işləyir. Host tətbiqləri qonaq sisteminin sertifikat anbarına etibar etmir və qonaq sisteminin sistem proksisi vasitəsilə yönləndirilmir, buna görə də masaüstü trafikin ələ keçirilməsi burada işə düşmür.
Tövsiyə: OmniRoute-u ələ keçirmək istədiyiniz masaüstü tətbiqləri ilə eyni əməliyyat sistemində birbaşa işə salın (Windows tətbiqləri üçün Windows; eyni qayda macOS/Linux üçün də keçərlidir). Host tətbiqlərini hədəfləyərkən OmniRoute-u WSL daxilində saxlamaq üçün yaradılmış CA sertifikatına Windows hostunda əl ilə etibar etmək və hər bir host tətbiqinin şəbəkə/proksi parametrlərini WSL proksi son nöqtəsinə yönəltmək lazımdır — bu, dəstəklənməyən və etibarsız bir quraşdırmadır.
Səbəb: Provayder kvotası tükənib.
Həll:
- İdarəetmə panelindəki kvota izləyicisini yoxlayın
- Ehtiyat səviyyələri olan kombinasiyadan istifadə edin
- Daha ucuz/pulsuz səviyyəyə keçin
Səbəb: Abunəlik kvotası tükənib.
Həll:
- Ehtiyat keçid əlavə edin:
cc/claude-opus-4-6 → glm/glm-4.7 → if/qwen3.8-max-preview - Ucuz ehtiyat variant kimi GLM/MiniMax istifadə edin
OmniRoute tokenləri avtomatik yeniləyir. Problemlər davam edərsə:
- İdarəetmə paneli → Provayder → Yenidən qoşulun
- Provayder bağlantısını silin və yenidən əlavə edin
Səbəb: Kiro-nun arxa sistemi hər OIDC müştəri qeydiyyatı üçün yalnız bir aktiv sessiyaya icazə verir. İki hesab eyni qeydiyyatdan keçmiş müştərini paylaşdıqda (v3.8.0-dan əvvəl idxal edilmiş bağlantılar), bir hesabın tokeninin yenilənməsi digərinin yeniləmə tokenini etibarsız edir.
Həll (v3.8.0+): Təsirlənmiş bağlantıları yenidən idxal edin. v3.8.0-dan başlayaraq Tokeni İdxal Et, Google/GitHub sosial girişi və ya Avtomatik İdxal vasitəsilə yaradılan hər yeni Kiro bağlantısı avtomatik olaraq öz ayrıca OIDC müştərisini qeydiyyatdan keçirir. Buna görə də bağlantı tam təcrid olunur və bir hesabın yenilənməsi digər hesabların heç birinə təsir etmir.
v3.8.0-dan əvvəl idxal edilmiş bağlantıların hər bağlantı üçün ayrıca müştəri qeydiyyatı yoxdur. Həmin bağlantılar ortaq sosial autentifikasiya yeniləmə son nöqtəsindən istifadə etməyə davam edir. Təcrid olunmanı təmin etmək üçün köhnə bağlantını İdarəetmə paneli → Provayderlər bölməsindən silin və onu üç idxal axınından hər hansı biri vasitəsilə yenidən əlavə edin.
Tam təfərrüatlar və iki Kiro hesabını paralel əlavə etmək üçün addım-addım təlimatlar üçün
docs/guides/KIRO_SETUP.md sənədinə baxın.
BASE_URLdəyərinin işləyən instansiyanıza yönəldiyini yoxlayın (məsələn,http://localhost:20128)CLOUD_URLdəyərinin bulud son nöqtənizə yönəldiyini yoxlayın (məsələn,https://omniroute.dev)NEXT_PUBLIC_*dəyərlərini server tərəfdəki dəyərlərlə uyğun saxlayın
Əlamət: Axınsız çağırışlar üçün bulud son nöqtəsində Unexpected token 'd'... xətası.
Səbəb: Müştəri JSON gözlədiyi halda yuxarı axın SSE faydalı yükü qaytarır.
Müvəqqəti həll: Buluda birbaşa çağırışlar üçün stream=true istifadə edin. Lokal icra mühiti SSE→JSON ehtiyat mexanizmini ehtiva edir.
- Lokal idarəetmə panelindən (
/api/keys) yeni açar yaradın - Bulud sinxronizasiyasını başladın: Buludu Aktivləşdir → İndi Sinxronizasiya Et
- Köhnə və ya sinxronizasiya edilməmiş açarlar buludda hələ də
401qaytara bilər
Əlamətlər: curl http://localhost:20128/v1/models əmri curl: (56) Recv failure: Connection reset by peer qaytarır. İdarəetmə paneli və autentifikasiya tələb etməyən son nöqtələr işləyir, lakin autentifikasiya tələb edən son nöqtələr uğursuz olur — bu, autentifikasiya problemi kimi görünsə də, əslində belə deyil.
Səbəb: docker run -p 20128:20128 portu həm 0.0.0.0 (IPv4), həm də :: (IPv6) üzərində yayımlayır, lakin konteyner daxilindəki proses yalnız IPv4 üzərindən dinləyir. localhost ünvanının əvvəlcə ::1 olaraq həll edildiyi hostlarda bağlantı arxasında dinləyici olmayan yayımlanmış IPv6 portuna düşür → bağlantı sıfırlanır.
Həll:
- Sürətli diaqnostika:
curl -4 http://localhost:20128/v1/modelsəmrini icra edin.-4ilə işləyib onsuz uğursuz olursa, IPv6 bağlama uyğunsuzluğu mövcuddur. - Daimi həll:
docker runəmrinizdə-p 127.0.0.1:20128:20128istifadə edərək açıq şəkildə IPv4 ünvanına bağlayın:Bu, IPv4 bağlamasını məcbur edir və həmçinin proksinin hostun bütün interfeyslərində əlçatan olmasının qarşısını alır.docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \ -p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
- İcra mühiti sahələrini yoxlayın:
curl http://localhost:20128/api/cli-tools/runtime/codex | jq - Portativ rejim üçün:
runner-cliobraz hədəfindən istifadə edin (CLI-lər daxildir) - Host qoşma rejimi üçün:
CLI_EXTRA_PATHStəyin edin və hostun bin kataloqunu yalnız oxuma rejimində qoşun - Əgər
installed=truevərunnable=falseolarsa: binar fayl tapılıb, lakin sağlamlıq yoxlamasından keçməyib
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}'- İdarəetmə Paneli → İstifadə bölməsində istifadə statistikasını yoxlayın
- Əsas modeli GLM/MiniMax ilə dəyişin
- Kritik olmayan tapşırıqlar üçün pulsuz səviyyədən (Qoder, Kiro) istifadə edin
- Hər API açarı üçün xərc büdcələri təyin edin: İdarəetmə Paneli → API Açarları → Büdcə
.env faylınızda APP_LOG_TO_FILE=true təyin edin. Tətbiq jurnalları logs/ altında yazılır.
Çağırış jurnalı emal xətti parametrlərdə aktivləşdirildikdə sorğu artefaktları
${DATA_DIR}/call_logs/ altında saxlanılır.
Emal xətti üzrə qeydəalma aktiv olduqda, axın fraqmentlərinin faydalı yüklərini buraxmaq üçün
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS=false təyin edin və ya artefakt limitini KB ilə dəyişmək üçün CALL_LOG_PIPELINE_MAX_SIZE_KB dəyərini tənzimləyin.
# Vəziyyət idarəetmə paneli
http://localhost:20128/dashboard/health
# API vəziyyət yoxlaması
curl http://localhost:20128/api/monitoring/health- Əsas vəziyyət:
${DATA_DIR}/storage.sqlite(provayderlər, kombinasiyalar, ləqəblər, açarlar, parametrlər) - İstifadə:
storage.sqlitedaxilindəki SQLite cədvəlləri (usage_history,call_logs,proxy_logs) + istəyə bağlı${DATA_DIR}/call_logs/ - Tətbiq jurnalları:
<repo>/logs/...(APP_LOG_TO_FILE=trueolduqda) - Çağırış jurnalı artefaktları: çağırış jurnalı emal xətti aktivləşdirildikdə
${DATA_DIR}/call_logs/YYYY-MM-DD/...
Sorğu Jurnalları səhifəsindəki Tarixçəni Təmizlə əməliyyatı call_logs, köhnə
request_detail_logs və lokal ${DATA_DIR}/call_logs/ artefakt kataloqunu təmizləyir.
Provayderin dövrə qırıcısı OPEN vəziyyətində olduqda, soyuma müddəti bitənədək sorğular bloklanır.
Həll:
- İdarəetmə paneli → Parametrlər → Dayanıqlılıq bölməsinə keçin
- Təsirə məruz qalan provayderin dövrə qırıcı kartını yoxlayın
- Bütün dövrə qırıcıları təmizləmək üçün Hamısını sıfırla düyməsinə klikləyin və ya soyuma müddətinin bitməsini gözləyin
- Sıfırlamadan əvvəl provayderin həqiqətən əlçatan olduğunu yoxlayın
Provayder dəfələrlə OPEN vəziyyətinə keçirsə:
- Xəta modelini görmək üçün İdarəetmə paneli → Sağlamlıq → Provayderin sağlamlığı bölməsini yoxlayın
- Parametrlər → Dayanıqlılıq → Provayder profilləri bölməsinə keçərək xəta həddini artırın
- Provayderin API limitlərini dəyişib-dəyişmədiyini və ya təkrar autentifikasiya tələb edib-etmədiyini yoxlayın
- Gecikmə telemetriyasını nəzərdən keçirin — yüksək gecikmə vaxt aşımına əsaslanan xətalara səbəb ola bilər
- İlk seqmenti giriş məlumatlarına sahib olduğunuz provayder olan model identifikatorundan istifadə edin (
openai/whisper-1,openrouter/deepgram/nova-3). Təkcədeepgram/nova-3istifadə etmək yerli Deepgram açarı tələb edir. - Provayderin İdarəetmə paneli → Provayderlər bölməsində qoşulduğunu yoxlayın
- Dəstəklənən audio formatlarını yoxlayın:
mp3,wav,m4a,flac,ogg,webm - Fayl ölçüsünün provayder limitləri daxilində olduğunu yoxlayın (adətən < 25MB)
- Provayder kartında API açarının etibarlılığını yoxlayın
Format tərcüməsi problemlərini sazlamaq üçün İdarəetmə paneli → Tərcüməçi bölməsindən istifadə edin:
| Rejim | Nə Zaman İstifadə Etməli |
|---|---|
| Sınaq meydançası | Giriş/çıxış formatlarını yan-yana müqayisə edin — necə tərcümə olunduğunu görmək üçün uğursuz sorğunu yapışdırın |
| Söhbət testeri | Canlı mesajlar göndərin və başlıqlar daxil olmaqla tam sorğu/cavab yükünü yoxlayın |
| Test stendi | Hansı tərcümələrin pozulduğunu tapmaq üçün format kombinasiyaları üzrə paket testlərini başladın |
| Canlı monitor | Fasilələrlə baş verən tərcümə problemlərini aşkarlamaq üçün real vaxt sorğu axınını izləyin |
- Düşünmə teqləri görünmür — Hədəf provayderin düşünmə funksiyasını dəstəkləyib-dəstəkləmədiyini və düşünmə büdcəsi parametrini yoxlayın
- Alət çağırışları itir — Bəzi format tərcümələri dəstəklənməyən sahələri silə bilər; Sınaq meydançası rejimində yoxlayın
- Sistem təlimatı yoxdur — Claude və Gemini sistem təlimatlarını fərqli şəkildə emal edir; tərcümə çıxışını yoxlayın
- SDK obyekt əvəzinə xam sətir qaytarır — v1.x versiyasında həll edilib; cavab təmizləyicisi OpenAI SDK Pydantic yoxlama xətalarına səbəb olan qeyri-standart sahələri (
x_groq,usage_breakdownvə s.) silir. Bunu hələ də v3.x+ versiyasında görürsünüzsə, problem bildirişi yaradın. - GLM/ERNIE
systemrolunu rədd edir — v1.x versiyasında həll edilib; rol normallaşdırıcısı uyğunsuz modellər üçün sistem mesajlarını avtomatik olaraq istifadəçi mesajları ilə birləşdirir. Bunu hələ də v3.x+ versiyasında görürsünüzsə, problem bildirişi yaradın. developerrolu tanınmır — v1.x versiyasında həll edilib; OpenAI olmayan provayderlər üçün avtomatik olaraqsystemroluna çevrilir. Bunu hələ də v3.x+ versiyasında görürsünüzsə, problem bildirişi yaradın.json_schemaGemini ilə işləmir — v1.x versiyasında həll edilib;response_formatartıq Gemini-ninresponseMimeType+responseSchemaformatına çevrilir. Bunu hələ də v3.x+ versiyasında görürsünüzsə, problem bildirişi yaradın.
- Avtomatik sürət məhdudlaşdırması yalnız API açarı provayderlərinə tətbiq olunur (OAuth/abunəliyə deyil)
- Settings → Resilience → Provider Profiles bölməsində avtomatik sürət məhdudlaşdırmasının aktiv olduğunu yoxlayın
- Provayderin
429status kodları və yaRetry-Afterbaşlıqları qaytarıb-qaytarmadığını yoxlayın
Provayder profilləri bu parametrləri dəstəkləyir:
- Baza gecikməsi — İlk uğursuzluqdan sonrakı ilkin gözləmə müddəti (standart: 1s)
- Maksimum gecikmə — Maksimum gözləmə müddəti həddi (standart: 30s)
- Vuruq — Hər ardıcıl uğursuzluqda gecikmənin nə qədər artırılacağı (standart: 2x)
Çoxlu paralel sorğu sürəti məhdudlaşdırılmış provayderə yönəldikdə, OmniRoute sorğuları ardıcıl emal etmək və zəncirvari uğursuzluqların qarşısını almaq üçün mutex + avtomatik sürət məhdudlaşdırmasından istifadə edir. Bu, API açarı provayderləri üçün avtomatikdir.
Əlamətlər:
- Söhbət tamamlamaları son nöqtəsi xəta kodu
chat_admission_busyolan, yenidən sınana bilən503cavabı qaytarır. - Cavaba
Retry-Afterdaxildir. #12135-dən etibarən dəyər müşahidə olunan yüklənmə əsasında müəyyən edilir — sorğunun artıq gözlədiyiOMNIROUTE_CHAT_ADMISSION_QUEUE_MSintervalından və cari ağır yük icarələrinin saxlanıldığı müddətdən daha böyük olanı seçilir — tam saniyəyə yuxarı yuvarlaqlaşdırılır və maksimum 60 ilə məhdudlaşdırılır. Boş şlüzdə tarixi minimumlar saxlanılır: bayt əsaslı yolda 2 saniyə, struktur əsaslı yolda 1 saniyə (buraya həmçininreason: "structure_limit"daxildir). - Bu, başqa bir ağır söhbət və ya uzunmüddətli axın cavabı hələ icra olunarkən baş verə bilər.
Bayt əsaslı cavab gövdəsi belədir:
{
"error": {
"message": "Chat admission capacity is temporarily unavailable. Retry shortly.",
"type": "server_error",
"code": "chat_admission_busy"
}
}Struktur əsaslı cavab eyni növ və koddan, həmçinin
Local chat admission capacity is busy for this structurally heavy request; upstream provider routing was not attempted. Retry shortly.
mesajından və reason: "structure_limit" dəyərindən istifadə edir.
Standart hədlərdə sorğuda ən azı 200 mesaj, ən azı 64 alət və ya ən azı 32,000
təxmini token olduqda, yaxud məhdudlaşdırılmış struktur qiymətləndirməsi 10,000 ziyarət edilmiş
qovşaq və ya 12 dərinlik hədlərini tükətdikdə sorğu struktur baxımından ağır hesab olunur.
Səbəb: Bu, yuxarı axın provayderinin uğursuzluğu deyil, OmniRoute daxilində məqsədli yük azaldılmasıdır. Hər proses böyük sorğu gövdəsini yaddaşda saxlamazdan və təhlil etməzdən əvvəl məhdud ağır yük tutumunu rezerv etmək üçün prosesə lokal qoruyucudan istifadə edir. Ağır yük icarəsi SSE cavabının bütün ömrü boyu saxlanılır.
#503-fanout: bu düzəlişdən əvvəl qoruyucu, host yaddaşından asılı olmayaraq paralelliyi sabit sorğu SAYI
ilə (OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT, standart 1) məhdudlaşdırırdı; buna görə kodlaşdırma agentlərinin
şaxələnməsi (çoxsaylı alt agentlər/CLI-lər, adətən > 256 KB olan gövdələr) effektiv paralelliyi
təxminən 1-ə endirir və tamamilə normal yük altında 503 xətalarına səbəb olurdu. Qoruyucu indi özünü
avtomatik tənzimləyir: o, prosesin real yaddaş həddinə əsasən ölçüləndirilən, avtomatik hesablanmış
qəbul BAYT büdcəsi (OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES) ilə idarə olunur və həmçinin canlı resurs
təzyiqi siqnalını nəzərə alır — beləliklə, yalnız host həqiqətən yaddaş təzyiqi altında olduqda yükü
azaldır, sadəcə eyni anda birdən çox ağır sorğunun gəlməsinə görə deyil. Köhnə say həddi
(OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT) hələ də nəzərə alınır, lakin yalnız onu açıq şəkildə təyin etdikdə.
Tutum məşğul olduqda, ağır sorğu yenidən sınana bilən 503 cavabını verməzdən əvvəl
yerin boşalması üçün maksimum OMNIROUTE_CHAT_ADMISSION_QUEUE_MS (standart 2000, 0 gözləməni
deaktiv edir) müddətində gözləyir. Məhdud gözləmə ona görə mövcuddur ki, ağır alt sorğuları paralel
şaxələndirən agent tipli müştərilər (OpenCode, Claude Code, Cursor) dərhal rədd cavabları alaraq bütün
yenidən sınaq büdcəsini tükətmək və tapşırığın ortasında dayanmaq əvəzinə sorğu partlayışını ardıcıl
emal etsinlər. Cari ağır yük icarələrinin doluluğu, müəyyən edilmiş bayt büdcəsi və canlı təzyiqin
şiddəti GET /api/monitoring/health → chatAdmission bölməsində (inflightBytes, maxInflightBytes,
budgetSource, pressureSeverity, countCapEnabled) göstərilir — hər hansı env var dəyişəninə
toxunmazdan əvvəl bunları yoxlayın. Settings → Resilience → Request Queue → Concurrent Requests bunu
idarə etmir; həmin parametr ayrıca provayder sorğu növbəsi mexanizmini idarə edir.
Həll:
- Əvvəlcə yenidən sınayın. Müştərilər sorğunu dərhal
təkrarlamaq əvəzinə
Retry-Aftergöstərişinə əməl etməli və geri çəkilmədən istifadə etməlidir. - Hər hansı tənzimləmə etməzdən əvvəl
/api/monitoring/health→chatAdmissionbölməsini yoxlayın.countCapEnabled: falsevə kifayət qədər böyükmaxInflightBytesavtomatik hesablanmış büdcənin artıq öz işini gördüyünü bildirir;high/criticaldəyərindəpressureSeverityisə hostda həqiqətən yaddaş çatışmazlığı olduğunu göstərir — bunu qəbul env var dəyişəni ilə düzəltmək mümkün deyil, daha çox RAM və ya daha kiçik iş yükü tələb olunur. - Yalnız
/api/monitoring/healthavtomatik hesablanmış büdcənin hostunuz üçün həqiqətən çox kiçik olduğunu göstərərsə (bu nadirdir — o, artıq konteynerdən fiziki serverədək miqyaslanır), köhnə sorğu sayı həddinə qayıtmaq əvəzinə onu birbaşaOMNIROUTE_CHAT_MAX_INFLIGHT_BYTESilə dəyişdirin.
Qəbul parametrlərinin mötəbər təsviri üçün mühit dəyişənləri arayışına baxın.
Bəzi OmniRoute istifadəçiləri şlüzü RAG və ya agent steklərinin qarşısında yerləşdirirlər. Belə konfiqurasiyalarda qəribə bir nümunəyə tez-tez rast gəlinir: OmniRoute sağlam görünür (provayderlər işləyir, marşrutlaşdırma profilləri qaydasındadır, sürət limiti xəbərdarlıqları yoxdur), lakin yekun cavab yenə də səhv olur.
Praktikada bu insidentlər adətən şlüzün özündən deyil, sonrakı RAG konveyerindən qaynaqlanır.
Bu xətaları təsvir etmək üçün ortaq terminologiyadan istifadə etmək istəyirsinizsə, təkrarlanan on altı RAG / LLM xəta nümunəsini müəyyən edən, MIT lisenziyalı xarici mətn resursu olan WFGY ProblemMap-dən istifadə edə bilərsiniz. Ümumi səviyyədə o, aşağıdakıları əhatə edir:
- axtarış yayınması və pozulmuş kontekst sərhədləri
- boş və ya köhnəlmiş indekslər və vektor anbarları
- embedding və semantika uyğunsuzluğu
- prompt yığımı və kontekst pəncərəsi problemləri
- məntiqin çökməsi və həddindən artıq əminliklə verilən cavablar
- uzun zəncir və agent koordinasiyası xətaları
- çoxagentli yaddaş və rol yayınması
- yerləşdirmə və ilkin işəsalma ardıcıllığı problemləri
İdeya sadədir:
- Səhv cavabı araşdırarkən aşağıdakıları qeydə alın:
- istifadəçi tapşırığı və sorğusu
- OmniRoute-dakı marşrut və ya provayder kombinasiyası
- sonrakı mərhələdə istifadə olunan hər hansı RAG konteksti (əldə edilmiş sənədlər, alət çağırışları və s.)
- İnsidenti bir və ya iki WFGY ProblemMap nömrəsi ilə (
No.1…No.16) əlaqələndirin. - Nömrəni öz idarəetmə panelinizdə, əməliyyat təlimatınızda və ya insident izləyicinizdə OmniRoute jurnallarının yanında saxlayın.
- RAG stekinizi, axtarış komponentinizi və ya marşrutlaşdırma strategiyanızı dəyişdirməli olub-olmadığını müəyyən etmək üçün müvafiq WFGY səhifəsindən istifadə edin.
Tam mətn və konkret reseptlər burada yerləşir (MIT lisenziyası, yalnız mətn):
OmniRoute arxasında RAG və ya agent konveyerləri işlətmirsinizsə, bu bölməni nəzərə almaya bilərsiniz.
v3.8.0 buraxılışına xas problemlər və onların cari müvəqqəti həlləri. Düzəliş sonrakı yamaq versiyasında təqdim olunarsa, müvafiq qeyd yenilənəcək və ya silinəcək.
Əlamətlər:
- Devin əsaslı alətləri çağırarkən "Devin CLI tapılmadı" və ya "autentifikasiya uğursuz oldu" xətası
- CLI icra mühiti yoxlaması
installed=falsebildirir
Səbəblər:
CLI_DEVIN_BINmövcud olmayan yola işarə edir- Devin CLI hostda quraşdırılmayıb
Həll:
- Platformanız üçün Devin CLI-ni quraşdırın
.envfaylındaCLI_DEVIN_BIN=/usr/local/bin/devin(və ya faktiki yolu) təyin edin- OmniRoute-u yenidən başladın və İdarəetmə paneli → CLI Alətləri bölməsindən təkrar sınaqdan keçirin
Əlamətlər:
- Bitmə vaxtı keçdikdən sonra belə model soyuma rejimində göstərilməyə davam edir
- Vaxt nişanının keçmişdə olmasına baxmayaraq, kombinasiya marşrutlaşdırması zamanı sorğular hələ də modeli ötürür
Əl ilə sıfırlama:
- İdarəetmə paneli: Parametrlər → Model Soyuma Rejimləri → təsirə məruz qalan kartda Yenidən aktivləşdir düyməsinə klikləyin
- API: idarəetmə autentifikasiyası başlıqları ilə
DELETE /api/resilience/model-cooldowns
Əlamətlər:
- Command Code provayderi ilə bağlantını sınaqdan keçirərkən 403 xətası
- Provayder kartı yeni əlavə edildikdən sonra "icazəsiz" göstərir
Səbəb: OAuth prosesi tamamlanmayıb (geri çağırış qəbul edilməyib və ya token yadda saxlanılmayıb).
Həll:
- OAuth prosesini yenidən başlatmaq üçün CLI-dən
omniroute providersəmrini icra edin və ya - İdarəetmə paneli → Provayderlər → Command Code → Yenidən qoşul vasitəsilə OAuth prosesini təkrar başladın
Əlamətlər:
- Kiçik sorğu sıçrayışından sonra ModelScope-da çox qısa və ya dərhal başlayan soyuma müddətləri
- Kombinasiya marşrutlaşdırması ModelScope-u gözləniləndən daha tez ötürür
Səbəb: ModelScope provayderə xas Retry-After başlıqları göndərir. v3.8.0 bu başlıqlar üçün xüsusi emal mexanizmi ilə təqdim olunur, buna görə də daha köhnə versiyalar onları ümumi sürət limiti göstərişləri kimi səhv şərh edir.
Həll:
- v3.8.0 və ya daha yeni versiyada olduğunuzdan əmin olun
- Parametrlər → Dayanıqlılıq bölməsində
useUpstream429BreakerHintskeçidinin aktiv olduğunu yoxlayın
Əlamətlər:
- Uzaq istehsal hostunda işləyərkən hər Codex/Responses WebSocket körpü sorğusunda 401 xətası
- WebSocket körpüsünün əlaqə razılaşması qoşulmadan dərhal sonra bağlanır
Səbəb: İstehsal mühitində OMNIROUTE_WS_BRIDGE_SECRET mühit dəyişəni yoxdur.
Həll:
- Təsadüfi sirr yaradın:
openssl rand -hex 32 - İstehsal serverinin mühitində (və körpü ilə əlaqə saxlayan hər bir klientdə)
OMNIROUTE_WS_BRIDGE_SECRET=<random-secret>təyin edin - OmniRoute-u yenidən başladın
Əlamətlər:
- Jurnala xəbərdarlıq yazılır:
background mode degraded to synchronous background: truesorğusu fon tapşırığı deskriptoru əvəzinə normal sinxron cavab qaytarır
Səbəb: v3.8.0 xəbərdarlıq yaradaraq Responses API-də background: true parametrini qəsdən sinxron icraya endirir. Tam asinxron fon icrası gələcəkdə təqdim ediləcək funksiyadır.
Həll:
- Klienti
backgroundolmadan çağırış etmək üçün uyğunlaşdırın və ya - Tam asinxron fon rejimini təqdim edən sonrakı buraxılışı gözləyin (dəyişikliklər jurnalını izləyin)
CLI ⚠ Server did not respond within 60s mesajını göstərirsə, lakin server
əslində işləyirsə, hazırlıq yoxlaması üçün ayrılmış vaxt mühitinizə görə çox qısadır.
Bu, adətən Windows-da (antivirus, fayl sistemi izləyiciləri) və ya başlanğıcda ağır iş yükü olan konteynerlərdə baş verir.
Həll — ayrılmış vaxtı artırın:
# Mühit dəyişəni vasitəsilə (sonrakı başladılmalarda da qüvvədə qalır):
export OMNIROUTE_READY_TIMEOUT_MS=180000 # 3 dəqiqə
omniroute serve
# CLI bayrağı vasitəsilə (birdəfəlik):
omniroute serve --ready-timeout 180000Standart dəyər 60 000 ms-dir (60 s). Xəbərdarlıq yalnız məlumat xarakterlidir; server arxa planda başlamağa davam edir və yüklənmə tamamlandıqdan sonra əlçatan olacaq.
OMNIROUTE_READY_TIMEOUT_MS haqqında tam təfərrüatlar üçün
docs/reference/ENVIRONMENT.md sənədinə baxın.
- GitHub Issues: github.com/diegosouzapw/OmniRoute/issues
- Arxitektura: Daxili təfərrüatlar üçün
docs/architecture/ARCHITECTURE.mdsənədinə baxın - API İstinadı: Bütün son nöqtələr üçün
docs/reference/API_REFERENCE.mdsənədinə baxın - Sağlamlıq İdarəetmə Paneli: Sistemin real vaxt statusu üçün Dashboard → Health bölməsini yoxlayın
- Tərcüməçi: Format problemlərini sazlamaq üçün Dashboard → Translator bölməsindən istifadə edin