1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
131 KiB
API Reference (Azərbaycan dili)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 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
🌐 Dillər: 🇺🇸 English | 🇪🇹 አማርኛ | 🇸🇦 العربية | 🇦🇿 Azərbaycan dili | 🇧🇬 Български | 🇧🇩 বাংলা | 🇨🇿 Čeština | 🇩🇰 Dansk | 🇩🇪 Deutsch | 🇬🇷 Ελληνικά | 🇪🇸 Español | 🇪🇪 Eesti | 🇮🇷 فارسی | 🇫🇮 Suomi | 🇫🇷 Français | 🇮🇪 Gaeilge | 🇮🇳 ગુજરાતી | 🇳🇬 Hausa | 🇮🇱 עברית | 🇮🇳 हिन्दी | 🇭🇷 Hrvatski | 🇭🇺 Magyar | 🇦🇲 Հայերեն | 🇮🇩 Bahasa Indonesia | 🇳🇬 Igbo | 🇮🇹 Italiano | 🇯🇵 日本語 | 🇬🇪 ქართული | 🇰🇭 ខ្មែរ | 🇮🇳 ಕನ್ನಡ | 🇰🇷 한국어 | 🇱🇹 Lietuvių | 🇱🇻 Latviešu | 🇮🇳 മലയാളം | 🇮🇳 मराठी | 🇲🇾 Bahasa Melayu | 🇲🇹 Malti | 🇲🇲 မြန်မာ | 🇳🇵 नेपाली | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇮🇳 ଓଡ଼ିଆ | 🇮🇳 ਪੰਜਾਬੀ | 🇵🇭 Filipino | 🇵🇱 Polski | 🇵🇹 Português (Portugal) | 🇧🇷 Português (Brasil) | 🇷🇴 Română | 🇷🇺 Русский | 🇱🇰 සිංහල | 🇸🇰 Slovenčina | 🇸🇮 Slovenščina | 🇷🇸 Српски | 🇸🇪 Svenska | 🇰🇪 Kiswahili | 🇮🇳 தமிழ் | 🇮🇳 తెలుగు | 🇹🇭 ไทย | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇵🇰 اردو | 🇺🇿 Oʻzbekcha | 🇻🇳 Tiếng Việt | 🇳🇬 Yorùbá | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)
OmniRoute API üçün əsas istinad sənədi. Bu sənəd açıq /v1 interfeysini və ən çox istifadə olunan idarəetmə son nöqtələrini əhatə edir; maşın tərəfindən oxuna bilən docs/openapi.yaml faylı və src/app/api/ altındakı marşrut ağacı tam mənbələrdir.
Mündəricat
- Çat tamamlamaları
- Eksklüziv idarə olunan sessiya icarələri
- Embeddinqlər
- Şəkil generasiyası
- Sənədlərin OCR emalı
- Modellərin siyahısı
- Provayder plaqini manifesti
- Uyğunluq endpoint-ləri
- Fayllar API-si
- Paketlər API-si
- Axtarış API-si
- WebSocket axını
- Kvotalar və problemlərin bildirilməsi
- Semantik keş
- İdarə paneli və idarəetmə
- Kombinasiyaların idarə edilməsi
- Vebhuklar
- Qeydiyyatdan keçmiş açarlar (avtomatik idarəetmə)
- Agentlər protokolu
- İdarəetmə proksiləri
- Dayanıqlılıq (genişləndirilmiş)
- Bacarıqlar
- Yaddaş
- MCP serveri
- A2A serveri
- Bulud, qiymətləndirmələr və dəyərləndirmə
- Sorğuların emalı
- Autentifikasiya
Çat tamamlamaları
POST /v1/chat/completions
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "cc/claude-opus-4-6",
"messages": [
{"role": "user", "content": "Funksiya yaz..."}
],
"stream": true
}
Fərdi başlıqlar
| Başlıq | İstiqamət | Təsvir |
|---|---|---|
X-OmniRoute-No-Cache |
Sorğu | Keşi keçmək üçün true olaraq təyin edin |
x-omniroute-no-memory |
Sorğu | Bu sorğu üçün yaddaş və bacarıqların daxil edilməsini ötürmək məqsədilə true olaraq təyin edin (keşdən istifadənin dayandırılmasına bənzəyir; hər çağırış üzrə token/xərc yükünün qarşısını alır) |
X-OmniRoute-Progress |
Sorğu | Gedişat hadisələri üçün true olaraq təyin edin |
X-Session-Id |
Sorğu | Xarici sessiya yaxınlığı üçün sabit sessiya açarı |
x_session_id |
Sorğu | Alt xətli variant da qəbul edilir (birbaşa HTTP) |
X-OmniRoute-Session-Id |
Sorğu | Çağıran tərəfin təqdim etdiyi sessiya/söhbət teqi (həmçinin yaddaşa ötürülür). Mövcud olduqda, hər sessiya üzrə xərclərin aid edilməsi üçün olduğu kimi call_logs.session_tag sahəsində saxlanılır (#8249) — olmadıqda heç vaxt yaradılmır |
Idempotency-Key |
Sorğu | Dublikatların aradan qaldırılması açarı (5s pəncərə) |
X-Request-Id |
Sorğu | Alternativ dublikatların aradan qaldırılması açarı |
X-OmniRoute-Cache |
Cavab | HIT və ya MISS (axınsız rejimdə) |
X-OmniRoute-Idempotent |
Cavab | Dublikat aradan qaldırılıbsa true |
X-OmniRoute-Progress |
Cavab | Gedişatın izlənməsi aktivdirsə enabled |
X-OmniRoute-Session-Id |
Cavab | OmniRoute tərəfindən istifadə edilən faktiki sessiya ID-si |
X-OmniRoute-Request-Id |
Cavab | Sorğunun korrelyasiya ID-si (məlum olduqda) |
X-OmniRoute-Version |
Cavab | OmniRoute yığım versiyası (həmişə mövcuddur) |
X-OmniRoute-Cost-Saved |
Cavab | HIT zamanı keşin qənaət etdirdiyi USD məbləği (yalnız keş uyğunluqları) |
X-OmniRoute-Decision |
Cavab | Marşrutlaşdırma izi: strategy=<name>; provider=<alias>; latency_ms=<n> (<name> kombinasiya strategiyasıdır və ya kombinasiya olmayan sorğu üçün single olur) — tamamlanma cavablarında həmişə mövcuddur |
Nginx qeydi: alt xətli başlıqlardan (məsələn,
x_session_id) istifadə edirsinizsə,underscores_in_headers on;parametrini aktivləşdirin.
Xərc telemetriyası başlıqları: axınsız uğurlu cavablar həmçinin
X-OmniRoute-*xərc telemetriyası dəstini ehtiva edir —X-OmniRoute-Response-Cost(USD, vergüldən sonra sabit 10 rəqəm; pulsuz/qiymətləndirilməmiş sorğular üçün0.0000000000),X-OmniRoute-Tokens-In/X-OmniRoute-Tokens-Out,X-OmniRoute-Model,X-OmniRoute-Provider,X-OmniRoute-Latency-Ms,X-OmniRoute-Cache-HitvəX-OmniRoute-Fallback-Attempts(yalnız > 0 olduqda), həmçininX-OmniRoute-Request-IdvəX-OmniRoute-Version. Bunlar çat tamamlamaları,/v1/responses,/v1/messages, həmçinin media son nöqtələri —/v1/embeddings,/v1/images/generations,/v1/audio/speech,/v1/audio/transcriptions,/v1/rerank,/v1/videos/generations,/v1/music/generationsvə/v1/moderations(xərc həmişə0olur) tərəfindən qaytarılır. Qiymətlər mövcud olduqda media xərci modallıq üzrə (hər şəkil, hər saniyə, hər simvol, hər axtarış vahidi üçün) hesablanır, əks halda0olur (xəta zamanı sorğuya icazə verilir).
Keş uyğunluğu üçün xərc semantikası: semantik keşdə uyğunluq olduqda (
X-OmniRoute-Cache-Hit: true) yuxarı səviyyəli xidmətə heç bir çağırış edilmir, buna görə dəX-OmniRoute-Response-Costdəyəri0.0000000000olur (keş uyğunluğuna xidmət göstərməyin əlavə xərci). İlkin/əks halda yaranacaq xərc ayrıcaX-OmniRoute-Cost-Savedbaşlığında bildirilir. Hesablaşma sistemləriX-OmniRoute-Response-Costdəyərlərini toplamalıdır (keş uyğunluqlarının xərci yoxdur); keş analitikası isəX-OmniRoute-Cost-Saveddəyərlərini aqreqasiya edə bilər.
Eksklüziv idarə olunan sessiya icarələri
Eksklüziv idarə olunan sessiya icarəsi seçim əsasında aktivləşdirilən, klientdən asılı olmayan marşrutlaşdırma müqaviləsidir: bir aktiv sahib bir uyğun OmniRoute bağlantısını saxlayır. Bu, modeli icarəyə vermir, OAuth tələb etmir, konkret klienti müəyyənləşdirmir və ya konkret provayder tələb etmir.
Autentifikasiya edən API açarı lease:exclusive əhatə dairəsinə və açıq şəkildə göstərilmiş, boş olmayan
allowedConnections siyahısına malik olmalıdır. Verilənlər bazasının mutasiya sərhədi açar
yaradılarkən və qismən yenilənərkən hər iki sahənin birlikdə olmasını təmin edir.
POST /api/v1/session-leases
Authorization: Bearer <managed-api-key>
Content-Type: application/json
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
{"action":"acquire","model":"glm/glm-4.6"}
Uğurlu əldəetmə, yeniləmə və buraxma cavabları vaxt möhürlərini, state sahəsini və dəqiq müsbət
generation dəyərini göstərir, lakin seçilmiş bağlantını və ya giriş məlumatlarını heç vaxt göstərmir. Yeniləmə və buraxma zamanı
nəsil JSON gövdəsində təqdim olunur:
{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }
Aktiv icarə sahibi cari bağlantısı üçün məxfiliyi qoruyan ekran metadatasını açıq şəkildə tələb edə bilər:
{ "action": "status", "generation": 1 }
{
"state": "ACTIVE",
"generation": 1,
"acquiredAt": "2026-08-28T12:00:00.000Z",
"renewedAt": "2026-08-28T12:00:30.000Z",
"expiresAt": "2026-08-28T12:02:30.000Z",
"connection": {
"displayName": "Primary Codex",
"provider": "codex"
}
}
Seçim əsasında aktivləşdirilən bu status əməliyyatı bir verilənlər bazası tranzaksiyasında qeyri-şəffaf sahib, autentifikasiya edilmiş idarə olunan API açarı və dəqiq
aktiv nəsil ilə məhdudlaşdırılır. displayName yalnız boşluqları kəsilmiş, konfiqurasiya olunmuş
bağlantı adıdır; təhlükəsiz konfiqurasiya olunmuş ad mövcud olmadıqda bu, null olur. OmniRoute e-poçt ünvanını və ya yaradılmış
hesab identifikatorunu heç vaxt onunla əvəz etmir. Provayder dəyəri həssas olmayan ekran etiketidir və heç vaxt
yaradılmış uyğun provayder identifikatoru deyil. Giriş məlumatları, tokenlər, kukilər, xam bağlantı və ya API
açarı identifikatorları, sahib heşləri, məhdudlaşdırma sirləri və daxili marşrutlaşdırma məlumatları istisna edilir.
Yanlış açar, yanlış sahib, köhnəlmiş nəsil, çatışmayan, vaxtı bitmiş, buraxılmış və etibarsızlaşdırılmış axtarışların hamısı
bağlantı metadatası olmadan eyni 409 LEASE_FENCE_STALE xətasını qaytarır. Tutum gözləmə cavabı almış klientin yoxlamaq üçün aktiv bağlantısı yoxdur. Marşrutlaşdırma aktiv icarəni dəyişdirdikdə,
eyni nəsil etibarlı qalır və status atomar şəkildə köhnə bağlantını deyil, yeni bağlantını qaytarır.
Mövcud klientlər dəyişməz qalır, çünki əldəetmə, yeniləmə, buraxma və gözləmə cavabları
əvvəlki strukturlarını qoruyur.
Bu server müqaviləsi standart OpenAI Codex /status davranışını dəyişmir. Standart Codex hazırda öz
model provayderini və daxili autentifikasiya/hesab vəziyyətini bildirir, lakin ixtiyari fərdi
provayder hesabı metadatasını göstərmir; gələcək klient inteqrasiyası bu əməliyyatı çağırmalı və
connection.displayName dəyərinin necə göstəriləcəyinə qərar verməlidir.
Bundan sonra hər idarə olunan inferensiya sorğusu hər iki idarəetmə başlığını təqdim edir:
X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1
Dəqiq sahib, nəsil, aktiv bağlantı və autentifikasiya edilmiş API açarı hər dəstəklənən yuxarı axın cəhdindən dərhal əvvəl məhdudlaşdırılır. Sahib və nəsli başqa açarla təkrar istifadə etmək, hətta həmin açar eyni bağlantıya icazə verdikdə belə uğursuz olur. Xam sahib dəyərləri saxlanılmır, jurnala yazılmır, sorğu ani görüntüsündə qorunmur və ya yuxarı axına ötürülmür.
Müvəqqəti rəqabət HTTP 429 cavabını Retry-After ilə birlikdə qaytarır:
{
"state": "WAITING_FOR_CAPACITY",
"error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
"reason": "NO_FREE_ELIGIBLE_CONNECTION",
"retryAfter": 30
}
Bu cavab yalnız adi uyğun dəstin boş olmadığını və hər bir boş namizədin başqa sahibə aid aktiv icarə tərəfindən tutulduğunu bildirir. Dəstəklənməyən modellər/provayderlər, siyasət uyğunsuzluğu, gözləmə müddəti, kvota, sağlamlıq və digər adi uyğunluq xətaları mövcud OmniRoute cavablarını qoruyur.
x-omniroute-compression
Sıxılma planının hər sorğu üzrə əvəzlənməsi. Ən yüksək üstünlük — marşrutlaşdırma kombinasiyası üzrə əvəzləməni, aktiv profili, avtomatik işə düşməni və paneldəki Defolt dəyəri üstələyir. Dəyərlər:
| Dəyər | Təsir |
|---|---|
off |
Bu sorğu üçün sıxılma yoxdur. |
default |
Paneldən əldə edilən Defolt profil (aktiv profili nəzərə almır). |
engine:<id> |
Aktiv olduqda tək mühərrik, məsələn, engine:rtk. |
<combo> |
Əvvəlcə ada görə (registrdən asılı olmayaraq), sonra isə identifikatora görə uyğunlaşdırılan adlandırılmış kombinasiya. |
Qeydlər:
- Naməlum dəyərlər nəzərə alınmır (sorğu heç vaxt rədd edilmir); həll prosesi adi operator üstünlüyünə keçir.
- Bir neçə kombinasiya eyni ada malikdirsə, deterministik uyğunluq üçün kombinasiyanın id dəyərini ötürün.
- Adı
offvə yadefaultolan kombinasiya adla seçilə bilməz (bu açar sözlər əvvəlcə şərh edilir); belə kombinasiyaya identifikatoru ilə istinad edin. - Əsas sıxılma keçidi sərt maneədir: sıxılma qlobal olaraq deaktiv edildikdə, bu başlıq onu aktivləşdirə bilməz.
Tətbiq edilmiş plan cavab başlığında əks etdirilir:
X-OmniRoute-Compression: <mode>; source=<source>
burada <source> request-header, routing-override, active-profile, auto-trigger, default və ya off dəyərlərindən biridir.
Embeddinqlər
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "Yemək ləzzətli idi"
}
Mövcud provayderlər: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AI.
Kataloq identifikatorları provider/model formatındadır (nümunə: jina-ai/jina-embeddings-v5-omni-small). Reyestrdə mövcud olan prefikssiz Jina model identifikatorları (məsələn, jina-embeddings-v5-text-small, jina-reranker-v3.5) da tanınır. Jina embed/rerank/classify/segment əvvəlcə idarəetmə panelindəki jina-ai giriş məlumatlarından istifadə edir; JINA_AI_API_KEY yalnız idarəetmə panelində açar olmadıqda ehtiyat variant kimi istifadə olunur. jina-reader kartı yalnız Reader / r.jina.ai üçündür (POST /v1/web/fetch) və heç vaxt embeddinq və ya yenidən sıralama xidmətləri göstərmir.
Multimodal dəstəyi elan edən reyestr modelləri həmçinin provayderdən asılı olmayan, strukturlaşdırılmış 32-yə qədər
element qəbul edir. Media elementi növləri text, image, audio, video və document-dir. Onların media source
dəyəri ya {"type":"url","url":"https://..."}, ya da
{"type":"base64","data":"...","media_type":"..."} formatındadır.
Jina v5 Omni (jina-ai/jina-embeddings-v5-omni-small, jina-ai/jina-embeddings-v5-omni-nano
və ailə aliası jina-ai/jina-embeddings-v5-omni → omni-small) həmçinin Jina-nın yerli
EmbeddingsV5Request sənədlərini qəbul edir və onları https://api.jina.ai/v1/embeddings ünvanına dəyişdirilmədən ötürür:
{
"model": "jina-ai/jina-embeddings-v5-omni-small",
"task": "retrieval.query",
"normalized": true,
"input": [
{ "text": "qırmızı velosiped" },
{ "image": "https://example.com/bike.png" },
{
"content": [{ "text": "başlıq" }, { "image": "data:image/png;base64,..." }]
}
]
}
Yerli { image | audio | video | pdf } dəyərləri açıq HTTPS URL-si, data: URI-si və ya xam
base64 ola bilər. OmniRoute həmin obyektləri sətrə çevirmir və ya yerli şəkil URL-lərini özü əldə etmir — Jina açıq
medianı özü əldə edir. Əlavə Jina sahələri (task, normalized, truncate, embedding_type)
ötürülür. Yalnız mətn üçün nəzərdə tutulmuş Jina SKU-ları mətn olmayan sənədləri yenə də rədd edir.
Təhlükəsizlik və ötürmə məhdudiyyətləri:
- Uzaq media URL-ləri açıq HTTPS olmalıdır. Kanonik
{type,source:url}elementləri server tərəfində əldə edilir (yönləndirmələrin təkrar yoxlanması, vaxt limiti, ölçü limitləri, açıq DNS, bağlantının sabitlənməsi) və provayder çağırışından əvvəl daxilə yerləşdirilir. Jina-nın yerli{image:"https://..."}elementləri eyni açıq HTTPS yoxlamasından sonra olduğu kimi ötürülür; URL-ni Jina əldə edir. - Daxilə yerləşdirilmiş base64 media hər element üçün dekodlaşdırılmış şəkildə 8 MiB, bütün sorğu üzrə isə dekodlaşdırılmış şəkildə 16 MiB ilə məhdudlaşır.
Provayder üçün çevirmə (kanonik elementlər heç vaxt dəyişdirilmədən ötürülmür):
- Jina multimodal modelləri: hər yuxarı səviyyəli element daxilə yerləşdirilmiş media üçün data URI-lərindən istifadə etməklə
bir modallıq açarlı obyektə (
text/image/audio/video/pdf) çevrilir; hər yuxarı səviyyəli element üçün bir vektor. - Gemini Embedding 2 ailəsi: bir yuxarı səviyyəli massiv
content.parts(textvə yainline_data) ilə vahid yerlimodels/{model}:embedContentsorğusuna çevrilir. - Açıq modallıq metadatası olmayan naməlum/dinamik modellər strukturlaşdırılmış girişi HTTP 400 xətası ilə rədd edir.
{
"model": "jina-ai/jina-embeddings-v5-omni-small",
"input": [
{ "type": "text", "text": "Qırmızı velosiped" },
{
"type": "image",
"source": { "type": "url", "url": "https://example.com/bicycle.png" }
}
],
"dimensions": 512,
"encoding_format": "float"
}
Dəstəklənməyən model/modallıq kombinasiyaları elementi məcburi çevirmək əvəzinə HTTP 400 qaytarır. Köhnə sətir/token sorğularındakı girişlə əlaqəli olmayan genişləndirmə sahələri dəyişdirilmədən ötürülməyə davam edir.
# Bütün embeddinq modellərini siyahıla
GET /v1/embeddings
Şəkil yaratma
POST /v1/images/generations
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "openai/gpt-image-2",
"prompt": "A beautiful sunset over mountains",
"size": "1024x1024"
}
Mövcud provayderlər: OpenAI (GPT Image 2), xAI (Grok Image), Together AI (FLUX), Fireworks AI, Nebius (FLUX), Hyperbolic, NanoBanana, OpenRouter, SD WebUI (lokal), ComfyUI (lokal).
# Bütün şəkil modellərini siyahıya alın
GET /v1/images/generations
Sənəd OCR-i
POST /v1/ocr
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "mistral/mistral-ocr-latest",
"document": {
"type": "document_url",
"document_url": "https://example.com/invoice.pdf"
}
}
model, provider/model prefiksi vasitəsilə OCR provayderini seçir; yalnız model identifikatoru (məs.
mistral-ocr-latest) göstərildikdə, o, qeydiyyatdan keçmiş provayderinə uyğunlaşdırılır, model buraxıldıqda isə standart olaraq
Mistral (mistral-ocr-latest) istifadə olunur. Qeydiyyatdan keçmiş provayderlər (open-sse/config/ocrRegistry.ts):
| Provayder identifikatoru | Model identifikatoru | model dəyəri |
Qeydlər |
|---|---|---|---|
mistral |
mistral-ocr-latest |
mistral/mistral-ocr-latest (və ya yalnız mistral-ocr-latest) |
Sinxron — cavab yuxarı səviyyəli xidmətə edilən tək sorğudan birbaşa qaytarılır. |
azure-document-intelligence |
prebuilt-read |
azure-document-intelligence/prebuilt-read |
Asinxron yuxarı səviyyəli xidmət (analyze + sorğulama) — aşağıya baxın. |
vertex-deepseek-ocr |
deepseek-ocr-maas |
vertex-deepseek-ocr/deepseek-ocr-maas |
Sinxron, Vertex AI-ın openapi/chat/completions tərəfdaş son nöqtəsi vasitəsilə — autentifikasiya/URL üçün aşağıya baxın. |
Hər üç provayder eyni Mistral formatlı cavab gövdəsini qaytarır:
{
"pages": [{ "index": 0, "markdown": "# Extracted text..." }],
"model": "mistral-ocr-latest",
"usage_info": { "pages_processed": 1 }
}
Azure Document Intelligence sorğulama axını
Azure Document Intelligence xidmətinin analyze API-si asinxrondur: ilkin sorğu gövdə əvəzinə
Operation-Location başlığı qaytarır və nəticə sorğulanmalıdır. Emaledici
(open-sse/handlers/ocr.ts) həmin URL-i 30 cəhdədək hər saniyə sorğulayır, ok olmayan sorğulama cavabı və ya "failed" statusu zamanı dərhal uğursuz olur (sorğulamanı davam etdirmir) və
cəhd limiti bitdikdən sonra əməliyyat hələ də icra olunursa, 504 qaytarır. Yekun Azure cavabı
çağırana qaytarılmazdan əvvəl Mistral tərəfindən istifadə edilən eyni pages/markdown formatına
normallaşdırılır, buna görə də müştəri kodunun provayder üçün xüsusi hal tətbiq etməsinə ehtiyac yoxdur.
Vertex AI DeepSeek OCR autentifikasiyası və son nöqtənin müəyyənləşdirilməsi
vertex-deepseek-ocr, OmniRoute-un söhbət/şəkil trafiki üçün artıq dəstəklədiyi eyni Vertex AI autentifikasiyasından
(open-sse/executors/vertex.ts) təkrar istifadə edir: bağlantının API açarı ya Service Account JSON etimadnaməsidir (JWT-bearer
axını vasitəsilə qısamüddətli OAuth giriş tokeni ilə dəyişdirilir), ya da olduğu kimi istifadə edilən, əvvəlcədən yaradılmış OAuth giriş tokenidir. Yuxarı səviyyəli xidmətin son nöqtə URL-i Vertex-in
ümumi openapi/chat/completions tərəfdaş son nöqtəsidir və bağlantının layihəsi ilə
regionu əsasında qurulur — açıq şəkildə göstərilmiş providerSpecificData.project/providerSpecificData.region həmişə üstünlük təşkil edir;
əks halda layihə Service Account JSON-dakı project_id əsasında müəyyənləşdirilir və region üçün
standart olaraq us-central1 istifadə olunur. Hər iki müəyyənləşdirmə open-sse/handlers/ocr.ts daxilində
(resolveVertexOcrAccessToken, resolveVertexOcrBaseUrl) baş verir və handleOcr funksiyasına yönləndirilməzdən əvvəl
src/app/api/v1/ocr/route.ts tərəfindən istifadə olunur.
Modelləri sadalayın
GET /v1/models
Authorization: Bearer your-api-key
→ Bütün çat, embedding və şəkil modellərini + kombinasiyaları OpenAI formatında qaytarır
Model id prefiksləri (?prefix=)
Əksər modellər provayder prefiksi altında təqdim olunur. Hansı prefiksin əldə ediləcəyi
MODELS_CATALOG_PREFIX_MODE funksiya bayrağı ilə idarə olunur və sorğu parametri vasitəsilə
hər sorğu üçün ayrıca dəyişdirilə bilər — bu, server miqyasındakı parametri digər istifadəçilər
üçün dəyişmədən təmiz siyahı əldə etmək istəyən klient üçün faydalıdır:
GET /v1/models?prefix=alias # hər model üçün bir id — qısa alias prefiksi
GET /v1/models?prefix=dual # hər iki forma (serverin standart dəyəri)
GET /v1/models?prefix=canonical # yalnız tam provayder id-si prefiksi
| Rejim | Təqdim edir | Qeydlər |
|---|---|---|
dual |
cc/claude-sonnet-4-6 və claude/claude-sonnet-4-6 |
Standart. Hər iki id eyni modelə yönləndirilir; formalardan hər hansı birini sərt şəkildə kodlaşdırmış klient konfiqurasiyalarının işləməyə davam etməsi üçün saxlanılıb. Kataloqu təxminən ikiqat böyüdür. |
alias |
cc/claude-sonnet-4-6 |
Hər model üçün bir qeyd. Fərqli alias-ı olmayan provayderlər yenə də öz qeydlərini təqdim edir, buna görə heç nə itirilmir. |
canonical |
claude/claude-sonnet-4-6 |
Tam provayder id-si prefiksi altında hər model üçün bir qeyd. Fərqli alias-ı olmayan provayderlər (məsələn, antigravity/…, agy/…) burada da öz yeganə id-sini təqdim edir, buna görə heç nə itirilmir. |
dual rejimli güzgü sorğu parametri olmadan da müəyyən edilə bilər: o, əsas id-yə işarə edən
parent sahəsini ehtiva edir.
Model seçicisini göstərən klientlər ?prefix=alias sorğulamalıdır — OmniCopilot VS Code genişləndirməsi də məhz bunu edir.
Düşünməsiz model variantları
Düşünmə qabiliyyətli Claude modelləri üçün /v1/models, id-si claude-3-omniroute-no-thinking/ prefiksi ilə başlayan düşünməsiz variantı da təqdim edir:
claude-3-omniroute-no-thinking/<provider>/<model>
Bu id-nin seçilməsi (məsələn, həmişə thinking bloku əlavə edən Claude Code konfiqurasiyasında) düşünmə prosesi söndürülməklə yenidən həqiqi <provider>/<model> modelinə yönləndirilir — /v1/messages yolunda thinking:{type:"disabled"} tətbiq edilir və ya /v1/chat/completions yolunda reasoning/reasoning_effort sahələri silinir. Variant yalnız düşünməni dəstəkləyən və disabled dəyərini qəbul edən Claude ailəsi modelləri üçün siyahıya daxil edilir (beləliklə, məsələn, disabled dəyərini rədd edən yalnız adaptiv modellər istisna olunur). Operatorlar ModelSpec.noThinkingAlias vasitəsilə hər model üçün variantı məcburi şəkildə aktivləşdirə və ya deaktivləşdirə bilərlər.
Provayder Plagin Manifesti
GET /api/v1/provider-plugin-manifest
Bifrost, CLIProxyAPI və gələcək sidecar routerlər tərəfindən istifadə olunan, JSON üçün təhlükəsiz provayder plagin manifestini qaytarır. Cavab TypeScript provayder reyestrindən yaradılır və OAuth müştəri sirlərini, icra mühiti həllini, icraedici funksiyaları, sorğu başlıqlarını və hesab məlumatlarını bilərəkdən istisna edir.
Sidecar prosesdən kənarda işlədikdə və open-sse/config/providerPluginManifestRegistry.ts faylını birbaşa idxal edə bilmədikdə bu son nöqtədən istifadə edin.
Uyğunluq Son Nöqtələri
| Metod | Yol | Format |
|---|---|---|
| POST | /v1/chat/completions |
OpenAI |
| POST | /v1/messages |
Anthropic |
| POST | /v1/responses |
OpenAI Responses |
| POST | /v1/embeddings |
OpenAI |
| POST | /v1/images/generations |
OpenAI Images |
| POST | /v1/images/edits |
OpenAI Images (redaktə/doldurma) |
| POST | /v1/videos/generations |
OpenAI üslubunda video generasiyası |
| POST | /v1/music/generations |
OpenAI üslubunda musiqi generasiyası |
| POST | /v1/audio/transcriptions |
OpenAI Audio (nitqdən mətnə) |
| POST | /v1/audio/speech |
OpenAI TTS (audio gövdəsi qaytarır) |
| POST | /v1/rerank |
Cohere/Voyage üslubunda yenidən sıralama |
| POST | /v1/classify |
Jina təsnifatı (api.jina.ai) |
| POST | /v1/segment |
Jina seqmentatoru (segment.jina.ai) |
| POST | /v1/moderations |
OpenAI Moderations |
| GET | /v1/models |
OpenAI |
| POST | /v1/messages/count_tokens |
Anthropic |
| GET | /v1beta/models |
Gemini |
| POST | /v1beta/models/{...path} |
Gemini generateContent |
| POST | /v1/api/chat |
Ollama |
| GET | /api/v1/vscode/{token}/ |
OpenAI kataloq aliası |
| GET | /api/v1/vscode/{token}/models |
OpenAI modellər aliası |
| POST | /api/v1/vscode/{token}/chat/completions |
OpenAI tokenləşdirilmiş aliası |
| POST | /api/v1/vscode/{token}/responses |
OpenAI Responses tokenləşdirilmiş aliası |
| POST | /api/v1/vscode/{token}/api/chat |
Ollama tokenləşdirilmiş aliası |
| GET | /api/v1/vscode/{token}/api/tags |
Ollama teqləri üçün tokenləşdirilmiş alias |
Bütün POST marşrutları eyni struktura uyğundur: Bearer your-api-key + Zod tərəfindən doğrulanan JSON gövdəsi (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema və s.; src/shared/validation/schemas.ts faylına baxın). Sxem doğrulaması uğursuz olduqda 4xx qaytarılır.
Authorization: Bearer ... əlavə edə bilməyən müştərilər üçün OmniRoute API açarlarını URL daxilində də qəbul edir: ya sorğu sətri uyğunluğu (?token=..., ?apiKey=..., ?api_key=..., ?key=...), ya da aşağıda sənədləşdirilmiş xüsusi /api/v1/vscode/{token}/... son nöqtələri vasitəsilə.
# Yenidən sıralama
POST /v1/rerank { "model": "jina-ai/jina-reranker-v3.5", "query": "...", "documents": ["..."] }
# Jina təsnifatı (Foundation API etimadnamələri)
POST /v1/classify { "model": "jina-embeddings-v5-text-small", "input": ["..."], "labels": ["a", "b"] }
# Jina seqmentatoru
POST /v1/segment { "content": "...", "return_chunks": true }
# Jina axtarışı (s.jina.ai; provayder aliasları: jina-search, jina-ai, jina)
POST /v1/search { "query": "...", "provider": "jina-search" }
# Moderasiya
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }
# TTS — audio/mpeg (və ya tələb olunan formatda) gövdəsi qaytarır
POST /v1/audio/speech { "model": "openai/tts-1", "input": "Hello", "voice": "alloy" }
# Şəkil redaktəsi (multipart)
POST /v1/images/edits -F image=@input.png -F prompt="..." -F mask=@mask.png
# Video / musiqi generasiyası (provayder prefiksli model ID-si)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations { "model": "suno/v3.5", "prompt": "..." }
Xüsusi Provayder Marşrutları
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
Provayder prefiksi olmadıqda avtomatik əlavə edilir. Uyğun gəlməyən modellər 400 qaytarır.
Files API
Paket giriş/çıxışı və fayl məqsədli yükləmələr üçün OpenAI ilə uyğun fayllar son nöqtəsi.
| Metod | Yol | Təsvir |
|---|---|---|
| POST | /v1/files |
Fayl yükləyin (multipart: file, purpose, expires_after[anchor], expires_after[seconds]) — maksimum 512 MiB |
| GET | /v1/files |
Doğrulanmış API açarı üçün faylları siyahıya alın |
| GET | /v1/files/[id] |
Faylın metadatasını əldə edin |
| DELETE | /v1/files/[id] |
Faylı silin |
| GET | /v1/files/[id]/content |
Faylın işlənməmiş məzmununu axınla geri qaytarın |
Autentifikasiya: Bearer API açarı — faylların əhatə dairəsi getApiKeyRequestScope vasitəsilə hər API açarı üzrə müəyyən edilir. Açar
yalnız öz fayllarını görür, endirir və silir; açarsız idarə paneli sessiyası bütün
instansiyanı oxuyur; sahibi olmayan fayla (anonim və ya idarə paneli sessiyası ilə yüklənmiş) sessiyasız
heç bir çağırıcıya giriş verilmir. GET /v1/files, hətta REQUIRE_API_KEY=false olduqda belə, bütün
icarəçilərin fayllarını siyahıya almaq əvəzinə anonim çağırışı və təqdim edilmiş, lakin
uyğunluğu müəyyən edilməyən açarı 401 ilə rədd edir (GHSA-m3hp-hq9g-fpmv, GHSA-2jm2-mpx8-6523).
Batches API
OpenAI ilə uyğun paket emalı.
| Metod | Yol | Təsvir |
|---|---|---|
| POST | /v1/batches |
Paket yaradın — gövdə v1BatchCreateSchema tərəfindən yoxlanılır (input_file_id, endpoint, completion_window) |
| GET | /v1/batches |
Paketləri siyahıya alın |
| GET | /v1/batches/[id] |
Paket statusunu və request_counts məlumatını əldə edin |
| DELETE | /v1/batches/[id] |
Tamamlanmış/uğursuz paketi silin |
| POST | /v1/batches/[id]/cancel |
Davam edən paketi ləğv edin |
Autentifikasiya: Bearer API açarı. Paketlərin əhatə dairəsi fayllarla eyni üçtərəfli
qayda əsasında hər API açarı üzrə müəyyən edilir: yalnız öz açarı, instansiya miqyasında idarə paneli sessiyası,
sahibi null olan qeydlərə isə sessiyasız heç bir çağırıcıya giriş verilmir (əldə etmə, silmə, ləğv etmə və
yaradılma zamanı input_file_id yoxlaması). GET /v1/batches, hətta REQUIRE_API_KEY=false
olduqda belə, anonim çağırışı 401 ilə rədd edir.
Axtarış API-si
Veb/axtarış provayderləri üçün abstraksiya (Tavily, Brave, Exa, Serper və s.).
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /v1/search |
Konfiqurasiya edilmiş axtarış provayderlərini və imkanlarını siyahıya alır |
| POST | /v1/search |
Axtarış sorğusunu işə salır — gövdə v1SearchSchema ilə yoxlanılır, keşləmə/birləşdirməni dəstəkləyir |
| GET | /v1/search/analytics |
Hər provayder üzrə uyğun nəticə/gecikmə/keş statistikası |
Autentifikasiya: Bearer API açarı (extractApiKey + isValidApiKey). Axtarış siyasəti enforceApiKeyPolicy vasitəsilə tətbiq edilir.
Veb Məzmununu Əldəetmə API-si
Konfiqurasiya edilmiş veb məzmununu əldəetmə provayderi (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract) vasitəsilə URL-dən məzmun çıxarın.
| Metod | Yol | Təsvir |
|---|---|---|
| POST | /v1/web/fetch |
URL-i əldə edir/sıyır — gövdə v1WebFetchSchema ilə yoxlanılır |
Autentifikasiya: Bearer API açarı (extractApiKey + isValidApiKey). Siyasət enforceApiKeyPolicy vasitəsilə tətbiq edilir.
Kvotanı nəzərə alan ehtiyat mexanizm (#8297): açıq şəkildə provider göstərilmədikdə, hovuz
(firecrawl → jina-reader → tavily-search → tinyfish → nimble-search)
sabit prioritet sırası ilə (birincini doldurma prinsipi ilə) yoxlanılır — sürət limiti tətbiq edilmiş, lakin konfiqurasiya olunmuş provayder
sorğunu dərhal dayandırmaq əvəzinə ötürülür və yenidən cəhd edilə bilən/kvota ilə bağlı yuxarı axın xətası
(HTTP 429 həmişə; Firecrawl/Tavily/TinyFish-in kvota tipli pulsuz səviyyələri üçün 402/403 —
Jina Reader üçün deyil və sadə 400 səhv sorğu üçün heç vaxt deyil) sorğu zamanı
növbəti, hələ sınanmamış və etimadnaməsi olan provayderə keçidlə nəticələnir. Hovuzdakı bütün provayderlər
tükəndikdə, son nöqtə əvvəlki ümumi 400 əvəzinə tək bir 429 (Retry-After
başlığı ilə) qaytarır. Açıq şəkildə provider tələb edildikdə, səssiz ehtiyat keçid yoxdur — sürət limiti tətbiq edilmiş və ya nasaz açıq provayder
öz xətasını göstərir (sürət limiti tətbiq edilibsə 429, əks halda yuxarı axın statusu).
WebSocket Axını
GET /v1/ws?handshake=1
WebSocket yüksəltmə əlaqəsi qurma sorğusunu yoxlayır və naqil protokolunun nümunə mesajlarını (request, cancel) qaytarır. Faktiki WS freymləri Next.js marşrut cədvəlindən kənarda paketlənmiş WS serveri tərəfindən emal olunur.
Autentifikasiya: Əlaqə qurma zamanı Bearer API açarı.
WebSocket üzərindən Responses API-si (yalnız codex)
# HTTP API-si ilə eyni host:port (standart olaraq 20128); bağlantını yüksəldin:
wscat -c "ws://localhost:20128/v1/responses?api_key=<OMNIROUTE_API_KEY>"
# (və ya: -H "Authorization: Bearer <OMNIROUTE_API_KEY>")
# İlk freym MÜTLƏQ response.create olmalıdır:
{ "type": "response.create", "model": "gpt-5.5", "input": [ { "role": "user", "content": "hi" } ] }
WebSocket üzərindən Responses API proksisi yalnız codex ilə əlaqələndirilib (ChatGPT
backend-i). O, API/idarəetmə paneli ilə eyni portda /v1/responses,
/responses və /api/v1/responses yollarını dinləyir. İlk response.create freymində
daxili codex-responses-ws körpüsü vasitəsilə autentifikasiya edir və hazırlıq görür, bir
codex OAuth bağlantısı seçir və wreq-js nəqliyyatı vasitəsilə
wss://chatgpt.com/backend-api/codex/responses ünvanına tunel yaradır.
Codex olmayan modellər rədd edilir (codex_ws_provider_required).
Kvota paylaşımı ilə marşrutlaşdırma üçün model: "qtSd/<group>/codex/<model>" istifadə edin. Bu funksiya
app/server-ws.mjs + scripts/dev/responses-ws-proxy.mjs + src/app/api/internal/codex-responses-ws/route.ts daxilində reallaşdırılıb.
Autentifikasiya: Əlaqə qurma zamanı Bearer API açarı. Paketlənmiş HTTP serveri (server-ws.mjs)
aktiv giriş nöqtəsi olmalıdır (app/server-ws.mjs mövcud olduqda standart olaraq belədir).
Model identifikatoru: sadə ChatGPT identifikatorundan istifadə edin (codex/ prefiksi olmadan)
OpenAI Codex CLI, supports_websockets = true olduqda model adını müştəri tərəfində yoxlayır və
codex/gpt-5.5 kimi provayder prefiksli identifikatorları rədd edir
(The 'codex/gpt-5.5' model is not supported when using Codex with a ChatGPT account). Sadə identifikatoru göndərin (məsələn, gpt-5.5). OmniRoute körpüsü
yalnız codex üçündür, buna görə də yuxarı axına tunel yaratmazdan əvvəl sadə identifikatoru
codex modeli kimi yenidən müəyyənləşdirir (resolveCodexWsModelInfo) — baxmayaraq ki, sadə
gpt-5.5 HTTP üzərindən əks halda başqa provayderə marşrutlaşdırılardı.
OpenAI Codex CLI-nin konfiqurasiyası
WebSocket dəstəyi olan fərdi provayderi ~/.codex/config.toml faylına əlavə etməklə
Codex CLI-ni OmniRoute-a yönləndirin (mövcud konfiqurasiyaya toxunmamaq üçün ayrıca CODEX_HOME
istifadə edin):
model = "gpt-5.5" # sadə identifikator — "codex/gpt-5.5" DEYİL
model_provider = "omniroute"
[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1" # sonunda əyri xətt yoxdur; WS URL-i törədilir (istehsal mühitində https/wss istifadə edin)
wire_api = "responses" # 2026-cı ilin fevralından bəri dəstəklənən yeganə dəyər
supports_websockets = true # Responses-over-WS nəqliyyatını aktivləşdirir
env_key = "OMNIROUTE_API_KEY" # OmniRoute API açarını saxlayır (Bearer)
export OMNIROUTE_API_KEY=sk-... # OmniRoute API açarı (REQUIRE_API_KEY=false olarsa istənilən açar)
codex exec "Responda apenas: PONG"
CLI base_url + /responses ünvanını WebSocket-ə yüksəldir və OmniRoute onu
seçilmiş codex OAuth bağlantısına tunelləyir. Lokal serverlə başdan sona yoxlanılıb:
ChatGPT codex.rate_limits + response.created qaytarır və tamamlamanı axınla ötürür.
Kvotalar və problemlərin bildirilməsi
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /v1/quotas/check |
Qeydiyyatdan keçmiş açar təqdim edilməzdən əvvəl provider + accountId üçün kvotanı yoxlayır |
| POST | /v1/issues/report |
Kvota/açar təqdimetmə xətasını GitHub-a bildirir (GITHUB_ISSUES_REPO + token tələb olunur) |
Autentifikasiya: Bearer API açarı (isAuthenticated).
Özünəxidmət istifadəsi (/api/usage/om-usage)
İstənilən API açarı idarəetmə autentifikasiyası olmadan öz istifadəsini və kvotalarını oxuya bilər. Bu, müştərinin (CLI, OmniCopilot paneli) açar sahibinə xərclərini göstərmək üçün istifadə etdiyi son nöqtədir.
# Mətn formatı (tarixi müqavilə — terminal üçün adi mətn)
curl -H "Authorization: Bearer <your-api-key>" \
http://localhost:20128/api/usage/om-usage
# Strukturlaşdırılmış format — UI tərəfindən istifadə olunan format
curl -H "Authorization: Bearer <your-api-key>" \
"http://localhost:20128/api/usage/om-usage?format=json"
Açarda allowUsageCommand aktiv olmalıdır (standart olaraq deaktivdir — idarəetmə panelinin API açarı
meneceri bunu hər açar üçün ayrıca dəyişir). Bu parametr olmadan son nöqtə 403 cavabı qaytarır.
?format=json diskriminasiya edilmiş struktur qaytarır ki, çağıran tərəf imtina cavabından heç vaxt məlumat sahəsi oxumasın.
Uğurlu olduqda:
{
"allowed": true,
// yalnız açar hər açar üzrə istifadə limitlərini (gündəlik/həftəlik USD) aktiv etdikdə mövcuddur:
"personal": {
"dailySpentUsd": 1.25,
"dailyLimitUsd": 5,
"dailyResetAtIso": "…",
"weeklySpentUsd": 8,
"weeklyLimitUsd": 20,
"weeklyResetAtIso": "…" /* … */,
},
// seçilmiş provayderin kvota anlıq görüntüsü və ya hələ heç nə keşlənməyibsə null:
"provider": {
"connectionId": "…",
"provider": "claude",
"plan": "…",
"quotas": {/* … */},
},
// UI-nin bir neçə provayderi yan-yana göstərə bilməsi üçün hər bağlantının anlıq görüntüsü:
"providers": [
{ "connectionId": "…", "provider": "claude" /* … */ },
{ "provider": "codex" /* … */ },
],
}
İmtina zamanı (401 etibarsız açar / 403 icazə verilməyib) eyni marşrut
{ "allowed": false, "error": { "message": "…" } } qaytarır — mövcud, lakin boş personal/provider
(açara icazə verilib, lakin hələ heç nə əldə edilməyib) imtinadan fərqli vəziyyətdir və onları yalnız JSON formatı
fərqləndirir.
Autentifikasiya: çağıran tərəfin isValidApiKey ilə yoxlanılan öz Bearer API açarı — bu, requireManagementAuth
ilə qorunan idarəetmə interfeysi (/api/keys/…) deyil.
Semantik keş
# Keş statistikasını əldə edin
GET /api/cache/stats
# Bütün keşləri təmizləyin
DELETE /api/cache/stats
Cavab nümunəsi:
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
Gecikməyə təsiri
Semantik keşdə HIT olduqda cavab yuxarı axın çağırışı olmadan
keşdən təqdim edilir, buna görə də bildirilən X-OmniRoute-Response-Latency
ilkin yuxarı axın gecikməsindən asılı olmayaraq sıfıra yaxın olur. Gecikməyə həssas müştərilər
(performans sınaqları, p50/p99 monitorinqi) X-OmniRoute-Cache-Latency
cavab başlığını yoxlamalıdır:
| Dəyər | Mənası |
|---|---|
synthetic |
Cavab keşdən təqdim edilib; gecikmə real yuxarı axın müddəti deyil |
| (yoxdur) | Cavab real yuxarı axın çağırışından alınıb |
Hər açar üzrə keşdən yan keçmə
API açarları cacheDefaultMode vasitəsilə semantik keş oxumalarından imtina edə bilər:
| Dəyər | Davranış |
|---|---|
legacy |
Normal keş davranışı (standart) |
bypass |
Keş axtarışını tamamilə ötürür; həmişə yuxarı axına müraciət edir |
Açar yaradılarkən (POST /api/keys) təyin edin və ya (PATCH /api/keys/[id]) yeniləyin:
{ "cacheDefaultMode": "bypass" }
Hər sorğu üzrə yan keçmə
İstənilən sorğu açar parametrlərindən asılı olmayaraq keşdən yan keçə bilər:
X-OmniRoute-No-Cache: true
İdarəetmə paneli və idarəetmə
İdarəetmə marşrutları (/api/*, ictimai autentifikasiya/giriş istisna olmaqla) adi inferensiya API açarları ilə avtorizasiya edilmir. Etimadnamə ailələri, əhatə dairələri və curl nümunələri:
İdarəetmə autentifikasiyası.
Autentifikasiya
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/auth/login |
POST | Daxil olma |
/api/auth/logout |
POST | Çıxış |
/api/settings/require-login |
GET/PUT | Giriş tələbinin aktivləşdirilməsi |
Provayderlərin idarə edilməsi
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/providers |
GET/POST | Provayderləri siyahılamaq / yaratmaq |
/api/providers/[id] |
GET/PUT/DELETE | Provayderi idarə etmək |
/api/providers/[id]/test |
POST | Provayder bağlantısını sınaqdan keçirmək |
/api/providers/[id]/models |
GET | Provayder modellərini siyahılamaq |
/api/providers/validate |
POST | Provayder konfiqurasiyasını doğrulamaq |
/api/providers/bulk |
POST | BİR provayder üçün API açarlarını toplu şəkildə əlavə etmək |
/api/providers/import |
POST | Təhlil edilmiş CSV/JSON faylından heterogen provayder SİYAHISINI idxal etmək (#6836); hər sətir üzrə qismən xəta nəticələri |
/api/provider-nodes* |
Müxtəlif | Provayder qovşaqlarının idarə edilməsi |
/api/provider-models |
GET/POST/PATCH/DELETE | Fərdi modellər (əlavə etmək, yeniləmək, gizlətmək/göstərmək, silmək) |
OAuth axınları
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/oauth/[provider]/[action] |
Müxtəlif | Provayderə xas OAuth |
Marşrutlaşdırma və konfiqurasiya
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/models/alias |
GET/POST | Model ləqəbləri |
/api/models/catalog |
GET | Provayder və növ üzrə bütün modellər |
/api/combos* |
Müxtəlif | Kombinasiyaların idarə edilməsi |
/api/keys* |
Müxtəlif | API açarlarının idarə edilməsi |
/api/pricing |
GET | Model qiymətləri |
İstifadə və analitika
| Endpoint | Metod | Təsvir |
|---|---|---|
/api/usage/history |
GET | İstifadə tarixçəsi |
/api/usage/logs |
GET | İstifadə jurnalları |
/api/usage/request-logs |
GET | Sorğu səviyyəli jurnallar |
/api/usage/[connectionId] |
GET | Hər bağlantı üzrə istifadə |
/api/usage/token-limits |
GET/POST/DELETE | Hər API açarı üzrə token limiti büdcələri |
/api/usage/model-latency-stats |
GET | Provayder/model üzrə sürüşən gecikmə aqreqatı (avg/p50/p95/p99, uğur faizi); filtrlər: windowHours/minSamples/maxRows/provider/model (#6873) |
/api/usage/cache-health |
GET | call_logs üzrə prompt keşinin sağlamlıq xülasəsi — yazma/oxuma nisbəti, yazma ölçüsünün p50/p90/p99 paylanması, intensiv yazmaların konsentrasiyası, model üzrə bölgü və healthy/degraded/thrash/no-data nəticəsi; sorğu parametrləri: range (1h|24h|7d|30d, standart 24h) və istəyə bağlı model (#8827) |
Parametrlər
| Endpoint | Metod | Təsvir |
|---|---|---|
/api/settings |
GET/PUT/PATCH | Ümumi parametrlər |
/api/settings/proxy |
GET/PUT | Şəbəkə proksisi konfiqurasiyası |
/api/settings/proxy/test |
POST | Proksi bağlantısını sınaqdan keçirmək |
/api/settings/ip-filter |
GET/PUT | İcazə verilən/bloklanan IP siyahısı |
/api/settings/thinking-budget |
GET/PUT | Düşünmə/əsaslandırma sorğusu üçün yenidən yazma rejimi (dəyişikliksiz ötürmə / avtomatik silmə / fərdi / adaptiv). Sıxılmadan asılı deyil. Baxın: THINKING_BUDGET.md. |
/api/settings/system-prompt |
GET/PUT | Qlobal sistem promptu |
/api/settings/compression |
GET/PUT | Qlobal sıxılma konfiqurasiyası |
/api/settings/purge-request-history |
POST | Sorğu jurnalı sətirlərini və lokal çağırış jurnalı artefaktlarını təmizləmək |
Kontekst və sıxılma
| Endpoint | Metod | Təsvir |
|---|---|---|
/api/compression/preview |
POST | off/lite/standard/aggressive/ultra/RTK/stacked sıxılmasına önbaxış |
/api/compression/language-packs |
GET | Mövcud Caveman dil paketlərinin siyahısı |
/api/compression/rules |
GET | Caveman qaydalarının metadatasının siyahısı |
/api/context/caveman/config |
GET/PUT | Caveman-ə məxsus parametrlər üçün alternativ ad |
/api/context/rtk/config |
GET/PUT | Fərdi filtrlər və xam çıxışın saxlanması daxil olmaqla RTK-yə məxsus parametrlər |
/api/context/rtk/filters |
GET | RTK filtr kataloqu və fərdi filtr diaqnostikası |
/api/context/rtk/test |
POST | Mətn yükü üzərində RTK önbaxışını/sınağını işə salmaq |
/api/context/rtk/raw-output/[id] |
GET | Göstərici ID-si ilə saxlanılan redaktə edilmiş xam çıxışı oxumaq |
/api/context/combos |
GET/POST | Sıxılma kombinasiyalarının siyahısı/yaradılması |
/api/context/combos/[id] |
GET/PUT/DELETE | Sıxılma kombinasiyasının təfərrüatları/yenilənməsi/silinməsi |
/api/context/combos/[id]/assignments |
GET/PUT | Sıxılma kombinasiyalarını marşrutlaşdırma kombinasiyalarına təyin etmək |
/api/context/analytics |
GET | Sıxılma analitikası üçün alternativ ad |
Monitorinq
| Endpoint | Metod | Təsvir |
|---|---|---|
/api/sessions |
GET | Aktiv sessiyaların izlənməsi |
/api/rate-limits |
GET | Hesab üzrə sorğu tezliyi limitləri |
/api/monitoring/health |
GET | Sağlamlıq yoxlaması + provayder xülasəsi (catalogCount, configuredCount, activeCount, monitoredCount). İdarəetmə görünüşünə credentialHealth daxildir: yoxlama keşi skalyarları, failed>0 olduqda failedConnections və staleDbNonOkCount (SQLite-da qalıcı test_status, ölçü göstəricisi deyil). Baxın: MONITORING_GUIDE.md. |
/api/cache/stats |
GET/DELETE | Keş statistikası / təmizləmə |
/api/modality-bridge/stats |
GET | Yaddaşdaxili attempts, uğurlar/bridged, uğursuzluqlar, keş uyğunluqları, totalLatencyMs, latencySamples, nümunə sayına əsaslanan averageLatencyMs və son istifadə vaxtı (yenidən başladıldıqda sıfırlanır; idarəetmə autentifikasiyası) |
/api/modality-bridge/video/runtime |
GET | İdarəetmə autentifikasiyasından/yoxlamasından əvvəl etibarlı loopback üçün ciddi yoxlama; təmizlənmiş FFmpeg/ffprobe əlçatanlığı və versiyaları (no-store) |
/api/modality-bridge/video/extract |
POST | Daxili, autentifikasiya edilmiş, etibarlı loopback bayt brokeri; 50 MiB giriş, məhdud növbə/32 MiB çıxış, 503 tutum, 499 bağlantının kəsilməsi, 504 son müddət; ictimai fayl yükləmə API-si deyil |
Ehtiyat nüsxələmə və ixrac/idxal
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/db-backups |
GET | Mövcud ehtiyat nüsxələri siyahıya alır |
/api/db-backups |
PUT | Əl ilə ehtiyat nüsxə yaradır |
/api/db-backups |
POST | Müəyyən ehtiyat nüsxədən bərpa edir |
/api/db-backups/export |
GET | Verilənlər bazasını .sqlite faylı kimi endirir |
/api/db-backups/import |
POST | Verilənlər bazasını əvəz etmək üçün .sqlite faylı yükləyir |
/api/db-backups/exportAll |
GET | Tam ehtiyat nüsxəni .tar.gz arxivi kimi endirir |
Bulud Sinxronizasiyası
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/sync/cloud |
Müxtəlif | Bulud sinxronizasiya əməliyyatları |
/api/sync/initialize |
POST | Sinxronizasiyanı başladır |
/api/cloud/* |
Müxtəlif | Bulud idarəetməsi |
Tunellər
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/tunnels/cloudflared |
GET | İdarəetmə paneli üçün Cloudflare Quick Tunnel quraşdırma/işləmə vəziyyətini oxuyur |
/api/tunnels/cloudflared |
POST | Cloudflare Quick Tunnel-i aktiv və ya deaktiv edir (action=enable/disable) |
/api/tunnels/ngrok |
GET | İdarəetmə paneli üçün ngrok Tunnel işləmə vəziyyətini oxuyur |
/api/tunnels/ngrok |
POST | ngrok Tunnel-i aktiv və ya deaktiv edir (action=enable/disable) |
CLI Alətləri
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/cli-tools/claude-settings |
GET | Claude CLI vəziyyəti |
/api/cli-tools/codex-settings |
GET | Codex CLI vəziyyəti |
/api/cli-tools/droid-settings |
GET | Droid CLI vəziyyəti |
/api/cli-tools/openclaw-settings |
GET | OpenClaw CLI vəziyyəti |
/api/cli-tools/runtime/[toolId] |
GET | Ümumi CLI icra mühiti |
CLI cavablarına bunlar daxildir: installed, runnable, command, commandPath, runtimeMode, reason.
ACP Agentləri
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/acp/agents |
GET | Vəziyyətləri ilə birlikdə aşkarlanmış bütün agentləri (daxili + fərdi) siyahıya alır |
/api/acp/agents |
POST | Fərdi agent əlavə edir və ya aşkarlama keşini yeniləyir |
/api/acp/agents |
DELETE | id sorğu parametri ilə fərdi agenti silir |
GET cavabına agents[] (id, ad, binar fayl, versiya, quraşdırılıb, protokol, fərdidir) və summary (cəmi, quraşdırılıb, tapılmayıb, daxili, fərdi) daxildir.
Dayanıqlılıq və Tezlik Məhdudiyyətləri
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/resilience |
GET/PATCH | Sorğu növbəsini, bağlantının gözləmə müddətini, provayder qoruyucusunu və gözləmə parametrlərini əldə edir/yeniləyir |
/api/resilience/reset |
POST | Provayder dövrə qoruyucularını sıfırlayır |
/api/resilience/model-cooldowns |
GET | Qalan vaxta görə sıralanmış aktiv (provayder, bağlantı, model) bloklamalarını siyahıya alır |
/api/resilience/model-cooldowns |
DELETE | Model bloklamasını təmizləyir — gövdə: {provider, model} və ya hər şeyi silmək üçün {all: true} |
/api/rate-limits |
GET | Hesab üzrə tezlik məhdudiyyəti vəziyyəti |
/api/rate-limit |
GET | Qlobal tezlik məhdudiyyəti konfiqurasiyası |
Bütün dörd
/api/resilience/*marşrutu idarəetmə autentifikasiyası (requireManagementAuth) tələb edir. Provayder qoruyucusu, bağlantının gözləmə müddəti və model bloklaması arasındakı fərqlərin tam izahı üçün Dayanıqlılıq (genişləndirilmiş) bölməsinə baxın.
Qiymətləndirmələr
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/evals |
GET/POST | Qiymətləndirmə dəstlərini siyahıya alır / qiymətləndirməni işə salır |
Siyasətlər
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/policies |
GET/POST/DELETE | Marşrutlaşdırma siyasətlərini idarə edir |
Uyğunluq
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/api/compliance/audit-log |
GET | Uyğunluq audit jurnalı (son N qeyd) |
v1beta (Gemini ilə Uyğun)
| Son nöqtə | Metod | Təsvir |
|---|---|---|
/v1beta/models |
GET | Modelləri Gemini formatında siyahıya alır |
/v1beta/models/{...path} |
POST | Gemini generateContent son nöqtəsi |
Bu son nöqtələr yerli Gemini SDK uyğunluğu gözləyən klientlər üçün Gemini API formatını təkrarlayır.
Daxili / Sistem API-ləri
| Endpoint | Metod | Təsvir |
|---|---|---|
/api/init |
GET | Tətbiqin başladılmasının yoxlanması (ilk işə salmada istifadə olunur) |
/api/tags |
GET | Ollama ilə uyğun model teqləri (Ollama klientləri üçün) |
/api/restart |
POST | Serverin təhlükəsiz şəkildə yenidən başladılmasını işə salır |
/api/shutdown |
POST | Serverin təhlükəsiz şəkildə dayandırılmasını işə salır |
/api/system/env/repair |
POST | OAuth provayderinin mühit dəyişənlərini bərpa edir |
Qeyd: Bu endpoint-lər sistem tərəfindən daxili məqsədlər üçün və ya Ollama klientləri ilə uyğunluq üçün istifadə olunur. Adətən son istifadəçilər tərəfindən çağırılmır.
OAuth Mühitinin Bərpası (v3.6.1+)
POST /api/system/env/repair
Content-Type: application/json
{
"provider": "claude-code"
}
Müəyyən provayder üçün çatışmayan və ya zədələnmiş OAuth mühit dəyişənlərini bərpa edir. Aşağıdakı cavabı qaytarır:
{
"success": true,
"repaired": ["CLAUDE_CODE_OAUTH_CLIENT_ID", "CLAUDE_CODE_OAUTH_CLIENT_SECRET"],
"backupPath": "/home/user/.omniroute/backups/env-repair-2026-04-11.bak"
}
Audio Transkripsiyası
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
Konfiqurasiya edilmiş istənilən STT provayderindən istifadə edərək audio faylları transkripsiya edin. Yolun ilk
seqmenti yerli provayderi seçir (openai/…, deepgram/…). Başqa təchizatçının
modelini yenidən təqdim edən şlüzlər ixtisaslaşdırılmış identifikatordan istifadə edir
(openrouter/deepgram/nova-3).
Sorğu:
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@recording.mp3" \
-F "model=openai/whisper-1"
Cavab:
{
"text": "Hello, this is the transcribed audio content.",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
Model identifikatorlarına nümunələr: openai/whisper-1 (OpenAI açarı tələb edir),
openrouter/deepgram/nova-3 (OpenRouter açarı tələb edir),
deepgram/nova-3 (yerli Deepgram açarı tələb edir). Sadə
deepgram/nova-3 sorğusu OpenRouter-dən istifadə etmir.
Dəstəklənən formatlar: mp3, wav, m4a, flac, ogg, webm.
Ollama Uyğunluğu
Ollama API formatından istifadə edən klientlər üçün:
# Söhbət son nöqtəsi (Ollama formatı)
POST /v1/api/chat
# Modellərin siyahılanması (Ollama formatı)
GET /api/tags
Sorğular Ollama və daxili formatlar arasında avtomatik olaraq çevrilir.
Tokenli VS Code / Başlıqsız Alíyaslar
İnteqrasiya Authorization başlığını əlavə edə bilmədikdə və API açarının baza URL-yə daxil edilməsinə ehtiyac olduqda bu alíyaslardan istifadə edin.
# OpenAI üslublu kataloq alíyası
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models
# OpenAI üslublu söhbət alíyasları
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses
# Ollama üslublu alíyaslar
POST /api/v1/vscode/{token}/api/chat
GET /api/v1/vscode/{token}/api/tags
Nümunə:
curl https://your-host.example/api/v1/vscode/YOUR_API_KEY/models
curl -X POST https://your-host.example/api/v1/vscode/YOUR_API_KEY/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"hello"}]}'
Qeydlər:
- Tokenli alíyaslar
/v1/*və/api/tagsilə eyni emalçılardan yenidən istifadə edir; cavab strukturları eyni qalır. - Klient fərdi başlıqları dəstəklədikdə
Authorization: Bearer ...istifadəsinə üstünlük verin. - URL əsaslı tokenlər əks-proksi jurnallarında, brauzer tarixçəsində və OmniRoute-dan kənar telemetriyada görünə bilər. Onlara standart autentifikasiya rejimi kimi deyil, uyğunluq seçimi kimi yanaşın.
Telemetriya
# Gecikmə telemetriyasının xülasəsini əldə edin (hər provayder üzrə p50/p95/p99)
GET /api/telemetry/summary
Cavab:
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
Büdcə
# Bütün API açarları üçün büdcə statusunu əldə edin
GET /api/usage/budget
# Büdcə təyin edin və ya yeniləyin
POST /api/usage/budget
Content-Type: application/json
{
"apiKeyId": "key-123",
"dailyLimitUsd": 5.00,
"weeklyLimitUsd": 30.00,
"monthlyLimitUsd": 100.00,
"warningThreshold": 0.8,
"resetInterval": "monthly"
}
Sxem qeydləri (
setBudgetSchema):apiKeyIdməcburidir;dailyLimitUsd,weeklyLimitUsdvə yamonthlyLimitUsddəyərlərindən ən azı biri sıfırdan böyük olmalıdır. İxtiyari sahələr:warningThreshold(0–1),resetInterval(daily|weekly|monthly),resetTime(HH:MM). Köhnə{keyId, limit, period}strukturu400 Bad Requestqaytarır.
Token Limitləri
Hər API açarı üçün token büdcələri (yuxarıdakı USD əsaslı Büdcədən fərqlidir). Sorğu emalı yolunda birbaşa tətbiq olunur: açarın cari zaman pəncərəsindəki istifadəsi limitə çatdıqda sorğular 429 Too Many Requests xətası ilə rədd edilir. Limitlər konkret model, provider üzrə məhdudlaşdırıla və ya açarın bütün istifadəsinə global şəkildə tətbiq oluna bilər; bir sorğuya bir neçə limit uyğun gəldikdə ən məhdudlaşdırıcı olan üstünlük qazanır.
# Açarın token limitlərini siyahıla (cari zaman pəncərəsi üzrə istifadə daxildir)
GET /api/usage/token-limits?apiKeyId=key-123
# Token limiti yarat və ya yenilə
POST /api/usage/token-limits
Content-Type: application/json
{
"apiKeyId": "key-123",
"scopeType": "model",
"scopeValue": "openai/gpt-4o",
"tokenLimit": 1000000,
"resetInterval": "monthly",
"enabled": true
}
# Token limitini id üzrə sil
DELETE /api/usage/token-limits?id=tl-abc
Sxem qeydləri (
setTokenLimitSchema):apiKeyIdvəscopeType(model|provider|global) mütləqdir.scopeTypedəyəriglobalolmadığı haldascopeValuemütləqdir (məsələn,modeləhatə dairəsi üçün model id-si,providerəhatə dairəsi üçün provayder id-si).tokenLimitmüsbət tam ədəd olmalıdır (sətirdən çevrilir). İxtiyari:id(yaratmaq üçün buraxın, yeniləmək üçün təqdim edin),resetInterval(daily|weekly|monthly, standart olaraqmonthly),resetTime(HH:MM),enabled(standart olaraqtrue).GETcavabları hər limititokensUsed,remaining,windowStart,periodStartAtvənextResetAtilə zənginləşdirir. Bu, idarəetmə sinfinə aid son nöqtədir (autentifikasiya mərkəzləşdirilmiş authz konveyeri tərəfindən tətbiq olunur).
Sorğunun Emalı
- Müştəri
/v1/*ünvanına sorğu göndərir - Marşrut emalçısı
handleChat,handleEmbedding,handleAudioTranscriptionvə yahandleImageGenerationçağırır - Model müəyyənləşdirilir (birbaşa provayder/model və ya alias/kombinasiya)
- Hesabın əlçatanlığına görə filtrləmə tətbiq edilməklə lokal verilənlər bazasından giriş məlumatları seçilir
- Söhbət üçün:
handleChatCoresemantik/imza keşini yoxlayır və kombinasiya sıxışdırma parametrlərini müəyyənləşdirir - Aktiv olduqda proaktiv sıxışdırma provayder tərcüməsindən əvvəl işə salınır (
lite, Caveman, RTK və ya üst-üstə tətbiq olunan üsullar) - Provayder icraçısı yuxarı axın sorğusunu göndərir
- Cavab yenidən müştəri formatına çevrilir (söhbət) və ya olduğu kimi qaytarılır (yerləşdirmələr/şəkillər/audio)
- İstifadə, sıxışdırma analitikası və sorğu jurnalları qeydə alınır
- Xətalar zamanı kombinasiya qaydalarına uyğun olaraq ehtiyat mexanizm tətbiq edilir
Tam arxitektura istinadı: ARCHITECTURE.md
Kombinasiyaların İdarə Edilməsi
Daha yüksək səviyyəli marşrutlaşdırma kombinasiyaları (/api/combos* bölməsində artıq ümumiləşdirilib) model id-si nümunəsindən 1:1 nisbətində də uyğunlaşdırıla bilər; bu, OpenAI üslublu model id-sinin şəffaf şəkildə kombinasiyaya yönləndirilməsinə imkan verir.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/model-combo-mappings |
Bütün model→kombinasiya uyğunlaşdırmalarını siyahıla |
| POST | /api/model-combo-mappings |
Uyğunlaşdırma yarat — gövdə: {pattern, comboId, priority?, enabled?, description?} |
| GET | /api/model-combo-mappings/[id] |
Tək bir uyğunlaşdırmanı əldə et |
| PUT | /api/model-combo-mappings/[id] |
Mövcud uyğunlaşdırmanın sahələrini yenilə |
| DELETE | /api/model-combo-mappings/[id] |
Uyğunlaşdırmanı sil |
Autentifikasiya: idarəetmə sessiyası/API açarı (requireManagementAuth).
Vebhuklar
OmniRoute hadisələri (sorğunun tamamlanması, kvotanın tükənməsi, açarın rotasiyası və s.) üçün gedən vebhuk abunəlikləri.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/webhooks |
Vebhukları siyahılayır (məxfi açarlar <prefix>... şəklində maskalanır) |
| POST | /api/webhooks |
Vebhuk yaradır — sorğu gövdəsi: {url, events?: ["*"], secret?, description?} |
| GET | /api/webhooks/[id] |
Vebhuku əldə edir |
| PUT | /api/webhooks/[id] |
url/events/secret/description sahələrini yeniləyir |
| DELETE | /api/webhooks/[id] |
Vebhuku silir |
| POST | /api/webhooks/[id]/test |
Vebhuk URL-inə sınaq məlumatları göndərir və çatdırılma statusunu qaytarır |
Autentifikasiya: idarəetmə sessiyası/API açarı (requireManagementAuth).
Qeydiyyatdan Keçmiş Açarlar (Avtomatik İdarəetmə)
Gündəlik/saatlıq kvotalarla dəstəkləyici provayder/hesab vasitəsilə API açarlarını yaratmaq və rotasiya etmək üçün avtomatik açar idarəetmə altsistemi tərəfindən istifadə olunur.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/v1/registered-keys |
Qeydiyyatdan keçmiş açarları siyahılayır (yalnız maskalanmış prefiks) |
| POST | /api/v1/registered-keys |
Yeni qeydiyyatdan keçmiş açar yaradır — sorğu gövdəsi: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}. Xam açarı yalnız bir dəfə qaytarır. Kvota rədd edildikdə 429 qaytarır. |
| GET | /api/v1/registered-keys/[id] |
Qeydiyyatdan keçmiş açarın metadatasını əldə edir (xam məlumat olmadan) |
| DELETE | /api/v1/registered-keys/[id] |
Qeydiyyatdan keçmiş açarı ləğv edir |
| POST | /api/v1/registered-keys/[id]/revoke |
Açıq ləğvetmə son nöqtəsi (DELETE ilə eyni təsirə malikdir) |
Autentifikasiya: Bearer API açarı (isAuthenticated). Həmçinin /v1/quotas/check və /v1/issues/report ünvanlarına baxın.
Agentlər Protokolu
OmniRoute istifadəçiləri adından uzaqdan icra edilən bulud agenti tapşırıqları (Claude Code, Codex Cloud, OpenHands və s.).
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/v1/agents/tasks |
Tapşırıqları siyahıla — istəyə bağlı ?provider=, ?status=, ?limit= (1–500, standart 50) |
| POST | /api/v1/agents/tasks |
Tapşırıq yarat — sorğu gövdəsi CreateCloudAgentTaskSchema (providerId, prompt, source, options?) ilə yoxlanılır. Tapşırıq zərfi ilə 201 qaytarır |
| DELETE | /api/v1/agents/tasks?id=... |
Tapşırığı sil |
| GET | /api/v1/agents/tasks/[id] |
Tapşırığı oxu — external_id təyin edildikdə statusu yuxarı axındakı bulud agentindən sinxron şəkildə yeniləyir |
| POST | /api/v1/agents/tasks/[id] |
Fərqləndirilmiş əməl: {action: "approve"}, {action: "message", message} və ya {action: "cancel"} |
| DELETE | /api/v1/agents/tasks/[id] |
Konkret tapşırığı id üzrə sil |
Autentifikasiya: hər metod üçün idarəetmə autentifikasiyası tələb olunur (
requireCloudAgentManagementAuth). v3.8.0 versiyasından əvvəl bunlar autentifikasiya tələb etmirdi — geriyə uyğunluğu pozan dəyişiklik üçün588a0333kommitinə baxın.
# Claude Code bulud tapşırığı yaradın
curl -X POST http://localhost:20128/api/v1/agents/tasks \
-H "Authorization: Bearer your-management-key" \
-H "Content-Type: application/json" \
-d '{"providerId":"claude-code-cloud","prompt":"Fix the failing test","source":{"repo":"...","branch":"..."}}'
İdarəetmə Proksiləri
Provayderlərə, hesablara və ya qlobal şəkildə təyin edilə bilən çıxış HTTP(S)/SOCKS proksiləri.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/v1/management/proxies |
Proksiləri siyahıla (?id= ilə biri qaytarılır; ?id=&where_used=1 ilə təyinat qrafı qaytarılır) |
| POST | /api/v1/management/proxies |
Proksi yarat — sorğu gövdəsi createProxyRegistrySchema ilə yoxlanılır |
| PATCH | /api/v1/management/proxies |
Proksini yenilə — sorğu gövdəsi updateProxyRegistrySchema ilə yoxlanılır (id tələb olunur) |
| DELETE | /api/v1/management/proxies?id=...&force=1 |
Proksini sil (təyinatları ayırmaq üçün force=1 istifadə edin) |
| GET | /api/v1/management/proxies/assignments |
Təyinatları siyahıla — proxy_id, scope, scope_id üzrə filtrlənə bilər; bağlantı üçün aktiv proksini müəyyən etmək məqsədilə resolve_connection_id=<id> ötürün |
| PUT | /api/v1/management/proxies/assignments |
Təyin et — sorğu gövdəsi proxyAssignmentSchema ({scope, scopeId?, proxyId?}) ilə yoxlanılır. Dispetçer keşini təmizləyir |
| PUT | /api/v1/management/proxies/bulk-assign |
Kütləvi təyin et — sorğu gövdəsi bulkProxyAssignmentSchema ({scope, scopeIds[], proxyId?}) ilə yoxlanılır |
| GET | /api/v1/management/proxies/health?hours=24 |
Müəyyən vaxt aralığı üzrə ümumiləşdirilmiş proksi sağlamlığı (uğur/uğursuzluq sayları, gecikmə) |
Autentifikasiya: hər marşrutda idarəetmə sessiyası/API açarı tələb olunur (requireManagementAuth).
Tapşırıq təsvirindəki
POST /api/v1/management/proxies/[id]/assignmentsvəPOST /api/v1/management/proxies/[id]/healthsorğularına yuxarıda göstərilən düz/assignmentsvə/healthmarşrutları xidmət edir — kod bazasında hər id üçün ayrıca alt marşrutlar yoxdur.
Dayanıqlılıq (genişləndirilmiş)
OmniRoute üç müstəqil müvəqqəti nasazlıq mexanizmi təqdim edir; aşağıdakı idarəetmə son nöqtələri operatorlara onları oxumağa və yenidən təyin etməyə imkan verir:
| Əhatə dairəsi | Vəziyyətin saxlanması | Oxuma | Sıfırlama / təmizləmə |
|---|---|---|---|
| Provayder kəsicisi | domain_circuit_breakers + yaddaşdaxili |
/api/monitoring/health |
POST /api/resilience/reset |
| Bağlantı fasiləsi | Provayder bağlantılarında rateLimitedUntil |
/api/rate-limits, /api/providers/[id] |
(tənbəl şəkildə yenidən aktivləşir; provayder PUT sorğusu ilə təmizləyin) |
| Model bloklanması | Yaddaşdaxili model əlçatanlığı reyestri | GET /api/resilience/model-cooldowns |
DELETE /api/resilience/model-cooldowns |
PATCH /api/resilience, providerBreaker.oauth və providerBreaker.apikey daxilində provayder kəsicisi üçün əvəzetmələri qəbul edir. Hər profil degradationThreshold, failureThreshold və resetTimeoutMs sahələrini dəstəkləyir; eyni sahələr İdarəetmə paneli → Parametrlər → Dayanıqlılıq bölməsində də təqdim olunur.
# Tək bir model bloklanmasını təmizləyin
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-H "Content-Type: application/json" \
-d '{"provider":"openai","model":"gpt-4o-mini"}'
# Bütün bloklanmaları silin
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
-H "Cookie: auth_token=..." \
-d '{"all":true}'
Tam konseptual istinad və kəsicinin standart parametrləri üçün baxın: CLAUDE.md → "Dayanıqlılığın İcra Müddəti Vəziyyəti".
Bacarıqlar
OmniRoute-u fərdi icra edilə bilən emalçılarla genişləndirmək üçün bacarıq çərçivəsi və marketpleys inteqrasiyaları.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/skills |
Quraşdırılmış bacarıqları siyahıya alın — ?q=, ?mode=on|off|auto, ?source=skillsmp|skillssh|local üzrə filtrlənə və səhifələnə bilər |
| GET | /api/skills/[id] |
Bir bacarığı əldə edin |
| PUT | /api/skills/[id] |
Bacarığı yeniləyin (ad, təsvir, rejim, sxem, emalçı, teqlər) |
| DELETE | /api/skills/[id] |
Bacarığı silin |
| POST | /api/skills/install |
Bacarığı xam manifestdən quraşdırın — gövdə: {name, version, description, schema:{input, output}, handlerCode, apiKeyId?} |
| GET | /api/skills/executions |
Son bacarıq icralarını siyahıya alın (girişlər, çıxışlar və müddəti əhatə edən audit izi) |
| GET | /api/skills/marketplace?q=... |
SkillsMP marketpleysindən axtarış/populyar siyahı (skillsmpApiKey parametrini tələb edir) |
| POST | /api/skills/marketplace/install |
SkillsMP-dən id üzrə bacarıq quraşdırın |
| GET | /api/skills/skillssh?q=&limit= |
skills.sh reyestrində axtarış aparın |
| POST | /api/skills/skillssh/install |
skills.sh-dan id üzrə bacarıq quraşdırın |
Autentifikasiya: idarəetmə sessiyası/API açarı. Marketpleys axtarış marşrutları idarəetmə autentifikasiyasını və ya Bearer API açarını (isAuthenticated) qəbul edir.
Yaddaş
Hər API açarı / sessiya üzrə əhatə dairəsi məhdudlaşdırılmış davamlı söhbət/fakt yaddaşı anbarı.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/memory |
Yaddaş qeydlərini sadalayır — ?apiKeyId=, ?type=, ?sessionId=, ?q=, offset/limit və ya page/limit səhifələməsi ilə |
| POST | /api/memory |
Yaddaş qeydi yaradır — gövdə Zod tərəfindən yoxlanılır: {content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?} |
| GET | /api/memory/[id] |
Bir yaddaş qeydini əldə edir |
| DELETE | /api/memory/[id] |
Yaddaş qeydini silir |
| GET | /api/memory/health |
Yaddaş altsisteminin vəziyyəti (DB bağlantısı, embeddings backend-i, vektor indeksinin vəziyyəti) |
Autentifikasiya: idarəetmə sessiyası/API açarı (requireManagementAuth). type enum-u: FACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (src/lib/memory/types.ts daxilindəki MemoryType-a baxın).
MCP Serveri
OmniRoute 3 nəqliyyat mexanizmi (stdio, SSE, streamable-http) və əhatə dairəsi məhdudlaşdırılmış alətləri olan daxili Model Context Protocol serveri ilə təchiz edilir. Aşağıdakı idarəetmə paneli endpoint-ləri vəziyyət/audit məlumatlarını oxuyur və HTTP nəqliyyatlarını proksi edir.
| Metod | Yol | Təsvir | |
|---|---|---|---|
| GET | /api/mcp/status |
Ürək döyüntüsü, nəqliyyat, onlayn vəziyyət, son çağırış, ən çox istifadə olunan alətlər, 24 saatlıq uğur faizi | |
| GET | /api/mcp/tools |
name, description, scopes, phase, auditLevel, sourceEndpoints sahələri ilə MCP alətlərinin siyahısı |
|
| GET | /api/mcp/sse |
SSE nəqliyyatı üçün SSE axını açır (MCP deaktivdirsə və ya nəqliyyat uyğun gəlmirsə, 503 qaytarır) |
|
| POST | /api/mcp/sse |
SSE nəqliyyatında JSON-RPC çərçivəsi göndərir | |
| GET | /api/mcp/stream |
Streamable HTTP nəqliyyatının SSE tərəfini açır (server tərəfindən başladılan mesajlar) | |
| POST | /api/mcp/stream |
Streamable HTTP nəqliyyatında JSON-RPC çərçivəsi göndərir | |
| DELETE | /api/mcp/stream |
Streamable HTTP sessiyasını sonlandırır | |
| GET | /api/mcp/audit |
Audit jurnalını sorğulayır — ?limit=, ?offset=, ?tool=, `?success=true |
false, ?apiKeyId=` |
| GET | /api/mcp/audit/stats |
Ümumi audit statistikasını təqdim edir (ümumi saylar, uğur faizi, orta müddət, ən çox istifadə olunan alətlər) |
Autentifikasiya: sse/stream nəqliyyatları MCP-yə xas autentifikasiya səthinə tabedir (mcp əhatə dairəsinə malik Bearer API açarı); status/tools/audit* marşrutları idarəetmə panelindən oxuna bilər (idarəetmə paneli hostuna çıxışdan əlavə autentifikasiya tələb olunmur).
Hər iki HTTP nəqliyyatı
settings.mcpEnabledvəsettings.mcpTransportilə məhdudlaşdırılır — nəqliyyat uyğunsuzluğu400, MCP-nin deaktiv vəziyyəti isə503qaytarır.
A2A Serveri
OmniRoute yoxlama və idarəetmə panelində istifadə üçün REST örtüyü ilə yanaşı A2A (Agent-to-Agent) JSON-RPC 2.0 son nöqtəsi təqdim edir.
JSON-RPC
POST /a2a
Authorization: Bearer your-api-key # OMNIROUTE_API_KEY təyin edilməyibsə, istəyə bağlıdır
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "message/send",
"params": {
"skill": "smart-routing",
"messages": [{"role": "user", "content": "Route this coding task"}]
}
}
Dəstəklənən metodlar (hamısı settings.a2aEnabled parametrindən asılıdır):
| Metod | Təsvir |
|---|---|
message/send |
Sinxron bacarıq icrası; {task, artifacts, metadata} qaytarır |
message/stream |
Eyni bacarıq dəstinin axınlı SSE icrası |
tasks/get |
Tapşırığı taskId ilə əldə edir |
tasks/cancel |
Tapşırığı taskId ilə ləğv edir |
Daxili bacarıqlar: smart-routing, quota-management, provider-discovery, cost-analysis, health-report.
Agent Kartı
GET /.well-known/agent.json
İctimai A2A agent kartını (ad, təsvir, imkanlar, bacarıq kataloqu, autentifikasiya sxemi) qaytarır — 1 saat müddətinə ictimai şəkildə keşlənir. Autentifikasiya tələb olunmur.
REST köməkçiləri
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/a2a/status |
A2A aktivlik vəziyyəti + tapşırıq statistikası + keşlənmiş agent kartının xülasəsi |
| GET | /api/a2a/tasks |
Tapşırıqları siyahılayır — ?state=submitted|working|completed|failed|cancelled, ?skill=, ?limit= (≤200), ?offset= |
| POST | /api/a2a/tasks |
(REST köməkçisi kimi həyata keçirilməyib — JSON-RPC message/send vasitəsilə yaradın) |
| GET | /api/a2a/tasks/[id] |
Bir tapşırığı əldə edir |
| POST | /api/a2a/tasks/[id]/cancel |
Tapşırığı ləğv edir |
Autentifikasiya: REST köməkçiləri idarəetmə autentifikasiyası olmadan işləyir (idarəetmə panelindən oxuna bilər); JSON-RPC /a2a marşrutu konfiqurasiya edildiyi halda Bearer OMNIROUTE_API_KEY istifadə edir.
Bulud, Evals və Assess
| Metod | Yol | Təsvir | ||
|---|---|---|---|---|
| POST | /api/cloud/auth |
Bearer açarını yoxlayır və bulud sinxronizasiya müştəriləri üçün maskalanmış provayder bağlantıları + model aliasları qaytarır | ||
| POST | /api/cloud/credentials/update |
Buludla sinxronlaşdırılmış provayder üçün şifrələnmiş giriş məlumatlarını yeniləyir | ||
| POST | /api/cloud/model/resolve |
Lokal marşrutlaşdırma cədvəlindən istifadə edərək məntiqi model identifikatorunu konkret provayder/model ilə uyğunlaşdırır | ||
| GET | /api/cloud/models/alias |
Bulud sinxronizasiyasına təqdim edilən model aliaslarını siyahılayır | ||
| GET | /api/assess |
Ən son qiymətləndirmə kateqoriyalarını oxuyur (hər provayder/model üzrə) | ||
| POST | /api/assess |
Qiymətləndirmə başladır — gövdə: `{scope: {type:"all"} | {type:"provider", providerId} | {type:"model", modelId}, trigger?}` |
| GET | /api/evals |
Daxili eval dəstlərini + ən son icraları siyahılayır | ||
| POST | /api/evals |
Eval icrasını başladır | ||
| POST | /api/evals/suites |
Fərdi eval dəsti yaradır — gövdə evalSuiteSaveSchema tərəfindən yoxlanılır |
||
| GET | /api/evals/suites/[id] |
Fərdi eval dəstini əldə edir |
Autentifikasiya: /api/cloud/auth Bearer açarını birbaşa yoxlayır; digər /api/cloud/*, /api/evals/* və /api/assess marşrutları idarəetmə sessiyası/API açarı tələb edir. /api/assess POST diskriminantlı birləşmə əhatə dairəsi sxemi ilə validateBody istifadə edir.
ACP (Agent Client Protocol) İdarəetməsi
alt proseslər kimi. Bu son nöqtələr ACP agentlərinin aşkarlanmasını və fərdi agentlərin qeydiyyatını idarə edir.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/acp/agents |
Quraşdırma statusu, versiyası və binar faylı ilə birlikdə bütün məlum CLI agentlərini (daxili + fərdi) siyahıla |
| POST | /api/acp/agents |
Fərdi ACP agentini qeydiyyatdan keçir və ya keşi yenilə — gövdə: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} və ya {action: "refresh"} |
| DELETE | /api/acp/agents |
Fərdi ACP agentini sil — sorğu parametri: ?id=<agentId> |
Cavab nümunəsi (GET /api/acp/agents):
{
"agents": [
{
"id": "claude",
"name": "Claude Code CLI",
"binary": "claude",
"version": "1.0.45",
"installed": true,
"protocol": "stdio",
"providerAlias": "claude",
"isCustom": false
},
{
"id": "my-custom-cli",
"name": "My Custom CLI",
"installed": false,
"protocol": "stdio",
"providerAlias": "my-provider",
"isCustom": true
}
],
"cacheTtlMs": 60000,
"cacheAge": 1234
}
Autentifikasi: İdarəetmə sessiyası (idarəetmə panelinin auth_token kukisi) və ya
idarəetmə əhatəli API açarı tələb olunur.
Tam təfərrüatlar üçün ACP Çərçivəsinə baxın.
Analitika və Müşahidəolunma
Marşrutlaşdırma, sıxılma və provayder müxtəlifliyinin monitorinqi üçün real vaxt
analitika son nöqtələri. Bunlar /dashboard/analytics/* səhifələrinin işləməsini təmin edir.
Avtomatik marşrutlaşdırma analitikası
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/analytics/auto-routing |
Ümumi avtomatik marşrutlaşdırma statistikası: ümumi çağırışlar, strategiya bölgüsü, səviyyə bölgüsü, əsas provayderlər |
| GET | /api/analytics/auto-routing?days=7 |
Zaman pəncərəsi üzrə statistika (standart olaraq 24 saat) |
Cavab nümunəsi:
{
"window": "24h",
"totalCalls": 1234,
"strategyBreakdown": {
"rules": 800,
"cost": 200,
"latency": 150,
"sla-aware": 50,
"lkgp": 34
},
"tierBreakdown": {
"ultra": 100,
"pro": 500,
"standard": 400,
"free": 234
},
"topProviders": [
{ "provider": "openai", "calls": 500, "avgLatencyMs": 850 },
{ "provider": "anthropic", "calls": 300, "avgLatencyMs": 1200 }
]
}
Sıxılma analitikası
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/analytics/compression |
Ümumi sıxılma statistikası: qənaət edilən tokenlər, qənaət faizi, rejim bölgüsü, mühərrik istifadəsi |
Cavab nümunəsi:
{
"window": "24h",
"totalOriginalTokens": 5000000,
"totalCompressedTokens": 3500000,
"totalSavings": 1500000,
"savingsPct": 30.0,
"modeBreakdown": {
"lite": 400,
"standard": 600,
"aggressive": 100,
"ultra": 50,
"rtk": 84
},
"engineBreakdown": {
"caveman": 800,
"rtk": 434
}
}
Provayder müxtəlifliyinin izlənməsi
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/analytics/diversity |
Şennon entropiyasına əsaslanan müxtəliflik izləməsi: provayderlər üzrə paylanmanı ölçməklə vahid nasazlıq nöqtələrinin qarşısını alır |
Cavab nümunəsi:
{
"window": "24h",
"shannonEntropy": 2.45,
"maxEntropy": 3.17,
"diversityRatio": 0.77,
"providerUsage": {
"openai": 0.4,
"anthropic": 0.25,
"google": 0.2,
"kiro": 0.15
},
"warnings": ["OpenAI accounts for 40% of traffic — consider diversifying"]
}
Autentifikasi: İdarəetmə sessiyası və ya idarəetmə əhatəli API açarı tələb olunur.
Administrator Əməliyyatları
Əməliyyatların idarə edilməsi üçün yalnız administratorlara açıq son nöqtələr.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/admin/concurrency |
Cari paralellik limitlərini oxuyun (qlobal + hər provayder üzrə) |
| POST | /api/admin/concurrency |
Paralellik limitlərini yeniləyin — sorğu gövdəsi: {global?: number, perProvider?: Record<string, number>} |
Autentifikasiya: Administrator səlahiyyətli idarəetmə sessiyası tələb olunur.
CLI Alətlərinin İdarə Edilməsi
OmniRoute ilə inteqrasiya olunan CLI alətlərini (antigravity, chipotle, commandCode, devin-cli və s.) idarə edin. Tam siyahı üçün Provayder Arayışına baxın.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/cli-tools/all-statuses |
Bütün CLI alətlərinin statusu (quraşdırılıb-quraşdırılmaması, versiya, son görülmə vaxtı) |
| GET | /api/cli-tools/status |
Bir CLI aləti üçün ətraflı status (?tool= sorğusu) |
| POST | /api/cli-tools/apply |
Alətin yaradılmış konfiqurasiyasını yazın (dryRun önizləmə təqdim edir; konteynerləşdirildikdə 422 + containerEphemeralTarget; migration köhnə Codex YAML-ını qeyd edir) |
| GET | /api/cli-tools/backups |
CLI aləti konfiqurasiyalarının ehtiyat nüsxələrini siyahılayın |
| POST | /api/cli-tools/backups |
Bütün CLI aləti konfiqurasiyalarının ehtiyat nüsxəsini yaradın |
| POST | /api/cli-tools/backups |
Bərpa: sorğu gövdəsində {tool, backupId} olmaqla eyni son nöqtə həmin ehtiyat nüsxəni bərpa edir |
| GET | /api/cli-tools/antigravity-mitm |
Antigravity MITM proksisinin statusu ("antigravity-mitm" CLI aləti) |
| POST | /api/cli-tools/antigravity-mitm/alias |
antigravity-mitm aliaslarını konfiqurasiya edin |
Autentifikasiya: İdarəetmə sessiyası tələb olunur.
Agent Bacarıqları
Süni intellekt agentlərinin bacarıqlarını idarə edin (OpenAI-ın fərdi GPT-lərinə bənzər, lakin agentlər üçün).
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/agent-skills |
Bütün agent bacarıqlarını siyahılayın (daxili + fərdi) |
| GET | /api/agent-skills/[id] |
Konkret agent bacarığını əldə edin |
| POST | /api/agent-skills |
Fərdi agent bacarığı yaradın — sorğu gövdəsi: {name, description, prompt, model?, temperature?} |
| PUT | /api/agent-skills/[id] |
Fərdi agent bacarığını yeniləyin |
| DELETE | /api/agent-skills/[id] |
Fərdi agent bacarığını silin |
| GET | /api/agent-skills/[id]/raw |
Emal edilməmiş promptu + metadatanı əldə edin (icra edilmədən) |
| POST | /api/agent-skills/generate |
Təbii dil təsvirindən istifadə edərək süni intellekt vasitəsilə yeni bacarıq yaradın |
Autentifikasiya: İdarəetmə sessiyası və ya idarəetmə səlahiyyətli API açarı tələb olunur.
Keşin idarə edilməsi
Semantik keşi və əsaslandırma keşini idarə edin.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/cache |
Keşə ümumi baxış: qeydlərin ümumi sayı, keşə düşmə nisbəti, diskdəki ölçü |
| GET | /api/cache/entries |
Keşlənmiş qeydlərin siyahısı (səhifələmə ilə) |
| DELETE | /api/cache/entries |
Keş qeydlərini silin (sorğu parametrlərinə görə filtrləyin) |
| GET | /api/cache/stats |
Ətraflı keş statistikası (hər provayder və hər model üzrə) |
| GET | /api/cache/reasoning |
Əsaslandırma keşinin statusu (əsaslandırmanın təkrar icrası üçün) |
| DELETE | /api/cache/reasoning |
Əsaslandırma keşini təmizləyin — sorğu parametrləri: ?toolCallId=<id> (tək), ?provider=<p> və ya parametrsiz (hamısı) |
Autentifikasiya: İdarəetmə sessiyası tələb olunur.
Yaddaş sistemi
Davamlı yaddaşı (FTS5 + vektor yerləşdirmələri) idarə edin.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/memory |
Yaddaş qeydlərini sadalayın (əhatə dairəsi, növ və axtarış sorğusuna görə filtrləyin) |
| POST | /api/memory |
Yeni yaddaş qeydi yaradın — gövdə: {scope, type, content, metadata?} |
| GET | /api/memory/[id] |
Konkret yaddaş qeydini əldə edin |
| PUT | /api/memory/[id] |
Yaddaş qeydini yeniləyin |
| DELETE | /api/memory/[id] |
Yaddaş qeydini silin |
| GET | /api/memory?q= |
Yaddaşda axtarış edin (FTS5 + vektor) — statistika eyni cavaba daxildir |
Autentifikasiya: İdarəetmə sessiyası və ya idarəetmə əhatəli API açarı tələb olunur.
Vebhuklar
Hadisələr üçün vebhuk abunəliklərini idarə edin.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/webhooks |
Bütün vebhuk abunəliklərini sadalayın |
| POST | /api/webhooks |
Vebhuk abunəliyi yaradın — gövdə: {url, events[], secret?, active?} |
| GET | /api/webhooks/[id] |
Konkret vebhuk abunəliyini əldə edin |
| PUT | /api/webhooks/[id] |
Vebhuk abunəliyini yeniləyin |
| DELETE | /api/webhooks/[id] |
Vebhuk abunəliyini silin |
| GET | /api/webhooks/[id]/deliveries |
Vebhuk üçün çatdırılma tarixçəsini sadalayın (uğurlu/uğursuz əməliyyat jurnalı) |
| POST | /api/webhooks/[id]/test |
Vebhuka sınaq hadisəsi göndərin |
Autentifikasiya: İdarəetmə sessiyası tələb olunur.
Hadisə növlərinin tam siyahısı üçün Vebhuklar çərçivəsinə baxın.
Bacarıqlar Çərçivəsi
Bacarıqları (agent əsaslı genişləndirmələr çərçivəsini) idarə edin.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/skills |
Bütün quraşdırılmış bacarıqları (daxili + fərdi) siyahıya alın |
| POST | /api/skills/install |
Lokal yoldan və ya URL-dən bacarıq quraşdırın |
| DELETE | /api/skills/[id] |
Bacarığı silin |
| PUT | /api/skills/[id] |
Bacarığı aktivləşdirin və ya deaktiv edin — gövdə: {enabled?: boolean, mode?: "on" | "off" | "auto"} |
| POST | /api/skills/executions |
Bacarığı icra edin — gövdə: {skillName, apiKeyId, input?, sessionId?} |
| GET | /api/skills/executions |
Bütün bacarıqlar üçün icra tarixçəsini siyahıya alın (?apiKeyId= ilə filtrləyin) |
Autentifikasiya: İdarəetmə sessiyası və ya idarəetmə əhatəli API açarı tələb olunur.
Tam təfərrüatlar üçün Bacarıqlar Çərçivəsinə baxın.
Plaginlər
OmniRoute plaginlərini (üçüncü tərəf genişləndirmələrini) idarə edin.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/plugins |
Quraşdırılmış plaginləri siyahıya alın |
| POST | /api/plugins/marketplace/install |
Marketpleysdən plagin quraşdırın |
| DELETE | /api/plugins/[name] |
Plagini silin |
| POST | /api/plugins/[name]/activate |
Plagini aktivləşdirin |
| POST | /api/plugins/[name]/deactivate |
Plagini deaktiv edin |
| GET | /api/plugins/[name]/config |
Plagin konfiqurasiyasını əldə edin |
| PUT | /api/plugins/[name]/config |
Plagin konfiqurasiyasını yeniləyin |
Autentifikasiya: İdarəetmə sessiyası tələb olunur.
Tam təfərrüatlar üçün Plaginlər Çərçivəsinə baxın.
Kölgə Marşrutlaşdırması
Provayderlərin kölgə / A-B müqayisəsi müstəqil REST interfeysi deyil — o, kombinə edilmiş marşrutlaşdırma vasitəsilə konfiqurasiya edilir (baxın: Avtomatik Kombinasiya). Hər kombinasiya üzrə müqayisə metrikləri GET /api/combos/metrics vasitəsilə təqdim olunur.
Qoruyucu Mexanizmlər
İcra mühitinin qoruyucu mexanizmlərini (şəxsi identifikasiya məlumatlarının aşkarlanması, prompt inyeksiyasının aşkarlanması, görüntü körpülənməsi) yoxlayın. Qoruyucu mexanizmlər hər sorğuda işə düşür; hər çağırış üzrə imtina x-omniroute-disabled-guardrails sorğu başlığı vasitəsilə həyata keçirilir — daimi aktivləşdirmə/deaktivləşdirmə interfeysi yoxdur.
| Metod | Yol | Təsvir |
|---|---|---|
| GET | /api/guardrails |
Qeydiyyatdan keçmiş qoruyucu mexanizmləri və onların statusunu (ad / aktivlik / prioritet) siyahıya alın |
| POST | /api/guardrails/test |
Çağırışdan əvvəlki konveyeri nümunə giriş üzərində sınaq rejimində işlədin — gövdə: {input, disabledGuardrails?} |
Autentifikasiya: İdarəetmə sessiyası tələb olunur.
Tam təfərrüatlar üçün Təhlükəsizlik > Qoruyucu Mexanizmlərə baxın.
Autentifikasiya
Dörd etimadnamə ailəsi (idarəetmə paneli sessiyası, lokal CLI tokeni, oma_live_… Giriş Tokeni, idarəetmə əhatəli API açarı) və onların inferensiya açarlarından necə fərqləndiyi haqqında məlumat üçün İdarəetmə Autentifikasiyası bölməsinə baxın.
- İdarəetmə paneli marşrutları (
/dashboard/*)auth_tokenkukisindən istifadə edir - Giriş saxlanılmış parol heşindən istifadə edir; ehtiyat variant kimi
INITIAL_PASSWORDistifadə olunur requireLoginparametri/api/settings/require-loginvasitəsilə aktiv və ya deaktiv edilə bilərREQUIRE_API_KEY=trueolduqda/v1/*marşrutları istəyə bağlı olaraq Bearer API açarı tələb edir- Bu arayışda “idarəetmə tokeni” / “idarəetmə əhatəli API açarı” həmin təlimatda göstərilən ailələrdən birini ifadə edir — ayrıca, müəyyən edilməmiş əlavə məxfi məlumat növünü deyil
Uyğunluğu pozan dəyişiklik (v3.8.0) —
/api/v1/agents/tasks/*və gözləmə müddətinin idarə edilməsi son nöqtələri artıq idarəetmə autentifikasiyası (idarəetmə panelininauth_tokenkukisi və ya idarəetmə əhatəli API açarı) tələb edir. Əvvəllər bu marşrutları autentifikasiya olmadan çağıran klientlər401 Unauthorizedcavabı alacaqlar.588a0333(fix(auth): agent və gözləmə müddəti API-ləri üçün idarəetmə autentifikasiyası tələb et) kommitinə baxın.