Files
OmniRoute/docs/i18n/uz/docs/reference/API_REFERENCE.md
Diego Rodrigues de Sa e Souza 58f88a83e4 feat(i18n): 7 new locales — Hausa, Yoruba, Igbo, Amharic, Uzbek, Georgian, Armenian (66 locales) (#13727)
Batch 3 (last) of the locale-expansion plan: ha, yo, ig, am, uz, ka, hy on every surface — dashboard catalog, docs mirror (22-file core + llm.txt + CHANGELOG), CLI catalog, README flag block, locale tables and 🌐 language bars. Also closes the key gap the batch-1 (43 keys) and batch-2 (10 keys) catalogs carried since their base merges, fixes the Igbo "Model" copy and allowlists the Uzbek cognate. Translation-ratio baseline covers 65 locales.

⚠️ base-red inherited: #12732
2026-09-15 09:50:01 -03:00

128 KiB
Raw Blame History

API_REFERENCE (Oʻzbekcha)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 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 · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW



title: "API maʼlumotnomasi" version: 3.8.51 lastUpdated: 2026-08-31

API maʼlumotnomasi

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 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 · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW

OmniRoute API uchun asosiy maʼlumotnoma. Unda ommaviy /v1 interfeysi va eng koʻp ishlatiladigan boshqaruv endpointlari yoritilgan; mashina oʻqiy oladigan docs/openapi.yaml fayli hamda src/app/api/ ichidagi marshrutlar daraxti toʻliq manbalar hisoblanadi.


Mundarija


Chat yakunlashlari

POST /v1/chat/completions
Authorization: Bearer your-api-key
Content-Type: application/json

{
  "model": "cc/claude-opus-4-6",
  "messages": [
    {"role": "user", "content": "Write a function to..."}
  ],
  "stream": true
}

Maxsus sarlavhalar

Sarlavha Yoʻnalish Tavsif
X-OmniRoute-No-Cache Soʻrov Keshni chetlab oʻtish uchun true qilib belgilang
x-omniroute-no-memory Soʻrov Ushbu soʻrov uchun xotira va koʻnikmalar kiritilishini oʻtkazib yuborish maqsadida true qilib belgilang (no-cache xatti-harakatini takrorlaydi; har bir chaqiruvdagi token/xarajat yukini kamaytiradi)
X-OmniRoute-Progress Soʻrov Jarayon hodisalarini olish uchun true qilib belgilang
X-Session-Id Soʻrov Tashqi sessiya yaqinligi uchun biriktirilgan sessiya kaliti
x_session_id Soʻrov Pastki chiziqli variant ham qabul qilinadi (toʻgʻridan-toʻgʻri HTTP)
X-OmniRoute-Session-Id Soʻrov Chaqiruvchi taqdim etgan sessiya/suhbat tegi (xotiraga ham uzatiladi). Mavjud boʻlganda, har bir sessiya boʻyicha xarajatlarni aniqlash uchun call_logs.session_tag maydoniga aynan oʻz holicha saqlanadi (#8249) — mavjud boʻlmaganda hech qachon sunʼiy yaratilmaydi
Idempotency-Key Soʻrov Takrorlarni bartaraf etish kaliti (5 soniyalik oyna)
X-Request-Id Soʻrov Muqobil takrorlarni bartaraf etish kaliti
X-OmniRoute-Cache Javob HIT yoki MISS (oqimsiz rejimda)
X-OmniRoute-Idempotent Javob Takror bartaraf etilgan boʻlsa, true
X-OmniRoute-Progress Javob Jarayon kuzatuvi yoqilgan boʻlsa, enabled
X-OmniRoute-Session-Id Javob OmniRoute tomonidan foydalanilgan amaldagi sessiya IDsi
X-OmniRoute-Request-Id Javob Soʻrovlarni bogʻlash IDsi (maʼlum boʻlganda)
X-OmniRoute-Version Javob OmniRoute yigʻilmasi versiyasi (har doim mavjud)
X-OmniRoute-Cost-Saved Javob HIT holatida kesh tufayli tejalgan USD miqdori (faqat keshdan topilgan holatlarda)
X-OmniRoute-Decision Javob Marshrutlash izi: strategy=<name>; provider=<alias>; latency_ms=<n> (<name> — kombinatsiya strategiyasi yoki kombinatsiyasiz soʻrov uchun single) — yakunlash javoblarida har doim mavjud

Nginx eslatmasi: agar pastki chiziqli sarlavhalarga (masalan, x_session_id) tayansangiz, underscores_in_headers on; sozlamasini yoqing.

Xarajat telemetriyasi sarlavhalari: oqimsiz muvaffaqiyatli javoblarda X-OmniRoute-* xarajat telemetriyasi toʻplami ham mavjud — X-OmniRoute-Response-Cost (USD, verguldan keyin qatʼiy 10 ta raqam; bepul/narxi belgilanmagan holatlar uchun 0.0000000000), X-OmniRoute-Tokens-In / X-OmniRoute-Tokens-Out, X-OmniRoute-Model, X-OmniRoute-Provider, X-OmniRoute-Latency-Ms, X-OmniRoute-Cache-Hit va X-OmniRoute-Fallback-Attempts (faqat > 0 boʻlganda), shuningdek, X-OmniRoute-Request-Id va X-OmniRoute-Version. Bular chat yakunlashlari, /v1/responses, /v1/messages va media endpointlari/v1/embeddings, /v1/images/generations, /v1/audio/speech, /v1/audio/transcriptions, /v1/rerank, /v1/videos/generations, /v1/music/generations va /v1/moderations (xarajati har doim 0) tomonidan chiqariladi. Narxlash mavjud boʻlsa, media xarajati har bir modallik boʻyicha (har bir rasm, soniya, belgi yoki qidiruv birligi uchun) hisoblanadi, aks holda 0 boʻladi (xatoda davom etish).

Keshga tegish xarajati semantikasi: semantik keshga TEGISH yuz berganda (X-OmniRoute-Cache-Hit: true) yuqori oqimga hech qanday chaqiruv amalga oshirilmaydi, shuning uchun X-OmniRoute-Response-Cost qiymati 0.0000000000 boʻladi (keshdagi natijani taqdim etishning qoʻshimcha xarajati). Dastlabki/yuzaga kelishi mumkin boʻlgan xarajat X-OmniRoute-Cost-Saved orqali alohida koʻrsatiladi. Hisob-kitob isteʼmolchilari X-OmniRoute-Response-Cost qiymatlarini jamlashi kerak (keshga tegishlar hech qanday xarajat qilmaydi); kesh tahlillari esa X-OmniRoute-Cost-Saved qiymatlarini umumlashtirishi mumkin.

Eksklyuziv boshqariladigan seans ijaralari

Eksklyuziv boshqariladigan seans ijarasi ixtiyoriy, mijozga bogʻliq boʻlmagan marshrutlash kelishuvidir: bitta faol egasi bitta mos OmniRoute ulanishini egallaydi. U modelni ijaraga bermaydi, OAuth talab qilmaydi, muayyan mijozni aniqlamaydi va muayyan provayderni talab qilmaydi.

Autentifikatsiya qiluvchi API kaliti lease:exclusive doirasiga va aniq koʻrsatilgan, boʻsh boʻlmagan allowedConnections roʻyxatiga ega boʻlishi kerak. Maʼlumotlar bazasidagi oʻzgartirish chegarasi kalit yaratilganda va qisman yangilanganda ikkala maydonning birgalikda mavjud boʻlishini taʼminlaydi.

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"}

Muvaffaqiyatli egallash, yangilash va boʻshatish javoblarida vaqt belgilari, state va aniq musbat generation koʻrsatiladi, ammo tanlangan ulanish yoki hisob maʼlumotlari hech qachon oshkor qilinmaydi. Yangilash va boʻshatishda avlod JSON tanasida beriladi:

{ "action": "renew", "generation": 1 }
{ "action": "release", "generation": 1, "reason": "OWNER_EXIT" }

Faol ijara egasi oʻzining joriy bogʻlanishi uchun maxfiylikni saqlovchi koʻrsatish metamaʼlumotlarini aniq soʻrashi mumkin:

{ "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"
  }
}

Bu ixtiyoriy holat amali bitta maʼlumotlar bazasi tranzaksiyasi ichida shaffof boʻlmagan egasi, autentifikatsiya qilingan boshqariladigan API kaliti va aniq faol avlod bilan himoyalanadi. displayName faqat sozlangan ulanish nomining chetlari kesilgan koʻrinishidir; xavfsiz sozlangan nom mavjud boʻlmaganda u null boʻladi. OmniRoute hech qachon uning oʻrniga elektron pochta manzili yoki yaratilgan hisob identifikatorini qoʻymaydi. Provayder qiymati maxfiy boʻlmagan koʻrsatish yorligʻi boʻlib, hech qachon yaratilgan mos provayder identifikatori boʻlmaydi. Hisob maʼlumotlari, tokenlar, cookie fayllari, xom ulanish yoki API kaliti identifikatorlari, egasi xeshlari, himoyalash sirlari va ichki marshrutlash maʼlumotlari chiqarib tashlanadi.

Notoʻgʻri kalit, notoʻgʻri egasi, eskirgan avlod, mavjud boʻlmagan, muddati tugagan, boʻshatilgan va bekor qilingan qidiruvlarning barchasi ulanish metamaʼlumotlarisiz bir xil 409 LEASE_FENCE_STALE xatosini qaytaradi. Sigʻimni kutish javobini olgan mijozda tekshirish uchun faol bogʻlanish boʻlmaydi. Marshrutlash faol ijarani boshqa ulanishga oʻtkazganda, oʻsha avlod haqiqiyligicha qoladi va holat atomar tarzda eski bogʻlanishni emas, yangi bogʻlanishni qaytaradi. Mavjud mijozlar oʻzgarishsiz qoladi, chunki egallash, yangilash, boʻshatish va kutish javoblari avvalgi shakllarini saqlab qoladi.

Bu server kelishuvi standart OpenAI Codex /status xatti-harakatini oʻzgartirmaydi. Standart Codex hozirda oʻzining model provayderi va ichki autentifikatsiya/hisob holatini bildiradi, ammo ixtiyoriy maxsus provayder hisobi metamaʼlumotlarini koʻrsatmaydi; keyingi mijoz integratsiyasi ushbu amalni chaqirishi va connection.displayName qanday koʻrsatilishini hal qilishi kerak.

Shundan soʻng har bir boshqariladigan inferensiya soʻrovi ikkala boshqaruv sarlavhasini ham yuboradi:

X-OmniRoute-Lease-Owner: vlo_<43-base64url-characters>
X-OmniRoute-Lease-Generation: 1

Aniq egasi, avlod, faol ulanish va autentifikatsiya qilingan API kaliti har bir qoʻllab-quvvatlanadigan yuqori oqim urinishidan bevosita oldin himoyalanadi. Egasi va avlodni boshqa kalit bilan takroran ishlatish, hatto ushbu kalit ayni ulanishga ruxsat bersa ham, muvaffaqiyatsiz tugaydi. Xom egalar saqlanmaydi, jurnalga yozilmaydi, soʻrov oniy nusxasida saqlab qolinmaydi va yuqori oqimga uzatilmaydi.

Vaqtinchalik toʻqnashuv HTTP 429 javobini Retry-After bilan va quyidagicha qaytaradi:

{
  "state": "WAITING_FOR_CAPACITY",
  "error": { "type": "lease_error", "code": "LEASE_CAPACITY_UNAVAILABLE" },
  "reason": "NO_FREE_ELIGIBLE_CONNECTION",
  "retryAfter": 30
}

Bu javob faqat oddiy mos ulanishlar toʻplami boʻsh boʻlmaganini va har bir boʻsh nomzod boshqa egaga tegishli faol ijara tomonidan egallanganini anglatadi. Qoʻllab-quvvatlanmaydigan modellar/provayderlar, siyosat nomuvofiqligi, kutish davri, kvota, sogʻliq holati va boshqa odatiy moslik xatolari mavjud OmniRoute javoblarini saqlab qoladi.

x-omniroute-compression

Har bir soʻrov uchun siqish rejasini qayta belgilash. Eng yuqori ustuvorlikka ega — marshrutlash kombinatsiyasi qayta belgilashidan, faol profildan, avtomatik ishga tushirishdan va paneldagi Default qiymatidan ustun turadi. Qiymatlar:

Qiymat Taʼsiri
off Ushbu soʻrov uchun siqish qoʻllanmaydi.
default Paneldan olingan Default profil (faol profilni eʼtiborsiz qoldiradi).
engine:<id> Yoqilganida bitta mexanizm, masalan, engine:rtk.
<combo> Avval nomi (harf registriga bogʻliq boʻlmagan holda), soʻng identifikatori boʻyicha moslashtiriladigan nomlangan kombinatsiya.

Izohlar:

  • Nomaʼlum qiymatlar eʼtiborsiz qoldiriladi (soʻrov hech qachon rad etilmaydi); aniqlash odatiy operator ustuvorligi boʻyicha davom etadi.
  • Agar bir nechta kombinatsiya bir xil nomga ega boʻlsa, deterministik moslik uchun kombinatsiya id qiymatini yuboring.
  • Nomi off yoki default boʻlgan kombinatsiyani nomi orqali tanlab boʻlmaydi (bu kalit soʻzlar avval talqin qilinadi); bunday kombinatsiyaga uning identifikatori orqali murojaat qiling.
  • Asosiy siqish kaliti qatʼiy toʻsiqdir: siqish global miqyosda oʻchirilgan boʻlsa, bu sarlavha uni yoqa olmaydi.

Qoʻllangan reja javob sarlavhasida qaytariladi:

X-OmniRoute-Compression: <mode>; source=<source>

bu yerda <source> quyidagilardan biri: request-header, routing-override, active-profile, auto-trigger, default yoki off.


Embeddinglar

POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json

{
  "model": "nebius/Qwen/Qwen3-Embedding-8B",
  "input": "The food was delicious"
}

Mavjud provayderlar: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA, OpenRouter, Jina AI.

Katalog identifikatorlari provider/model formatida (misol: jina-ai/jina-embeddings-v5-omni-small). Roʻyxatga olish reyestrida mavjud boʻlgan prefikssiz Jina model identifikatorlari (masalan, jina-embeddings-v5-text-small, jina-reranker-v3.5) ham aniqlanadi. Jina embed/rerank/classify/segment avval boshqaruv panelidagi jina-ai hisob maʼlumotlaridan foydalanadi; JINA_AI_API_KEY faqat boshqaruv paneli kaliti mavjud boʻlmaganda zaxira variant hisoblanadi. jina-reader kartasi faqat Reader / r.jina.ai uchun (POST /v1/web/fetch) moʻljallangan va hech qachon embedding yoki qayta tartiblash xizmatini koʻrsatmaydi.

Multimodal qoʻllab-quvvatlashni eʼlon qilgan reyestr modellari provayderga bogʻliq boʻlmagan 32 tagacha tuzilmaviy elementni ham qabul qiladi. Media element turlari: text, image, audio, video va document. Ularning media source maydoni {"type":"url","url":"https://..."} yoki {"type":"base64","data":"...","media_type":"..."} koʻrinishida boʻladi.

Jina v5 Omni (jina-ai/jina-embeddings-v5-omni-small, jina-ai/jina-embeddings-v5-omni-nano va jina-ai/jina-embeddings-v5-omni → omni-small oilaviy taxallusi) Jinaʼning mahalliy EmbeddingsV5Request hujjatlarini ham qabul qiladi va ularni https://api.jina.ai/v1/embeddings manziliga oʻzgartirmasdan uzatadi:

{
  "model": "jina-ai/jina-embeddings-v5-omni-small",
  "task": "retrieval.query",
  "normalized": true,
  "input": [
    { "text": "a red bicycle" },
    { "image": "https://example.com/bike.png" },
    {
      "content": [{ "text": "caption" }, { "image": "data:image/png;base64,..." }]
    }
  ]
}

Mahalliy { image | audio | video | pdf } qiymatlari ochiq HTTPS URL, data: URI yoki xom base64 boʻlishi mumkin. OmniRoute bu obyektlarni satrga aylantirmaydi yoki mahalliy tasvir URL manzillarini yuklab olmaydi — ochiq mediani Jina oʻzi oladi. Qoʻshimcha Jina maydonlari (task, normalized, truncate, embedding_type) uzatiladi. Faqat matn bilan ishlaydigan Jina SKUʼlari matn boʻlmagan hujjatlarni hamon rad etadi.

Xavfsizlik va uzatish cheklovlari:

  • Masofaviy media URL manzillari ochiq HTTPS boʻlishi shart. Kanonik {type,source:url} elementlari server tomonida yuklab olinadi (yoʻnaltirishlarni qayta tekshirish, vaqt chegarasi, hajm cheklovlari, ochiq DNS, ulanishni mahkamlash) va provayder chaqiruvidan oldin ichki maʼlumot sifatida joylashtiriladi. Jinaʼga xos {image:"https://..."} elementlari xuddi shu ochiq HTTPS tekshiruvidan soʻng oʻzgartirmasdan uzatiladi; URL manzilini Jina yuklab oladi.
  • Ichki base64 media hajmi har bir element uchun dekodlanganda 8 MiB va butun soʻrov boʻyicha dekodlanganda 16 MiB bilan cheklangan.

Provayder uchun tarjima (kanonik elementlar hech qachon oʻzgartirmasdan uzatilmaydi):

  • Jina multimodal modellari: har bir yuqori darajadagi element ichki media uchun data URIʼlardan foydalangan holda modal kalitli bitta obyektga (text / image / audio / video / pdf) aylanadi; har bir yuqori darajadagi element uchun bitta vektor.
  • Gemini Embedding 2 oilasi: yuqori darajadagi bitta massiv content.parts (text yoki inline_data) bilan yagona mahalliy models/{model}:embedContent soʻroviga aylanadi.
  • Aniq modallik metamaʼlumotlarisiz nomaʼlum/dinamik modellar tuzilmaviy kiritishni HTTP 400 bilan rad etadi.
{
  "model": "jina-ai/jina-embeddings-v5-omni-small",
  "input": [
    { "type": "text", "text": "A red bicycle" },
    {
      "type": "image",
      "source": { "type": "url", "url": "https://example.com/bicycle.png" }
    }
  ],
  "dimensions": 512,
  "encoding_format": "float"
}

Qoʻllab-quvvatlanmaydigan model/modallik kombinatsiyalari elementni majburan oʻzgartirish oʻrniga HTTP 400 qaytaradi. Eski satr/token soʻrovlaridagi kiritishga aloqador boʻlmagan kengaytma maydonlari oʻzgartirmasdan uzatilishda davom etadi.

# Barcha embedding modellarini roʻyxatlash
GET /v1/embeddings

Tasvir yaratish

POST /v1/images/generations
Authorization: Bearer your-api-key
Content-Type: application/json

{
  "model": "openai/gpt-image-2",
  "prompt": "Togʻlar uzra goʻzal quyosh botishi",
  "size": "1024x1024"
}

Mavjud provayderlar: OpenAI (GPT Image 2), xAI (Grok Image), Together AI (FLUX), Fireworks AI, Nebius (FLUX), Hyperbolic, NanoBanana, OpenRouter, SD WebUI (lokal), ComfyUI (lokal).

# Barcha tasvir modellarini roʻyxatlash
GET /v1/images/generations

Hujjat 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 OCR provayderini provider/model prefiksi orqali tanlaydi; faqat model identifikatori (masalan, mistral-ocr-latest) uning roʻyxatdan oʻtgan provayderiga moslashtiriladi, model koʻrsatilmasa esa sukut boʻyicha Mistral (mistral-ocr-latest) ishlatiladi. Roʻyxatdan oʻtgan provayderlar (open-sse/config/ocrRegistry.ts):

Provayder identifikatori Model identifikatori model qiymati Izohlar
mistral mistral-ocr-latest mistral/mistral-ocr-latest (yoki faqat mistral-ocr-latest) Sinxron — javob yagona yuqori oqim chaqiruvidan bevosita qaytariladi.
azure-document-intelligence prebuilt-read azure-document-intelligence/prebuilt-read Asinxron yuqori oqim (analyze + soʻrovnoma) — quyiga qarang.
vertex-deepseek-ocr deepseek-ocr-maas vertex-deepseek-ocr/deepseek-ocr-maas Sinxron, Vertex AI'ning openapi/chat/completions hamkor soʻnggi nuqtasi orqali — autentifikatsiya/URL uchun quyiga qarang.

Har uchala provayder ham bir xil Mistral shaklidagi tanada javob beradi:

{
  "pages": [{ "index": 0, "markdown": "# Ajratib olingan matn..." }],
  "model": "mistral-ocr-latest",
  "usage_info": { "pages_processed": 1 }
}

Azure Document Intelligence soʻrovnoma oqimi

Azure Document Intelligence'ning analyze API'si asinxron: dastlabki soʻrov tana oʻrniga Operation-Location sarlavhasini qaytaradi va natijani soʻrovnoma orqali tekshirish kerak. Ishlov beruvchi (open-sse/handlers/ocr.ts) ushbu URL'ni har soniyada, koʻpi bilan 30 marta tekshiradi, ok boʻlmagan soʻrovnoma javobi yoki "failed" holatida darhol xatolik bilan yakunlanadi (tekshirishda davom etmaydi) va urinishlar limiti tugagach, operatsiya hali ham bajarilayotgan boʻlsa, 504 qaytaradi. Yakuniy Azure javobi chaqiruvchiga qaytarilishidan oldin Mistral ishlatadigan xuddi shu pages/markdown shakliga normallashtiriladi, shu sababli mijoz kodi provayder uchun alohida holatni koʻrib chiqishi shart emas.

Vertex AI DeepSeek OCR autentifikatsiyasi va soʻnggi nuqtani aniqlash

vertex-deepseek-ocr OmniRoute chat/tasvir trafigi uchun allaqachon qoʻllab-quvvatlaydigan ayni Vertex AI autentifikatsiyasidan qayta foydalanadi (open-sse/executors/vertex.ts): ulanishning API kaliti Service Account JSON hisob maʼlumotlari (JWT-bearer oqimi orqali qisqa muddatli OAuth kirish tokeniga almashtiriladi) yoki oʻz holicha ishlatiladigan, avvaldan yaratilgan OAuth kirish tokeni boʻlishi mumkin. Yuqori oqimdagi soʻnggi nuqta URL'i ulanish loyihasi va hududi asosida yaratiladigan Vertex'ning umumiy openapi/chat/completions hamkor soʻnggi nuqtasidir — aniq koʻrsatilgan providerSpecificData.project/providerSpecificData.region har doim ustunlikka ega; aks holda loyiha Service Account JSON'ining project_id qiymatidan olinadi va hudud sukut boʻyicha us-central1 boʻladi. Har ikkala aniqlash jarayoni ham open-sse/handlers/ocr.ts ichida (resolveVertexOcrAccessToken, resolveVertexOcrBaseUrl) bajariladi va handleOcr'ga yuborilishidan oldin src/app/api/v1/ocr/route.ts tomonidan ishlatiladi.


Modellar roʻyxati

GET /v1/models
Authorization: Bearer your-api-key

→ Barcha chat, embedding va tasvir modellari hamda kombinatsiyalarini OpenAI formatida qaytaradi

Model identifikatori prefikslari (?prefix=)

Aksariyat modellar provayder prefiksi ostida taqdim etiladi. Qaysi prefiks olinishi MODELS_CATALOG_PREFIX_MODE funksional bayrogʻi orqali boshqariladi va soʻrov parametri yordamida har bir soʻrov uchun alohida qayta belgilanishi mumkin — bu server miqyosidagi sozlamani boshqalar uchun oʻzgartirmasdan toza roʻyxat olishni istaydigan mijoz uchun foydalidir:

GET /v1/models?prefix=alias        # har bir model uchun bitta id — qisqa taxallus prefiksi
GET /v1/models?prefix=dual         # ikkala shakl (server standarti)
GET /v1/models?prefix=canonical    # faqat toʻliq provayder-id prefiksi
Rejim Chiqaradi Izohlar
dual cc/claude-sonnet-4-6 va claude/claude-sonnet-4-6 Standart. Har ikkala id ham bir xil modelga yoʻnaltiriladi; shakllardan birini kod ichida qatʼiy belgilagan mijoz konfiguratsiyalari ishlashda davom etishi uchun saqlangan. Katalog hajmini taxminan ikki baravar oshiradi.
alias cc/claude-sonnet-4-6 Har bir model uchun bitta yozuv. Alohida taxallusi boʻlmagan provayderlar ham oʻz yozuvini chiqaradi, shuning uchun hech narsa yoʻqolmaydi.
canonical claude/claude-sonnet-4-6 Har bir model uchun toʻliq provayder-id prefiksi ostida bitta yozuv. Alohida taxallusi boʻlmagan provayderlar (masalan, antigravity/…, agy/…) ham bu yerda yagona id sini chiqaradi, shuning uchun hech narsa yoʻqolmaydi.

dual rejimidagi nusxani soʻrov parametrisiz ham aniqlash mumkin: unda asosiy id ga ishora qiluvchi parent maydoni mavjud.

Model tanlagichini koʻrsatadigan mijozlar ?prefix=alias parametrini soʻrashi kerak — OmniCopilot VS Code kengaytmasi aynan shunday qiladi.

Fikrlashsiz model variantlari

Fikrlash imkoniyatiga ega Claude modellari uchun /v1/models, shuningdek, id si claude-3-omniroute-no-thinking/ prefiksi bilan boshlanadigan fikrlashsiz variantni ham taqdim etadi:

claude-3-omniroute-no-thinking/<provider>/<model>

Ushbu id ni tanlash (masalan, doimo thinking blokini biriktiradigan Claude Code konfiguratsiyasida) mulohaza yuritish oʻchirilgan holda haqiqiy <provider>/<model> modeliga qayta yoʻnaltiriladi — /v1/messages yoʻlida thinking:{type:"disabled"} qoʻllanadi yoki /v1/chat/completions yoʻlida reasoning/reasoning_effort maydonlari olib tashlanadi. Variant faqat fikrlashni qoʻllab-quvvatlaydigan va disabled qiymatini qabul qiladigan Claude oilasidagi modellar uchun roʻyxatga kiritiladi (shu sababli, masalan, disabled qiymatini rad etadigan faqat adaptiv modellar chiqarib tashlanadi). Operatorlar ModelSpec.noThinkingAlias orqali har bir model uchun variantni majburan yoqishi yoki oʻchirishi mumkin.


Provayder plagini manifesti

GET /api/v1/provider-plugin-manifest

Bifrost, CLIProxyAPI va kelajakdagi sidecar routerlari ishlatadigan JSON uchun xavfsiz provayder plagini manifestini qaytaradi. Javob TypeScript provayderlari reyestridan yaratiladi va ataylab OAuth mijoz sirlarini, ish vaqti muhiti qiymatlarini aniqlashni, ijrochi funksiyalarni, soʻrov sarlavhalarini hamda hisob maʼlumotlarini oʻz ichiga olmaydi.

Sidecar jarayondan tashqarida ishlaganda va open-sse/config/providerPluginManifestRegistry.ts faylini bevosita import qila olmaganda ushbu endpointdan foydalaning.


Moslik endpointlari

Metod Yoʻl 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 (tahrirlash/inpaint)
POST /v1/videos/generations OpenAI uslubidagi video yaratish
POST /v1/music/generations OpenAI uslubidagi musiqa yaratish
POST /v1/audio/transcriptions OpenAI Audio (STT)
POST /v1/audio/speech OpenAI TTS (audio tanasini qaytaradi)
POST /v1/rerank Cohere/Voyage uslubida qayta tartiblash
POST /v1/classify Jina tasniflash (api.jina.ai)
POST /v1/segment Jina segmentatori (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 katalog taxallusi
GET /api/v1/vscode/{token}/models OpenAI modellar taxallusi
POST /api/v1/vscode/{token}/chat/completions OpenAI tokenlashtirilgan taxallusi
POST /api/v1/vscode/{token}/responses OpenAI Responses tokenlashtirilgan taxallusi
POST /api/v1/vscode/{token}/api/chat Ollama tokenlashtirilgan taxallusi
GET /api/v1/vscode/{token}/api/tags Ollama teglarining tokenlashtirilgan taxallusi

Barcha POST yoʻnalishlari bir xil tuzilishga ega: Bearer your-api-key + Zod orqali tekshirilgan JSON tanasi (v1RerankSchema, v1ModerationSchema, v1AudioSpeechSchema va boshqalar; src/shared/validation/schemas.ts fayliga qarang). Sxema tekshiruvi muvaffaqiyatsiz boʻlsa, 4xx qaytariladi.

Authorization: Bearer ... sarlavhasini biriktira olmaydigan mijozlar uchun OmniRoute API kalitlarini URL orqali ham qabul qiladi: soʻrov satri mosligi (?token=..., ?apiKey=..., ?api_key=..., ?key=...) yoki quyida hujjatlashtirilgan maxsus /api/v1/vscode/{token}/... endpointlari orqali.

# Qayta tartiblash
POST /v1/rerank      { "model": "jina-ai/jina-reranker-v3.5", "query": "...", "documents": ["..."] }

# Jina tasniflash (Foundation API hisob maʼlumotlari)
POST /v1/classify    { "model": "jina-embeddings-v5-text-small", "input": ["..."], "labels": ["a", "b"] }

# Jina segmentatori
POST /v1/segment     { "content": "...", "return_chunks": true }

# Jina qidiruvi (s.jina.ai; provayder taxalluslari: jina-search, jina-ai, jina)
POST /v1/search      { "query": "...", "provider": "jina-search" }

# Moderatsiyalar
POST /v1/moderations { "model": "omni-moderation-latest", "input": "..." }

# TTS — audio/mpeg (yoki soʻralgan formatdagi) tanani qaytaradi
POST /v1/audio/speech { "model": "openai/tts-1", "input": "Hello", "voice": "alloy" }

# Rasmni tahrirlash (multipart)
POST /v1/images/edits  -F image=@input.png -F prompt="..." -F mask=@mask.png

# Video / musiqa yaratish (provayder prefiksli model identifikatori)
POST /v1/videos/generations { "model": "runway/gen-3", "prompt": "..." }
POST /v1/music/generations  { "model": "suno/v3.5",   "prompt": "..." }

Maxsus provayder yoʻnalishlari

POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations

Agar provayder prefiksi mavjud boʻlmasa, u avtomatik ravishda qoʻshiladi. Mos kelmaydigan modellar 400 qaytaradi.


Files API

Paketli kiritish/chiqarish va fayl maqsadiga kora yuklash uchun OpenAI bilan mos keluvchi fayllar endpointi.

Metod Yol Tavsif
POST /v1/files Faylni yuklash (multipart: file, purpose, expires_after[anchor], expires_after[seconds]) — maksimal hajm 512 MiB
GET /v1/files Autentifikatsiya qilingan API kaliti uchun fayllar royxatini olish
GET /v1/files/[id] Fayl metamalumotlarini olish
DELETE /v1/files/[id] Faylni ochirish
GET /v1/files/[id]/content Faylning xom mazmunini oqim tarzida qaytarish

Autentifikatsiya: Bearer API kaliti — fayllar getApiKeyRequestScope orqali har bir API kaliti doirasida ajratiladi.


Batches API

OpenAI bilan mos keluvchi paketli qayta ishlash.

Metod Yol Tavsif
POST /v1/batches Paket yaratish — sorov tanasi v1BatchCreateSchema orqali tekshiriladi (input_file_id, endpoint, completion_window)
GET /v1/batches Paketlar royxatini olish
GET /v1/batches/[id] Paket holati va request_countsni olish
DELETE /v1/batches/[id] Yakunlangan/muvaffaqiyatsiz paketni ochirish
POST /v1/batches/[id]/cancel Jarayondagi paketni bekor qilish

Autentifikatsiya: Bearer API kaliti. Paketlar har bir API kaliti doirasida ajratiladi.


Search API

Veb/qidiruv provayderlari uchun abstraksiya (Tavily, Brave, Exa, Serper va boshqalar).

Metod Yol Tavsif
GET /v1/search Sozlangan qidiruv provayderlari va ularning imkoniyatlari royxatini olish
POST /v1/search Qidiruv sorovini bajarish — sorov tanasi v1SearchSchema orqali tekshiriladi, keshlash/birlashtirishni qollab-quvvatlaydi
GET /v1/search/analytics Har bir provayder boyicha murojaatlar/kechikish/kesh statistikasi

Autentifikatsiya: Bearer API kaliti (extractApiKey + isValidApiKey). Qidiruv siyosati enforceApiKeyPolicy orqali qollanadi.


Web Fetch API

Sozlangan web-fetch provayderi (Firecrawl, Jina Reader, Tavily Extract, TinyFish Fetch, Nimble Extract) orqali URL manzilidan kontentni ajratib oling.

Metod Yoʻl Tavsif
POST /v1/web/fetch URL manzilini olish/qirib chiqish — soʻrov tanasi v1WebFetchSchema orqali tekshiriladi

Autentifikatsiya: Bearer API kaliti (extractApiKey + isValidApiKey). Siyosat enforceApiKeyPolicy orqali qoʻllanadi.

Kvotani hisobga oluvchi zaxira mexanizmi (#8297): aniq provider berilmaganida, pul (firecrawljina-readertavily-searchtinyfishnimble-search) qatʼiy ustuvorlik tartibida (birinchisini toʻldirish) koʻrib chiqiladi — tezlik chekloviga uchragan, ammo sozlangan provayder soʻrovni darhol toʻxtatish oʻrniga oʻtkazib yuboriladi va qayta urinish mumkin boʻlgan/kvota bilan bogʻliq yuqori oqim xatosi (HTTP 429 har doim; Firecrawl/Tavily/TinyFish kvota turidagi bepul tariflari uchun 402/403 — Jina Reader uchun emas va oddiy 400 notoʻgʻri soʻrovi uchun hech qachon emas) soʻrov vaqtida hali sinab koʻrilmagan, hisob maʼlumotlari mavjud keyingi provayderga oʻtadi. Puldagi barcha provayderlar tugagach, endpoint avvalgi umumiy 400 oʻrniga yagona 429 javobini (Retry-After sarlavhasi bilan) qaytaradi. Aniq provider soʻralganda, yashirin zaxira mexanizmi mavjud emas — tezlik chekloviga uchragan yoki ishlamay qolgan aniq provayder oʻz xatosini qaytaradi (tezlik cheklangan boʻlsa 429, aks holda yuqori oqim statusi).


WebSocket orqali oqimli uzatish

GET /v1/ws?handshake=1

WebSocket ulanishini yangilash uchun qoʻl siqish jarayonini tekshiradi va simli protokolning namunaviy xabarlarini (request, cancel) qaytaradi. Haqiqiy WS freymlari Next.js marshrutlar jadvalidan tashqaridagi biriktirilgan WS serveri tomonidan qayta ishlanadi.

Autentifikatsiya: Qoʻl siqish vaqtida Bearer API kaliti.

WebSocket orqali Responses API (faqat codex)

# HTTP API bilan bir xil host:port (standart 20128); ulanishni yangilang:
wscat -c "ws://localhost:20128/v1/responses?api_key=<OMNIROUTE_API_KEY>"
# (yoki: -H "Authorization: Bearer <OMNIROUTE_API_KEY>")

# Birinchi freym response.create BOʻLISHI SHART:
{ "type": "response.create", "model": "gpt-5.5", "input": [ { "role": "user", "content": "hi" } ] }

Responses-API-over-WebSocket proksisi faqat codex bilan ishlash uchun ulangan (ChatGPT bekendi). U API/boshqaruv paneli bilan bir xil portda /v1/responses, /responses va /api/v1/responses yoʻllarini tinglaydi. Birinchi response.create freymida u ichki codex-responses-ws koʻprigi orqali autentifikatsiya qiladi va tayyorlaydi, codex OAuth ulanishini tanlaydi hamda wreq-js transporti orqali wss://chatgpt.com/backend-api/codex/responses manziliga tunnel hosil qiladi. codex boʻlmagan modellar rad etiladi (codex_ws_provider_required). Kvota ulushiga asoslangan marshrutlash uchun model: "qtSd/<group>/codex/<model>" dan foydalaning. Quyidagi fayllarda amalga oshirilgan: app/server-ws.mjs + scripts/dev/responses-ws-proxy.mjs + src/app/api/internal/codex-responses-ws/route.ts.

Autentifikatsiya: Qoʻl siqish vaqtida Bearer API kaliti. Biriktirilgan HTTP server (server-ws.mjs) faol kirish nuqtasi boʻlishi kerak (app/server-ws.mjs mavjud boʻlsa, sukut boʻyicha shunday boʻladi).

Model identifikatori: oddiy ChatGPT identifikatoridan foydalaning (codex/ prefiksisiz)

OpenAI Codex CLI supports_websockets = true boʻlganda model nomini mijoz tomonida tekshiradi va codex/gpt-5.5 kabi provayder prefiksli identifikatorlarni rad etadi (The 'codex/gpt-5.5' model is not supported when using Codex with a ChatGPT account). Oddiy identifikatorni yuboring (masalan, gpt-5.5). OmniRoute koʻprigi faqat codex bilan ishlaydi, shuning uchun yuqori oqimga tunnel hosil qilishdan oldin oddiy identifikatorni codex modeli sifatida qayta aniqlaydi (resolveCodexWsModelInfo) — garchi oddiy gpt-5.5 HTTP orqali boshqa provayderga marshrutlanishi mumkin boʻlsa ham.

OpenAI Codex CLIʼni sozlash

~/.codex/config.toml fayliga WebSocket qoʻllab-quvvatlanadigan maxsus provayderni qoʻshish orqali Codex CLIʼni OmniRouteʼga yoʻnaltiring (mavjud konfiguratsiyaga tegmaslik uchun alohida CODEX_HOME dan foydalaning):

model = "gpt-5.5"                 # oddiy identifikator — "codex/gpt-5.5" EMAS
model_provider = "omniroute"

[model_providers.omniroute]
name = "OmniRoute (WS)"
base_url = "http://localhost:20128/v1"   # oxirida qiya chiziq boʻlmasin; WS URL avtomatik hosil qilinadi (ishlab chiqarishda https/wss dan foydalaning)
wire_api = "responses"                    # 2026-yil fevralidan beri qoʻllab-quvvatlanadigan yagona qiymat
supports_websockets = true                # Responses-over-WS transportini yoqadi
env_key = "OMNIROUTE_API_KEY"             # OmniRoute API kalitini saqlaydi (Bearer)
export OMNIROUTE_API_KEY=sk-...           # OmniRoute API kaliti (REQUIRE_API_KEY=false boʻlsa, istalgan kalit)
codex exec "Responda apenas: PONG"

CLI base_url + /responses ulanishini WebSocketʼga yangilaydi va OmniRoute uni tanlangan codex OAuth ulanishiga tunnellaydi. Mahalliy server bilan boshidan oxirigacha tekshirilgan: ChatGPT codex.rate_limits + response.created qaytaradi va yakuniy natijani oqim tarzida uzatadi.


Kvotalar va muammolar haqida xabar berish

Metod Yol Tavsif
GET /v1/quotas/check Royxatdan otgan kalitni berishdan oldin provider + accountId uchun kvotani dastlabki tekshirish
POST /v1/issues/report Kvota/kalit berishdagi xatolik haqida GitHubga xabar berish (GITHUB_ISSUES_REPO + token talab qilinadi)

Autentifikatsiya: Bearer API kaliti (isAuthenticated).


Mustaqil foydalanish (/api/usage/om-usage)

Har qanday API kaliti ozining foydalanish malumotlari va kvotalarini boshqaruv autentifikatsiyasisiz oqiy oladi. Bu mijoz (CLI, OmniCopilot paneli) kalit egasiga uning xarajatlarini korsatish uchun foydalanadigan endpointdir.

# Matnli korinish (tarixiy shartnoma — terminal uchun oddiy matn)
curl -H "Authorization: Bearer <your-api-key>" \
  http://localhost:20128/api/usage/om-usage

# Tuzilmaviy korinish — UI foydalanadigan format
curl -H "Authorization: Bearer <your-api-key>" \
  "http://localhost:20128/api/usage/om-usage?format=json"

Kalitda allowUsageCommand yoqilgan bolishi kerak (standart holatda ochiq — boshqaruv panelidagi API kalitlari menejeri uni har bir kalit uchun alohida yoqadi). U yoqilmagan bolsa, endpoint 403 javobini qaytaradi.

?format=json farqlanuvchi tuzilmani qaytaradi, shuning uchun chaqiruvchi rad etish javobidan hech qachon malumot maydonini oqimaydi. Muvaffaqiyatli holatda:

{
  "allowed": true,
  // faqat kalit har bir kalit uchun foydalanish limitlarini (kunlik/haftalik USD) yoqqanida mavjud boladi:
  "personal": {
    "dailySpentUsd": 1.25,
    "dailyLimitUsd": 5,
    "dailyResetAtIso": "…",
    "weeklySpentUsd": 8,
    "weeklyLimitUsd": 20,
    "weeklyResetAtIso": "…" /*  */,
  },
  // tanlangan provayder kvotasi surati yoki hali hech narsa keshlanmagan bolsa null:
  "provider": {
    "connectionId": "…",
    "provider": "claude",
    "plan": "…",
    "quotas": {/*  */},
  },
  // UI bir nechta provayderni yonma-yon korsatishi uchun har bir ulanishning surati:
  "providers": [
    { "connectionId": "…", "provider": "claude" /*  */ },
    { "provider": "codex" /*  */ },
  ],
}

Rad etilganda (401 notogri kalit / 403 ruxsat berilmagan) ayni marshrut { "allowed": false, "error": { "message": "…" } } javobini qaytaradi — mavjud, ammo bosh personal/provider (kalitga ruxsat berilgan, ammo hali hech qanday malumot olinmagan) rad etishdan farqli holat bolib, ularni faqat JSON korinishi farqlaydi.

Autentifikatsiya: chaqiruvchining isValidApiKey bilan tekshirilgan oz Bearer API kaliti — bu requireManagementAuth ortida qoladigan boshqaruv interfeysi (/api/keys/…) emas.


Semantik kesh

# Kesh statistikasini olish
GET /api/cache/stats

# Barcha keshlarni tozalash
DELETE /api/cache/stats

Javob namunasi:

{
  "semanticCache": {
    "memorySize": 42,
    "memoryMaxSize": 500,
    "dbSize": 128,
    "hitRate": 0.65
  },
  "idempotency": {
    "activeKeys": 3,
    "windowMs": 5000
  }
}

Kechikishga tasiri

Semantik keshdagi HIT javobni yuqori oqimdagi chaqiruvsiz keshdan uzatadi, shuning uchun xabar qilingan X-OmniRoute-Response-Latency deyarli nolga teng boladi (yuqori oqimdagi dastlabki kechikishdan qati nazar). Kechikishga sezgir mijozlar (unumdorlikni sinash, p50/p99 monitoringi) X-OmniRoute-Cache-Latency javob sarlavhasini tekshirishi kerak:

Qiymat Manosi
synthetic Javob keshdan uzatildi; kechikish yuqori oqimdagi haqiqiy vaqt emas
(mavjud emas) Javob yuqori oqimdagi haqiqiy chaqiruvdan olindi

Har bir kalit uchun keshni chetlab otish

API kalitlari cacheDefaultMode orqali semantik keshdan oqishni ochirishi mumkin:

Qiymat Xatti-harakat
legacy Keshning odatiy xatti-harakati (standart)
bypass Keshdan qidirishni butunlay otkazib yuborish; har doim yuqori oqimga murojaat qilish

Kalit yaratishda (POST /api/keys) ornating yoki (PATCH /api/keys/[id]) orqali yangilang:

{ "cacheDefaultMode": "bypass" }

Har bir sorov uchun chetlab otish

Har qanday sorov kalit sozlamalaridan qati nazar keshni chetlab otishi mumkin:

X-OmniRoute-No-Cache: true

Boshqaruv paneli va boshqarish

Boshqaruv yoʻnalishlari (/api/*, ommaviy autentifikatsiya/kirish bundan mustasno) oddiy inferens API kalitlari orqali avtorizatsiya qilinmaydi. Hisob maʼlumotlari oilalari, qamrovlar va curl misollari: Boshqaruv autentifikatsiyasi.

Autentifikatsiya

Soʻnggi nuqta Metod Tavsif
/api/auth/login POST Kirish
/api/auth/logout POST Chiqish
/api/settings/require-login GET/PUT Kirish talabini yoqish/oʻchirish

Provayderlarni boshqarish

Soʻnggi nuqta Metod Tavsif
/api/providers GET/POST Provayderlarni roʻyxatlash / yaratish
/api/providers/[id] GET/PUT/DELETE Provayderni boshqarish
/api/providers/[id]/test POST Provayder ulanishini sinash
/api/providers/[id]/models GET Provayder modellarini roʻyxatlash
/api/providers/validate POST Provayder konfiguratsiyasini tekshirish
/api/providers/bulk POST BITTA provayder uchun API kalitlarini ommaviy qoʻshish
/api/providers/import POST Tahlil qilingan CSV/JSON faylidan turli provayderlar ROʻYXATINI import qilish (#6836); har bir qator boʻyicha qisman xatolik natijalari
/api/provider-nodes* Turli Provayder tugunlarini boshqarish
/api/provider-models GET/POST/PATCH/DELETE Maxsus modellar (qoʻshish, yangilash, yashirish/koʻrsatish, oʻchirish)

OAuth jarayonlari

Soʻnggi nuqta Metod Tavsif
/api/oauth/[provider]/[action] Turli Provayderga xos OAuth jarayoni

Yoʻnaltirish va konfiguratsiya

Soʻnggi nuqta Metod Tavsif
/api/models/alias GET/POST Model taxalluslari
/api/models/catalog GET Provayder va tur boʻyicha barcha modellar
/api/combos* Turli Kombinatsiyalarni boshqarish
/api/keys* Turli API kalitlarini boshqarish
/api/pricing GET Modellar narxlari

Foydalanish va tahlil

Endpoint Metod Tavsif
/api/usage/history GET Foydalanish tarixi
/api/usage/logs GET Foydalanish jurnallari
/api/usage/request-logs GET Soʻrov darajasidagi jurnallar
/api/usage/[connectionId] GET Har bir ulanish boʻyicha foydalanish
/api/usage/token-limits GET/POST/DELETE Har bir API kaliti uchun token cheklovi byudjetlari
/api/usage/model-latency-stats GET Har bir provayder/model boʻyicha sirgʻaluvchi kechikish agregati (oʻrtacha/p50/p95/p99, muvaffaqiyat darajasi); filtrlar: windowHours/minSamples/maxRows/provider/model (#6873)
/api/usage/cache-health GET call_logs asosidagi prompt keshi holati xulosasi — yozish/oʻqish nisbati, yozish hajmining p50/p90/p99 taqsimoti, katta hajmli yozuvlar konsentratsiyasi, modellar boʻyicha taqsimot va healthy/degraded/thrash/no-data xulosasi; soʻrov parametrlari: range (1h|24h|7d|30d, standart 24h) va ixtiyoriy model (#8827)

Sozlamalar

Endpoint Metod Tavsif
/api/settings GET/PUT/PATCH Umumiy sozlamalar
/api/settings/proxy GET/PUT Tarmoq proksi konfiguratsiyasi
/api/settings/proxy/test POST Proksi ulanishini sinash
/api/settings/ip-filter GET/PUT Ruxsat etilgan/bloklangan IP manzillar roʻyxati
/api/settings/thinking-budget GET/PUT Fikrlash/mulohaza yuritish soʻrovini qayta yozish rejimi (oʻzgarishsiz uzatish / avtomatik olib tashlash / maxsus / moslashuvchan). Siqishdan mustaqil. THINKING_BUDGET.md fayliga qarang.
/api/settings/system-prompt GET/PUT Global tizim prompti
/api/settings/compression GET/PUT Global siqish konfiguratsiyasi
/api/settings/purge-request-history POST Soʻrov jurnali qatorlari va lokal chaqiruv jurnali artefaktlarini tozalash

Kontekst va siqish

Endpoint Metod Tavsif
/api/compression/preview POST off/lite/standard/aggressive/ultra/RTK/stacked siqishni oldindan korish
/api/compression/language-packs GET Mavjud Caveman til paketlarini royxatlash
/api/compression/rules GET Caveman qoidalari metamalumotlarini royxatlash
/api/context/caveman/config GET/PUT Cavemanga xos sozlamalar taxallusi
/api/context/rtk/config GET/PUT RTKga xos sozlamalar, jumladan maxsus filtrlar va xom chiqishni saqlash
/api/context/rtk/filters GET RTK filtrlar katalogi va maxsus filtr diagnostikasi
/api/context/rtk/test POST Matnli yuklama bilan RTK oldindan korish/sinovini bajarish
/api/context/rtk/raw-output/[id] GET Korsatkich identifikatori boyicha saqlangan, tahrirlangan xom chiqishni oqish
/api/context/combos GET/POST Siqish kombinatsiyalari royxati/yaratish
/api/context/combos/[id] GET/PUT/DELETE Siqish kombinatsiyasi tafsilotlari/yangilash/ochirish
/api/context/combos/[id]/assignments GET/PUT Siqish kombinatsiyalarini marshrutlash kombinatsiyalariga tayinlash
/api/context/analytics GET Siqish tahlili taxallusi

Monitoring

Endpoint Metod Tavsif
/api/sessions GET Faol seanslarni kuzatish
/api/rate-limits GET Har bir hisob uchun sorovlar tezligi cheklovlari
/api/monitoring/health GET Holat tekshiruvi + provayder xulosasi (catalogCount, configuredCount, activeCount, monitoredCount). Boshqaruv korinishi credentialHealthni oz ichiga oladi: sinov keshi skalyarlari, failed>0 bolganda failedConnections va staleDbNonOkCount (SQLitedagi yopishqoq test_status, olchov emas). MONITORING_GUIDE.mdga qarang.
/api/cache/stats GET/DELETE Kesh statistikasi / tozalash
/api/modality-bridge/stats GET Xotiradagi attempts, muvaffaqiyatlar/bridged, muvaffaqiyatsizliklar, keshga tushishlar, totalLatencyMs, latencySamples, namuna soniga asoslangan averageLatencyMs va oxirgi foydalanish vaqti (qayta ishga tushirilganda nolga tushadi; boshqaruv autentifikatsiyasi)
/api/modality-bridge/video/runtime GET Boshqaruv autentifikatsiyasi/sinovidan oldin qatiy ishonchli loopback tekshiruvi; tozalangan FFmpeg/ffprobe mavjudligi va versiyalari (saqlanmaydi)
/api/modality-bridge/video/extract POST Ichki autentifikatsiyalangan ishonchli loopback bayt brokeri; 50 MiB kirish, cheklangan navbat/32 MiB chiqish, sigim uchun 503, uzilish uchun 499, muddat tugashi uchun 504; ommaviy fayl yuklash APIsi emas

Zaxiralash va eksport/import qilish

Endpoint Metod Tavsif
/api/db-backups GET Mavjud zaxira nusxalarini roʻyxatlash
/api/db-backups PUT Qoʻlda zaxira nusxasini yaratish
/api/db-backups POST Muayyan zaxira nusxasidan tiklash
/api/db-backups/export GET Maʼlumotlar bazasini .sqlite fayli sifatida yuklab olish
/api/db-backups/import POST Maʼlumotlar bazasini almashtirish uchun .sqlite faylini yuklash
/api/db-backups/exportAll GET Toʻliq zaxira nusxasini .tar.gz arxivi sifatida yuklab olish

Bulut bilan sinxronlash

Endpoint Metod Tavsif
/api/sync/cloud Turli Bulut bilan sinxronlash amallari
/api/sync/initialize POST Sinxronlashni ishga tushirish
/api/cloud/* Turli Bulutni boshqarish

Tunnellar

Endpoint Metod Tavsif
/api/tunnels/cloudflared GET Boshqaruv paneli uchun Cloudflare Quick Tunnel oʻrnatilishi/ish holatini oʻqish
/api/tunnels/cloudflared POST Cloudflare Quick Tunnelʼni yoqish yoki oʻchirish (action=enable/disable)
/api/tunnels/ngrok GET Boshqaruv paneli uchun ngrok Tunnel ish holatini oʻqish
/api/tunnels/ngrok POST ngrok Tunnelʼni yoqish yoki oʻchirish (action=enable/disable)

CLI vositalari

Endpoint Metod Tavsif
/api/cli-tools/claude-settings GET Claude CLI holati
/api/cli-tools/codex-settings GET Codex CLI holati
/api/cli-tools/droid-settings GET Droid CLI holati
/api/cli-tools/openclaw-settings GET OpenClaw CLI holati
/api/cli-tools/runtime/[toolId] GET Umumiy CLI ish muhiti

CLI javoblari quyidagilarni oʻz ichiga oladi: installed, runnable, command, commandPath, runtimeMode, reason.

ACP agentlari

Endpoint Metod Tavsif
/api/acp/agents GET Holati bilan barcha aniqlangan agentlarni (ichki + maxsus) roʻyxatlash
/api/acp/agents POST Maxsus agent qoʻshish yoki aniqlash keshini yangilash
/api/acp/agents DELETE id soʻrov parametri boʻyicha maxsus agentni olib tashlash

GET javobi agents[] (id, nomi, ikkilik fayli, versiyasi, oʻrnatilganligi, protokoli, maxsusligi) va summary (jami, oʻrnatilgan, topilmagan, ichki, maxsus) maʼlumotlarini oʻz ichiga oladi.

Barqarorlik va tezlik cheklovlari

Endpoint Metod Tavsif
/api/resilience GET/PATCH Soʻrovlar navbati, ulanishning sovish davri, provayder uzgichi va kutish sozlamalarini olish/yangilash
/api/resilience/reset POST Provayder zanjir uzgichlarini qayta tiklash
/api/resilience/model-cooldowns GET Qolgan vaqt boʻyicha saralangan faol (provayder, ulanish, model) blokirovkalarini roʻyxatlash
/api/resilience/model-cooldowns DELETE Model blokirovkasini tozalash — tana: {provider, model} yoki barchasini tozalash uchun {all: true}
/api/rate-limits GET Har bir hisob uchun tezlik cheklovi holati
/api/rate-limit GET Global tezlik cheklovi konfiguratsiyasi

Barcha toʻrtta /api/resilience/* marshruti boshqaruv autentifikatsiyasini (requireManagementAuth) talab qiladi. Provayder uzgichi, ulanishning sovish davri va model blokirovkasi oʻrtasidagi farqlarning toʻliq tavsifi uchun Barqarorlik (kengaytirilgan) boʻlimiga qarang.

Baholashlar

Endpoint Metod Tavsif
/api/evals GET/POST Baholash toʻplamlarini roʻyxatlash/baholashni ishga tushirish

Siyosatlar

Endpoint Metod Tavsif
/api/policies GET/POST/DELETE Yoʻnaltirish siyosatlarini boshqarish

Muvofiqlik

Endpoint Metod Tavsif
/api/compliance/audit-log GET Muvofiqlik audit jurnali (oxirgi N ta)

v1beta (Gemini bilan mos)

Endpoint Metod Tavsif
/v1beta/models GET Modellarni Gemini formatida roʻyxatlash
/v1beta/models/{...path} POST Gemini generateContent endpointi

Bu endpointlar mahalliy Gemini SDK mosligini kutadigan mijozlar uchun Gemini API formatini takrorlaydi.

Ichki / tizim APIʼlari

Endpoint Metod Tavsif
/api/init GET Ilovani ishga tushirish tekshiruvi (birinchi ishga tushirishda ishlatiladi)
/api/tags GET Ollama bilan mos model teglari (Ollama mijozlari uchun)
/api/restart POST Serverni toʻgʻri qayta ishga tushirishni boshlash
/api/shutdown POST Serverni toʻgʻri oʻchirishni boshlash
/api/system/env/repair POST OAuth provayderining muhit oʻzgaruvchilarini tiklash

Eslatma: Bu endpointlar tizim tomonidan ichki tarzda yoki Ollama mijozlari bilan moslik uchun ishlatiladi. Odatda ular oxirgi foydalanuvchilar tomonidan chaqirilmaydi.

OAuth muhiti oʻzgaruvchilarini tiklash (v3.6.1+)

POST /api/system/env/repair
Content-Type: application/json

{
  "provider": "claude-code"
}

Muayyan provayder uchun yetishmayotgan yoki buzilgan OAuth muhiti oʻzgaruvchilarini tiklaydi. Quyidagini qaytaradi:

{
  "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 transkripsiyasi

POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data

Sozlangan istalgan STT provayderi yordamida audio fayllarni transkripsiya qiling. Yoʻlning birinchi segmenti bevosita provayderni tanlaydi (openai/…, deepgram/…). Boshqa yetkazib beruvchining modelini qayta eksport qiluvchi shlyuzlar toʻliq identifikatordan foydalanadi (openrouter/deepgram/nova-3).

Soʻrov:

curl -X POST http://localhost:20128/v1/audio/transcriptions \
  -H "Authorization: Bearer your-api-key" \
  -F "file=@recording.mp3" \
  -F "model=openai/whisper-1"

Javob:

{
  "text": "Salom, bu transkripsiya qilingan audio kontent.",
  "task": "transcribe",
  "language": "en",
  "duration": 12.5
}

Model identifikatorlariga misollar: openai/whisper-1 (OpenAI kalitini talab qiladi), openrouter/deepgram/nova-3 (OpenRouter kalitini talab qiladi), deepgram/nova-3 (bevosita Deepgram kalitini talab qiladi). Oddiy deepgram/nova-3 soʻrovi OpenRouterdan foydalanmaydi.

Qoʻllab-quvvatlanadigan formatlar: mp3, wav, m4a, flac, ogg, webm.


Ollama bilan moslik

Ollama API formatidan foydalanadigan mijozlar uchun:

# Chat soʻnggi nuqtasi (Ollama formati)
POST /v1/api/chat

# Modellar roʻyxati (Ollama formati)
GET /api/tags

Soʻrovlar Ollama va ichki formatlar oʻrtasida avtomatik ravishda oʻgiriladi.

Tokenli VS Code / Sarlavhasiz taxalluslar

Integratsiya Authorization sarlavhasini kirita olmasa va API kaliti asosiy URL ichiga joylashtirilishi kerak boʻlsa, ushbu taxalluslardan foydalaning.

# OpenAI uslubidagi katalog taxallusi
GET /api/v1/vscode/{token}/
GET /api/v1/vscode/{token}/models

# OpenAI uslubidagi chat taxalluslari
POST /api/v1/vscode/{token}/chat/completions
POST /api/v1/vscode/{token}/responses

# Ollama uslubidagi taxalluslar
POST /api/v1/vscode/{token}/api/chat
GET /api/v1/vscode/{token}/api/tags

Misol:

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":"salom"}]}'

Izohlar:

  • Tokenli taxalluslar /v1/* va /api/tags bilan bir xil ishlov beruvchilardan qayta foydalanadi; javob tuzilmalari bir xil boʻlib qoladi.
  • Mijoz maxsus sarlavhalarni qoʻllab-quvvatlaganda, Authorization: Bearer ... dan foydalanish afzal.
  • URL asosidagi tokenlar teskari proksi jurnallarida, brauzer tarixida va OmniRoutedan tashqaridagi telemetriyada koʻrinishi mumkin. Ularga standart autentifikatsiya usuli sifatida emas, balki moslik varianti sifatida qarang.

Telemetriya

# Kechikish telemetriyasi xulosasini olish (har bir provayder uchun p50/p95/p99)
GET /api/telemetry/summary

Javob:

{
  "providers": {
    "claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
    "github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
  }
}

Budjet

# Barcha API kalitlari uchun budjet holatini olish
GET /api/usage/budget

# Budjetni belgilash yoki yangilash
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"
}

Sxema izohlari (setBudgetSchema): apiKeyId majburiy; dailyLimitUsd, weeklyLimitUsd yoki monthlyLimitUsd qiymatlaridan kamida bittasi noldan katta boʻlishi kerak. Ixtiyoriy maydonlar: warningThreshold (01), resetInterval (daily | weekly | monthly), resetTime (HH:MM). Eski {keyId, limit, period} tuzilmasi 400 Bad Request javobini qaytaradi.

Token limitlari

Har bir API kaliti uchun token budjetlari (yuqoridagi USD asosidagi budjetdan farqli). Soʻrov yoʻlida bevosita nazorat qilinadi: kalitning joriy davrdagi sarfi limitga yetganda, soʻrovlar 429 Too Many Requests bilan rad etiladi. Limitlar muayyan model, provider doirasida yoki kalit boʻylab global tarzda qoʻllanishi mumkin; agar soʻrovga bir nechta limit mos kelsa, eng qatʼiy limit ustun keladi.

# Kalitning token limitlarini roʻyxatlash (joriy davrdagi sarfni ham oʻz ichiga oladi)
GET /api/usage/token-limits?apiKeyId=key-123

# Token limitini yaratish yoki yangilash
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 boʻyicha oʻchirish
DELETE /api/usage/token-limits?id=tl-abc

Sxema izohlari (setTokenLimitSchema): apiKeyId va scopeType (model | provider | global) majburiy. scopeType qiymati global boʻlmasa, scopeValue majburiy (masalan, model doirasi uchun model identifikatori, provider doirasi uchun provayder identifikatori). tokenLimit musbat butun son boʻlishi kerak (satrdan ogiriladi). Ixtiyoriy: id (yaratish uchun koʻrsatmang, yangilash uchun kiriting), resetInterval (daily | weekly | monthly, standart qiymati monthly), resetTime (HH:MM), enabled (standart qiymati true). GET javoblari har bir limitni tokensUsed, remaining, windowStart, periodStartAt va nextResetAt bilan boyitadi. Bu boshqaruv toifasidagi endpoint hisoblanadi (autentifikatsiya authz konveyeri tomonidan markazlashgan holda taʼminlanadi).

Soʻrovni qayta ishlash

  1. Mijoz /v1/* manziliga soʻrov yuboradi
  2. Marshrut ishlov beruvchisi handleChat, handleEmbedding, handleAudioTranscription yoki handleImageGeneration funksiyasini chaqiradi
  3. Model aniqlanadi (toʻgʻridan-toʻgʻri provayder/model yoki taxallus/kombo)
  4. Hisob mavjudligini filtrlash orqali mahalliy maʼlumotlar bazasidan hisob maʼlumotlari tanlanadi
  5. Chat uchun: handleChatCore semantik/imzo keshini tekshiradi va kombo siqish sozlamalarini aniqlaydi
  6. Faollashtirilgan boʻlsa, provayder formatiga oʻgirishdan oldin proaktiv siqish (lite, Caveman, RTK yoki ketma-ket birlashtirilgan usullar) bajariladi
  7. Provayder ijrochisi yuqori oqimdagi soʻrovni yuboradi
  8. Javob mijoz formatiga qayta oʻgiriladi (chat) yoki oʻz holicha qaytariladi (embeddinglar/rasmlar/audio)
  9. Foydalanish, siqish tahlillari va soʻrov jurnallari qayd etiladi
  10. Xatolar yuz berganda kombo qoidalariga muvofiq zaxira variant qoʻllanadi

Arxitektura boʻyicha toʻliq maʼlumotnoma: ARCHITECTURE.md


Kombolarni boshqarish

Yuqori darajali marshrutlash kombolari (/api/combos* boʻlimida allaqachon umumlashtirilgan) model identifikatori andozasidan 1:1 nisbatda xaritalanishi ham mumkin, bu OpenAI uslubidagi model identifikatorini komboga shaffof tarzda qayta yoʻnaltirish imkonini beradi.

Metod Yoʻl Tavsif
GET /api/model-combo-mappings Barcha model→kombo xaritalashlarini roʻyxatlash
POST /api/model-combo-mappings Xaritalash yaratish — tana: {pattern, comboId, priority?, enabled?, description?}
GET /api/model-combo-mappings/[id] Bitta xaritalashni olish
PUT /api/model-combo-mappings/[id] Mavjud xaritalash maydonlarini yangilash
DELETE /api/model-combo-mappings/[id] Xaritalashni olib tashlash

Autentifikatsiya: boshqaruv sessiyasi/API kaliti (requireManagementAuth).


Vebhuklar

OmniRoute hodisalari (soʻrov yakunlanishi, kvota tugashi, kalit rotatsiyasi va boshqalar) uchun chiquvchi vebhuk obunalari.

Metod Yoʻl Tavsif
GET /api/webhooks Vebhuklar roʻyxatini olish (sirlar <prefix>... koʻrinishida niqoblanadi)
POST /api/webhooks Vebhuk yaratish — tana: {url, events?: ["*"], secret?, description?}
GET /api/webhooks/[id] Vebhukni olish
PUT /api/webhooks/[id] url/events/secret/description qiymatlarini yangilash
DELETE /api/webhooks/[id] Vebhukni oʻchirish
POST /api/webhooks/[id]/test Vebhuk URL manziliga sinov maʼlumotlarini yuborish va yetkazish holatini qaytarish

Autentifikatsiya: boshqaruv sessiyasi/API kaliti (requireManagementAuth).


Roʻyxatdan oʻtkazilgan kalitlar (avtomatik boshqaruv)

Avtomatik kalit boshqaruvi quyi tizimi tomonidan asosiy provayder/hisob orqali kunlik/soatlik kvotalarga ega API kalitlarini chiqarish va rotatsiya qilish uchun ishlatiladi.

Metod Yoʻl Tavsif
GET /api/v1/registered-keys Roʻyxatdan oʻtkazilgan kalitlar roʻyxatini olish (faqat niqoblangan prefiks)
POST /api/v1/registered-keys Yangi roʻyxatdan oʻtkazilgan kalitni chiqarish — tana: {name, provider?, accountId?, idempotencyKey?, expiresAt?, dailyBudget?, hourlyBudget?}. Xom kalitni faqat bir marta qaytaradi. Kvota rad etilganda 429 qaytaradi.
GET /api/v1/registered-keys/[id] Roʻyxatdan oʻtkazilgan kalit metamaʼlumotlarini olish (xom maʼlumotlarsiz)
DELETE /api/v1/registered-keys/[id] Roʻyxatdan oʻtkazilgan kalitni bekor qilish
POST /api/v1/registered-keys/[id]/revoke Bevosita bekor qilish endpointi (DELETE bilan bir xil taʼsirga ega)

Autentifikatsiya: Bearer API kaliti (isAuthenticated). Shuningdek, /v1/quotas/check va /v1/issues/reportga qarang.


Agentlar protokoli

OmniRoute foydalanuvchilari nomidan masofadan bajariladigan bulut agenti vazifalari (Claude Code, Codex Cloud, OpenHands va boshqalar).

Metod Yoʻl Tavsif
GET /api/v1/agents/tasks Vazifalar roʻyxati — ixtiyoriy ?provider=, ?status=, ?limit= (1500, standart qiymat 50)
POST /api/v1/agents/tasks Vazifa yaratish — soʻrov tanasi CreateCloudAgentTaskSchema orqali tekshiriladi (providerId, prompt, source, options?). Vazifa konverti bilan 201 qaytaradi
DELETE /api/v1/agents/tasks?id=... Vazifani oʻchirish
GET /api/v1/agents/tasks/[id] Vazifani oʻqish — external_id oʻrnatilgan boʻlsa, yuqori darajadagi bulut agentidan holatni sinxron ravishda yangilaydi
POST /api/v1/agents/tasks/[id] Ajratilgan amal: {action: "approve"}, {action: "message", message} yoki {action: "cancel"}
DELETE /api/v1/agents/tasks/[id] Muayyan vazifani id boʻyicha oʻchirish

Autentifikatsiya: har bir metod uchun boshqaruv autentifikatsiyasi talab qilinadi (requireCloudAgentManagementAuth). v3.8.0 versiyasigacha ular autentifikatsiyasiz edi — moslikni buzuvchi oʻzgarish uchun 588a0333 commitiga qarang.

# Claude Code bulut vazifasini yaratish
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":"..."}}'

Boshqaruv proksilari

Provayderlar, hisoblar yoki global miqyosda tayinlanishi mumkin boʻlgan chiquvchi HTTP(S)/SOCKS proksilari.

Metod Yoʻl Tavsif
GET /api/v1/management/proxies Proksilar roʻyxati (?id= bilan bittasini qaytaradi; ?id=&where_used=1 bilan tayinlashlar grafigini qaytaradi)
POST /api/v1/management/proxies Proksi yaratish — soʻrov tanasi createProxyRegistrySchema orqali tekshiriladi
PATCH /api/v1/management/proxies Proksini yangilash — soʻrov tanasi updateProxyRegistrySchema orqali tekshiriladi (id talab qilinadi)
DELETE /api/v1/management/proxies?id=...&force=1 Proksini oʻchirish (tayinlashlarni ajratish uchun force=1 dan foydalaning)
GET /api/v1/management/proxies/assignments Tayinlashlar roʻyxati — proxy_id, scope, scope_id boʻyicha filtrlash mumkin; ulanish uchun faol proksini aniqlash maqsadida resolve_connection_id=<id> ni uzating
PUT /api/v1/management/proxies/assignments Tayinlash — soʻrov tanasi proxyAssignmentSchema orqali tekshiriladi ({scope, scopeId?, proxyId?}). Dispatcher keshini tozalaydi
PUT /api/v1/management/proxies/bulk-assign Ommaviy tayinlash — soʻrov tanasi bulkProxyAssignmentSchema orqali tekshiriladi ({scope, scopeIds[], proxyId?})
GET /api/v1/management/proxies/health?hours=24 Muayyan vaqt oraligʻidagi umumlashtirilgan proksi holati (muvaffaqiyatli/muvaffaqiyatsiz urinishlar soni, kechikish)

Autentifikatsiya: har bir marshrutda boshqaruv sessiyasi/API kaliti talab qilinadi (requireManagementAuth).

Vazifa tavsifidagi POST /api/v1/management/proxies/[id]/assignments va POST /api/v1/management/proxies/[id]/health yuqorida koʻrsatilgan yassi /assignments va /health marshrutlari orqali xizmat koʻrsatiladi — kod bazasida har bir id uchun alohida quyi marshrutlar mavjud emas.


Barqarorlik (kengaytirilgan)

OmniRoute vaqtinchalik nosozliklarni boshqarish uchun uchta mustaqil mexanizmni taqdim etadi; quyidagi boshqaruv endpointlari operatorlarga ularni korish va qayta sozlash imkonini beradi:

Qamrov Holat saqlanadigan joy Korish Tiklash / tozalash
Provayder uzgichi domain_circuit_breakers + operativ xotira /api/monitoring/health POST /api/resilience/reset
Ulanish tanaffusi Provayder ulanishlaridagi rateLimitedUntil /api/rate-limits, /api/providers/[id] (zarurat tugilganda qayta yoqiladi; provayderni PUT orqali tozalang)
Model blokirovkasi Xotiradagi model mavjudligi reyestri GET /api/resilience/model-cooldowns DELETE /api/resilience/model-cooldowns

PATCH /api/resilience providerBreaker.oauth va providerBreaker.apikey ostidagi provayder uzgichi sozlamalarini qabul qiladi. Har bir profil degradationThreshold, failureThreshold va resetTimeoutMs parametrlarini qollab-quvvatlaydi; ayni maydonlar Boshqaruv paneli → Sozlamalar → Barqarorlik bolimida ham mavjud.

# Bitta model blokirovkasini olib tashlash
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"}'

# Barcha blokirovkalarni olib tashlash
curl -X DELETE http://localhost:20128/api/resilience/model-cooldowns \
  -H "Cookie: auth_token=..." \
  -d '{"all":true}'

Toliq konseptual malumotnoma va uzgichning standart qiymatlari: CLAUDE.md → "Barqarorlikning ish vaqtidagi holati" bolimiga qarang.


Konikmalar

OmniRoute imkoniyatlarini maxsus bajariluvchi ishlov beruvchilar bilan kengaytirish uchun konikmalar platformasi, shuningdek marketpleys integratsiyalari.

Metod Yol Tavsif
GET /api/skills Ornatilgan konikmalar royxati — ?q=, ?mode=on|off|auto, ?source=skillsmp|skillssh|local boyicha filtrlanadi, sahifalarga bolinadi
GET /api/skills/[id] Bitta konikmani olish
PUT /api/skills/[id] Konikmani yangilash (nomi, tavsifi, rejimi, sxemasi, ishlov beruvchisi, teglari)
DELETE /api/skills/[id] Konikmani ochirish
POST /api/skills/install Konikmani xom manifestdan ornatish — sorov tanasi: {name, version, description, schema:{input, output}, handlerCode, apiKeyId?}
GET /api/skills/executions Konikmalarning songgi bajarilishlari royxati (kirishlar/chiqishlar/davomiylikni oz ichiga olgan audit jurnali)
GET /api/skills/marketplace?q=... SkillsMP marketpleysidan qidiruv/ommabop royxat (skillsmpApiKey sozlamasini talab qiladi)
POST /api/skills/marketplace/install Konikmani SkillsMP orqali id boyicha ornatish
GET /api/skills/skillssh?q=&limit= skills.sh reyestrida qidirish
POST /api/skills/skillssh/install Konikmani skills.sh orqali id boyicha ornatish

Autentifikatsiya: boshqaruv seansi/API kaliti. Marketpleys qidiruv yonalishlari boshqaruv autentifikatsiyasi yoki Bearer API kalitini (isAuthenticated) qabul qiladi.


Xotira

Har bir API kaliti / sessiya doirasida ajratilgan doimiy suhbat/faktlar xotirasi ombori.

Metod Yoʻl Tavsif
GET /api/memory Xotiralar roʻyxati — ?apiKeyId=, ?type=, ?sessionId=, ?q=, offset/limit yoki page/limit sahifalash bilan
POST /api/memory Xotira yaratish — soʻrov tanasi Zod orqali tekshiriladi: {content, key, type?, sessionId?, apiKeyId?, metadata?, expiresAt?}
GET /api/memory/[id] Bitta xotirani olish
DELETE /api/memory/[id] Xotirani oʻchirish
GET /api/memory/health Xotira quyi tizimi holati (DB ulanishi, embeddinglar bekendi, vektor indeksi holati)

Autentifikatsiya: boshqaruv sessiyasi/API kaliti (requireManagementAuth). type enum qiymatlari: FACTUAL, EPISODIC, SEMANTIC, PROCEDURAL (src/lib/memory/types.ts ichidagi MemoryTypega qarang).


MCP serveri

OmniRoute 3 ta transport (stdio, SSE, streamable-http) va doirasi cheklangan vositalarga ega ichki Model Context Protocol serveri bilan taqdim etiladi. Quyidagi boshqaruv paneli endpointlari holat/audit maʼlumotlarini oʻqiydi va HTTP transportlarini proksi qiladi.

Metod Yoʻl Tavsif
GET /api/mcp/status Faollik signali, transport, onlayn holat, soʻnggi chaqiruv, eng koʻp ishlatilgan vositalar, 24 soatlik muvaffaqiyat darajasi
GET /api/mcp/tools name, description, scopes, phase, auditLevel, sourceEndpoints maydonlariga ega MCP vositalari roʻyxati
GET /api/mcp/sse SSE transporti uchun SSE oqimini ochish (MCP oʻchirilgan yoki transport mos kelmasa, 503 qaytaradi)
POST /api/mcp/sse SSE transportida JSON-RPC freymini yuborish
GET /api/mcp/stream Streamable HTTP transportining SSE tomonini ochish (server tashabbusi bilan yuboriladigan xabarlar)
POST /api/mcp/stream Streamable HTTP transportida JSON-RPC freymini yuborish
DELETE /api/mcp/stream Streamable HTTP sessiyasini yakunlash
GET /api/mcp/audit Audit jurnalini soʻrash — ?limit=, ?offset=, ?tool=, `?success=true false, ?apiKeyId=`
GET /api/mcp/audit/stats Umumlashtirilgan audit statistikasi (jami koʻrsatkichlar, muvaffaqiyat darajasi, oʻrtacha davomiylik, eng koʻp ishlatilgan vositalar)

Autentifikatsiya: sse/stream transportlari MCPga xos autentifikatsiya mexanizmidan foydalanadi (mcp doirasiga ega Bearer API kaliti); status/tools/audit* yoʻnalishlarini boshqaruv panelidan oʻqish mumkin (boshqaruv paneli xostiga kirishdan tashqari qoʻshimcha autentifikatsiya talab qilinmaydi).

Har ikkala HTTP transporti settings.mcpEnabled va settings.mcpTransport bilan boshqariladi — transport mos kelmasa 400, MCP oʻchirilgan holatda esa 503 qaytariladi.


A2A serveri

OmniRoute tekshirish/boshqaruv panelida foydalanish uchun A2A (Agent-to-Agent) JSON-RPC 2.0 endpointini hamda REST oramini taqdim etadi.

JSON-RPC

POST /a2a
Authorization: Bearer your-api-key   # OMNIROUTE_API_KEY ornatilmagan bolsa, ixtiyoriy
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "message/send",
  "params": {
    "skill": "smart-routing",
    "messages": [{"role": "user", "content": "Ushbu dasturlash vazifasini yonaltir"}]
  }
}

Qollab-quvvatlanadigan metodlar (barchasi settings.a2aEnabled orqali boshqariladi):

Metod Tavsif
message/send Konikmani sinxron bajaradi; {task, artifacts, metadata} qaytaradi
message/stream Xuddi shu konikmalar toplamini oqimli SSE orqali bajaradi
tasks/get Vazifani taskId boyicha oladi
tasks/cancel Vazifani taskId boyicha bekor qiladi

Ichki konikmalar: smart-routing, quota-management, provider-discovery, cost-analysis, health-report.

Agent kartasi

GET /.well-known/agent.json

Ommaviy A2A agent kartasini (nomi, tavsifi, imkoniyatlari, konikmalar katalogi, autentifikatsiya sxemasi) qaytaradi — ommaviy tarzda 1 soatga keshlanadi. Autentifikatsiya talab qilinmaydi.

REST yordamchilari

Metod Yol Tavsif
GET /api/a2a/status A2A yoqilganligi + vazifa statistikasi + keshlangan agent kartasi xulosasi
GET /api/a2a/tasks Vazifalar royxati — ?state=submitted|working|completed|failed|cancelled, ?skill=, ?limit= (≤200), ?offset=
POST /api/a2a/tasks (REST yordamchisi sifatida amalga oshirilmagan — JSON-RPC message/send orqali yarating)
GET /api/a2a/tasks/[id] Bitta vazifani olish
POST /api/a2a/tasks/[id]/cancel Vazifani bekor qilish

Autentifikatsiya: REST yordamchilari boshqaruv autentifikatsiyasisiz ishlaydi (boshqaruv panelidan oqish mumkin); JSON-RPC /a2a marshruti sozlangan bolsa, Bearer OMNIROUTE_API_KEY kalitidan foydalanadi.


Bulut, baholashlar va tahlil

Metod Yol Tavsif
POST /api/cloud/auth Bearer kalitini tekshirish va bulut bilan sinxronlash mijozlari uchun niqoblangan provayder ulanishlari + model taxalluslarini qaytarish
POST /api/cloud/credentials/update Bulut bilan sinxronlangan provayderning shifrlangan hisob malumotlarini yangilash
POST /api/cloud/model/resolve Mahalliy marshrutlash jadvali yordamida mantiqiy model identifikatorini aniq provayder/modelga moslashtirish
GET /api/cloud/models/alias Bulut bilan sinxronlashga taqdim etilgan model taxalluslari royxati
GET /api/assess Eng songgi tahlil toifalarini oqish (har bir provayder/model boyicha)
POST /api/assess Tahlilni ishga tushirish — tana: `{scope: {type:"all"} {type:"provider", providerId} {type:"model", modelId}, trigger?}`
GET /api/evals Ichki baholash toplamlari + eng songgi ishga tushirishlar royxati
POST /api/evals Baholashni ishga tushirish
POST /api/evals/suites Maxsus baholash toplamini yaratish — tana evalSuiteSaveSchema orqali tekshiriladi
GET /api/evals/suites/[id] Maxsus baholash toplamini olish

Autentifikatsiya: /api/cloud/auth Bearer kalitini bevosita tekshiradi; boshqa /api/cloud/*, /api/evals/* va /api/assess marshrutlari boshqaruv seansi/API kalitini talab qiladi. /api/assess POST diskriminatsiyalangan birlashma doirasi sxemasi bilan validateBody dan foydalanadi.


ACP (Agent Client Protocol) boshqaruvi

quyi jarayonlar sifatida. Ushbu endpointlar ACP agentlarini aniqlash va maxsus agentlarni roʻyxatdan oʻtkazishni boshqaradi.

Metod Yoʻl Tavsif
GET /api/acp/agents Oʻrnatilish holati, versiyasi va bajariluvchi fayli bilan barcha maʼlum CLI agentlarini (ichki + maxsus) roʻyxatlash
POST /api/acp/agents Maxsus ACP agentini roʻyxatdan oʻtkazish yoki keshni yangilash — soʻrov tanasi: {id, name, binary, versionCommand, providerAlias, spawnArgs, protocol} yoki {action: "refresh"}
DELETE /api/acp/agents Maxsus ACP agentini olib tashlash — soʻrov parametri: ?id=<agentId>

Javob namunasi (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
}

Autentifikatsiya: Boshqaruv sessiyasi (boshqaruv panelidagi auth_token cookie fayli) yoki boshqaruv doirasidagi API kaliti talab qilinadi.

Toʻliq maʼlumot uchun ACP Framework sahifasiga qarang.


Tahlil va kuzatuvchanlik

Marshrutlash, siqish va provayderlar xilma-xilligini kuzatish uchun real vaqt rejimidagi tahlil endpointlari. Ular /dashboard/analytics/* sahifalarini maʼlumot bilan taʼminlaydi.

Avtomatik marshrutlash tahlili

Metod Yoʻl Tavsif
GET /api/analytics/auto-routing Avtomatik marshrutlashning jamlangan statistikasi: jami chaqiruvlar, strategiyalar taqsimoti, darajalar taqsimoti, yetakchi provayderlar
GET /api/analytics/auto-routing?days=7 Vaqt oraligʻi boʻyicha statistika (standart qiymat — 24 soat)

Javob namunasi:

{
  "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 }
  ]
}

Siqish tahlili

Metod Yoʻl Tavsif
GET /api/analytics/compression Siqishning jamlangan statistikasi: tejalgan tokenlar, tejash foizi, rejimlar taqsimoti, mexanizmlardan foydalanish

Javob namunasi:

{
  "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
  }
}

Provayderlar xilma-xilligini kuzatish

Metod Yoʻl Tavsif
GET /api/analytics/diversity Shannon entropiyasiga asoslangan xilma-xillik kuzatuvi: provayderlar taqsimotini oʻlchash orqali yagona nosozlik nuqtalarining oldini oladi

Javob namunasi:

{
  "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"]
}

Autentifikatsiya: Boshqaruv sessiyasi yoki boshqaruv doirasidagi API kaliti talab qilinadi.


Administrator operatsiyalari

Operatsion boshqaruv uchun faqat administratorlarga moʻljallangan endpointlar.

Metod Yoʻl Tavsif
GET /api/admin/concurrency Joriy parallellik cheklovlarini oʻqish (global + har bir provayder uchun)
POST /api/admin/concurrency Parallellik cheklovlarini yangilash — tana: {global?: number, perProvider?: Record<string, number>}

Autentifikatsiya: Administrator doirasiga ega boshqaruv seansi talab qilinadi.


CLI vositalarini boshqarish

OmniRoute bilan integratsiyalashadigan CLI vositalarini (antigravity, chipotle, commandCode, devin-cli va boshqalar) boshqaring. Toʻliq roʻyxat uchun Provayder maʼlumotnomasiga qarang.

Metod Yoʻl Tavsif
GET /api/cli-tools/all-statuses Barcha CLI vositalarining holati (oʻrnatilganligi, versiyasi, oxirgi faollik vaqti)
GET /api/cli-tools/status Bitta CLI vositasi holati tafsilotlari (?tool= soʻrovi)
POST /api/cli-tools/apply Vosita uchun yaratilgan konfiguratsiyani yozish (dryRun oldindan koʻrsatadi; konteynerlashtirilganda 422 + containerEphemeralTarget; migration eski Codex YAML haqida qayd etadi)
GET /api/cli-tools/backups CLI vositalari konfiguratsiyasi zaxira nusxalarini roʻyxatlash
POST /api/cli-tools/backups Barcha CLI vositalari konfiguratsiyalarining zaxira nusxasini yaratish
POST /api/cli-tools/backups Tiklash: tanada {tool, backupId} bilan ayni endpoint ushbu zaxira nusxasini tiklaydi
GET /api/cli-tools/antigravity-mitm Antigravity MITM proksi holati (antigravity-mitm CLI vositasi)
POST /api/cli-tools/antigravity-mitm/alias antigravity-mitm taxalluslarini sozlash

Autentifikatsiya: Boshqaruv seansi talab qilinadi.


Agent koʻnikmalari

AI agent koʻnikmalarini boshqaring (OpenAI maxsus GPTlariga oʻxshash, ammo agentlar uchun).

Metod Yoʻl Tavsif
GET /api/agent-skills Barcha agent koʻnikmalarini roʻyxatlash (ichki + maxsus)
GET /api/agent-skills/[id] Muayyan agent koʻnikmasini olish
POST /api/agent-skills Maxsus agent koʻnikmasini yaratish — tana: {name, description, prompt, model?, temperature?}
PUT /api/agent-skills/[id] Maxsus agent koʻnikmasini yangilash
DELETE /api/agent-skills/[id] Maxsus agent koʻnikmasini oʻchirish
GET /api/agent-skills/[id]/raw Xom prompt + metamaʼlumotlarni olish (bajarilmasdan)
POST /api/agent-skills/generate Tabiiy tildagi tavsifdan AI yordamida yangi koʻnikma yaratish

Autentifikatsiya: Boshqaruv seansi yoki boshqaruv doirasidagi API kaliti talab qilinadi.


Keshni boshqarish

Semantik kesh va mulohaza yuritish keshini boshqaring.

Metod Yoʻl Tavsif
GET /api/cache Kesh haqida umumiy maʼlumot: jami yozuvlar, topilish darajasi, diskdagi hajmi
GET /api/cache/entries Keshlangan yozuvlar roʻyxati (sahifalash bilan)
DELETE /api/cache/entries Kesh yozuvlarini oʻchirish (soʻrov parametrlari boʻyicha filtrlash)
GET /api/cache/stats Batafsil kesh statistikasi (har bir provayder va model boʻyicha)
GET /api/cache/reasoning Mulohaza yuritish keshining holati (mulohazalarni qayta ijro etish uchun)
DELETE /api/cache/reasoning Mulohaza yuritish keshini tozalash — soʻrov parametrlari: ?toolCallId=<id> (bitta), ?provider=<p> yoki parametrsiz (barchasi)

Autentifikatsiya: Boshqaruv seansi talab etiladi.


Xotira tizimi

Doimiy xotirani (FTS5 + vektorli embeddinglar) boshqaring.

Metod Yoʻl Tavsif
GET /api/memory Xotira yozuvlari roʻyxati (qamrov, tur va qidiruv soʻrovi boʻyicha filtrlash)
POST /api/memory Yangi xotira yozuvini yaratish — soʻrov tanasi: {scope, type, content, metadata?}
GET /api/memory/[id] Muayyan xotira yozuvini olish
PUT /api/memory/[id] Xotira yozuvini yangilash
DELETE /api/memory/[id] Xotira yozuvini oʻchirish
GET /api/memory?q= Xotiradan qidirish (FTS5 + vektor) — statistika shu javobning oʻziga kiritiladi

Autentifikatsiya: Boshqaruv seansi yoki boshqaruv doirasidagi API kaliti talab etiladi.


Vebhuklar

Hodisalar uchun vebhuk obunalarini boshqaring.

Metod Yoʻl Tavsif
GET /api/webhooks Barcha vebhuk obunalari roʻyxati
POST /api/webhooks Vebhuk obunasini yaratish — soʻrov tanasi: {url, events[], secret?, active?}
GET /api/webhooks/[id] Muayyan vebhuk obunasini olish
PUT /api/webhooks/[id] Vebhuk obunasini yangilash
DELETE /api/webhooks/[id] Vebhuk obunasini oʻchirish
GET /api/webhooks/[id]/deliveries Vebhuk uchun yetkazib berishlar tarixini koʻrish (muvaffaqiyat/xatolik jurnali)
POST /api/webhooks/[id]/test Vebhukka sinov hodisasini yuborish

Autentifikatsiya: Boshqaruv seansi talab etiladi.

Barcha hodisa turlari uchun Vebhuklar freymvorkiga qarang.


Koʻnikmalar freymvorki

Koʻnikmalarni (agent kengaytmalari freymvorkini) boshqaring.

Metod Yoʻl Tavsif
GET /api/skills Barcha oʻrnatilgan koʻnikmalarni (ichki + maxsus) roʻyxatlash
POST /api/skills/install Mahalliy yoʻl yoki URL manzilidan koʻnikma oʻrnatish
DELETE /api/skills/[id] Koʻnikmani oʻchirish
PUT /api/skills/[id] Koʻnikmani yoqish yoki oʻchirish — tana: {enabled?: boolean, mode?: "on" | "off" | "auto"}
POST /api/skills/executions Koʻnikmani bajarish — tana: {skillName, apiKeyId, input?, sessionId?}
GET /api/skills/executions Barcha koʻnikmalar uchun bajarilish tarixini roʻyxatlash (?apiKeyId= boʻyicha filtrlash)

Autentifikatsiya: Boshqaruv seansi yoki boshqaruv doirasidagi API kaliti talab qilinadi.

Toʻliq maʼlumot uchun Koʻnikmalar freymvorki boʻlimiga qarang.


Plaginlar

OmniRoute plaginlarini (uchinchi tomon kengaytmalarini) boshqaring.

Metod Yoʻl Tavsif
GET /api/plugins Oʻrnatilgan plaginlarni roʻyxatlash
POST /api/plugins/marketplace/install Marketpleysdan plagin oʻrnatish
DELETE /api/plugins/[name] Plaginni oʻchirish
POST /api/plugins/[name]/activate Plaginni faollashtirish
POST /api/plugins/[name]/deactivate Plaginni faolsizlantirish
GET /api/plugins/[name]/config Plagin konfiguratsiyasini olish
PUT /api/plugins/[name]/config Plagin konfiguratsiyasini yangilash

Autentifikatsiya: Boshqaruv seansi talab qilinadi.

Toʻliq maʼlumot uchun Plaginlar freymvorki boʻlimiga qarang.


Soyali marshrutlash

Provayderlarni soyali / A-B usulida taqqoslash mustaqil REST interfeysi emas — u kombinatsiyalangan marshrutlash orqali sozlanadi (Avtomatik kombinatsiya boʻlimiga qarang). Har bir kombinatsiya boʻyicha taqqoslash koʻrsatkichlari GET /api/combos/metrics orqali taqdim etiladi.


Himoya cheklovlari

Ish vaqtidagi himoya cheklovlarini (shaxsni aniqlash mumkin boʻlgan maʼlumotlarni aniqlash, prompt inyeksiyasini aniqlash, koʻrish vositachiligi) tekshiring. Himoya cheklovlari har bir soʻrovda ishlaydi; har bir chaqiruv uchun ulardan voz kechish x-omniroute-disabled-guardrails soʻrov sarlavhasi orqali amalga oshiriladi — yoqish/oʻchirish holatini doimiy saqlash interfeysi mavjud emas.

Metod Yoʻl Tavsif
GET /api/guardrails Roʻyxatdan oʻtgan himoya cheklovlari va ularning holatini roʻyxatlash (nomi / yoqilganligi / ustuvorligi)
POST /api/guardrails/test Chaqiruvdan oldingi konveyerni namunaviy kirish maʼlumotida sinov tariqasida ishga tushirish — tana: {input, disabledGuardrails?}

Autentifikatsiya: Boshqaruv seansi talab qilinadi.

Toʻliq maʼlumot uchun Xavfsizlik > Himoya cheklovlari boʻlimiga qarang.



Autentifikatsiya

Toʻrtta hisob maʼlumotlari oilasi (boshqaruv paneli seansi, mahalliy CLI tokeni, oma_live_… kirish tokeni, boshqaruv doirasidagi API kaliti) va ularning inferensiya kalitlaridan farqi haqida Boshqaruv autentifikatsiyasi qoʻllanmasiga qarang.

  • Boshqaruv paneli marshrutlari (/dashboard/*) auth_token cookie faylidan foydalanadi
  • Tizimga kirishda saqlangan parol xeshidan foydalaniladi; zaxira variant sifatida INITIAL_PASSWORD ishlatiladi
  • requireLogin sozlamasini /api/settings/require-login orqali yoqish yoki oʻchirish mumkin
  • REQUIRE_API_KEY=true boʻlganda, /v1/* marshrutlari ixtiyoriy ravishda Bearer API kalitini talab qiladi
  • Ushbu maʼlumotnomadagi «boshqaruv tokeni» / «boshqaruv doirasidagi API kaliti» yuqoridagi qoʻllanmada keltirilgan oilalardan birini anglatadi — bu taʼriflanmagan qoʻshimcha maxfiy maʼlumot turi emas

Orqaga mos kelmaydigan oʻzgarish (v3.8.0)/api/v1/agents/tasks/* va kutish muddatini boshqarish endpointlari endi boshqaruv autentifikatsiyasini (boshqaruv panelining auth_token cookie fayli yoki boshqaruv doirasidagi API kaliti) talab qiladi. Avval ushbu marshrutlarni autentifikatsiyasiz chaqirgan mijozlar 401 Unauthorized javobini oladi. 588a0333 (fix(auth): agent va kutish muddati API'lari uchun boshqaruv autentifikatsiyasi talab qilinsin) commitiga qarang.