Files
OmniRoute/docs/i18n/az/docs/reference/API_REFERENCE.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
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
2026-09-17 02:55:31 -03:00

131 KiB
Raw Blame History

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ısrc/app/api/ altındakı marşrut ağacı tam mənbələrdir.


Mündəricat


Ç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 üçün 0.0000000000), X-OmniRoute-Tokens-In / X-OmniRoute-Tokens-Out, X-OmniRoute-Model, X-OmniRoute-Provider, X-OmniRoute-Latency-Ms, X-OmniRoute-Cache-HitX-OmniRoute-Fallback-Attempts (yalnız > 0 olduqda), həmçinin X-OmniRoute-Request-IdX-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/generations/v1/moderations (xərc həmişə 0 olur) 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 halda 0 olur (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-Cost dəyəri 0.0000000000 olur (keş uyğunluğuna xidmət göstərməyin əlavə xərci). İlkin/əks halda yaranacaq xərc ayrıca X-OmniRoute-Cost-Saved başlığında bildirilir. Hesablaşma sistemləri X-OmniRoute-Response-Cost dəyərlərini toplamalıdır (keş uyğunluqlarının xərci yoxdur); keş analitikası isə X-OmniRoute-Cost-Saved də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ıı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ı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ı off və ya default olan 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, videodocument-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 (text və ya inline_data) ilə vahid yerli models/{model}:embedContent sorğusuna çevrilir.
  • ı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 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 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):ıq şəkildə provider göstərilmədikdə, hovuz (firecrawljina-readertavily-searchtinyfishnimble-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/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 failedConnectionsstaleDbNonOkCount (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/*/api/tags ilə 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): apiKeyId məcburidir; dailyLimitUsd, weeklyLimitUsd və ya monthlyLimitUsd dəyərlərindən ən azı biri sıfırdan böyük olmalıdır. İxtiyari sahələr: warningThreshold (01), resetInterval (daily | weekly | monthly), resetTime (HH:MM). Köhnə {keyId, limit, period} strukturu 400 Bad Request qaytarı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): apiKeyIdscopeType (model | provider | global) mütləqdir. scopeType dəyəri global olmadığı halda scopeValue mütləqdir (məsələn, model əhatə dairəsi üçün model id-si, provider əhatə dairəsi üçün provayder id-si). tokenLimit mü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 olaraq monthly), resetTime (HH:MM), enabled (standart olaraq true). GET cavabları hər limiti tokensUsed, remaining, windowStart, periodStartAtnextResetAt ilə 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ı

  1. Müştəri /v1/* ünvanına sorğu göndərir
  2. Marşrut emalçısı handleChat, handleEmbedding, handleAudioTranscription və ya handleImageGeneration çağırır
  3. Model müəyyənləşdirilir (birbaşa provayder/model və ya alias/kombinasiya)
  4. Hesabın əlçatanlığına görə filtrləmə tətbiq edilməklə lokal verilənlər bazasından giriş məlumatları seçilir
  5. Söhbət üçün: handleChatCore semantik/imza keşini yoxlayır və kombinasiya sıxışdırma parametrlərini müəyyənləşdirir
  6. 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)
  7. Provayder icraçısı yuxarı axın sorğusunu göndərir
  8. 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)
  9. İstifadə, sıxışdırma analitikası və sorğu jurnalları qeydə alınır
  10. 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 ı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/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= (1500, 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 üçün 588a0333 kommitinə 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]/assignmentsPOST /api/v1/management/proxies/[id]/health sorğularına yuxarıda göstərilən düz /assignments/health marş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.oauthproviderBreaker.apikey daxilində provayder kəsicisi üçün əvəzetmələri qəbul edir. Hər profil degradationThreshold, failureThresholdresetTimeoutMs 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ıı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.mcpEnabledsettings.mcpTransport ilə məhdudlaşdırılır — nəqliyyat uyğunsuzluğu 400, MCP-nin deaktiv vəziyyəti isə 503 qaytarı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/*/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_token kukisindən istifadə edir
  • Giriş saxlanılmış parol heşindən istifadə edir; ehtiyat variant kimi INITIAL_PASSWORD istifadə olunur
  • requireLogin parametri /api/settings/require-login vasitəsilə aktiv və ya deaktiv edilə bilər
  • REQUIRE_API_KEY=true olduqda /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ə panelinin auth_token kukisi və ya idarəetmə əhatəli API açarı) tələb edir. Əvvəllər bu marşrutları autentifikasiya olmadan çağıran klientlər 401 Unauthorized cavabı 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.