Files
OmniRoute/docs/i18n/az/docs/frameworks/OPENCODE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

12 KiB
Raw Blame History

OpenCode Integration (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


Status: Ümumi istifadəyə açıqdır. Auditoriya: OpenCode-u OmniRoute yerləşdirməsinə qoşan operatorlar. Həqiqət mənbəyi (konfiqurasiya sxemi): src/shared/services/opencodeConfig.ts Həqiqət mənbəyi (npm paketi): @omniroute/opencode-provider/ (dərc edilə bilən iş sahəsi)

OpenCode agent əsaslı CLI/masaüstü süni intellekt müştərisidir. O, provayder kataloqunu ~/.config/opencode/opencode.json (və ya opencode.jsonc) faylından oxuyur və https://opencode.ai/config.json ünvanındakı sxemə uyğun işləyir. OmniRoute özünü OpenCode-a həmin provayderlərdən biri kimi təqdim edir — hər sorğu OmniRoute-un standart OpenAI-uyğun /v1 interfeysindən keçir, buna görə OpenCode avtomatik olaraq Auto-Combo marşrutlaşdırması, dövrə kəsiciləri, açar siyasətləri, müşahidəolunma və digər imkanlardan faydalanır.

İki dəstəklənən inteqrasiya yolu mövcuddur. Onlardan birini seçin — hər ikisi eyni konfiqurasiyanı yaradır.


Yol 1 — CLI generatoru (npm quraşdırılması tələb olunmur)

Son istifadəçilər üçün tövsiyə olunur. OmniRoute ilə birlikdə təqdim edilir. opencode.json faylını olduğu yerdə yeniləyir.

# OmniRoute quraşdırıldıqdan sonra (npm i -g @omniroute/cli və ya lokal klon)
omniroute config opencode \
  --base-url http://localhost:20128 \
  --api-key "$OMNIROUTE_API_KEY"

Arxa planda CLI mergeOpenCodeConfigText() funksiyasını (src/shared/services/opencodeConfig.ts:104) çağırır, beləliklə mövcud opencode.json digər provayderlərini və şərhlərini qoruyur. OmniRoute qeydi atomik şəkildə əlavə edilir və ya əvəzlənir.

Nəticədə yaranan fayl (standart model kataloqu):

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "omniroute": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OmniRoute",
      "options": {
        "baseURL": "http://localhost:20128/v1",
        "apiKey": "<açarınız>",
      },
      "models": {
        "claude-opus-4-5-thinking": { "name": "claude-opus-4-5-thinking" },
        "claude-sonnet-4-5-thinking": { "name": "claude-sonnet-4-5-thinking" },
        "gemini-3.1-pro-high": { "name": "gemini-3.1-pro-high" },
        "gemini-3-flash": { "name": "gemini-3-flash" },
      },
    },
  },
}

Yol 2 — npm paketi @omniroute/opencode-provider

Konfiqurasiyanı Node/TS vasitəsilə skriptləşdirdiyiniz zaman (CI konveyerləri, monorepolar, fərdi quraşdırıcı axınları) tövsiyə olunur.

npm install --save-dev @omniroute/opencode-provider
import { writeFileSync } from "node:fs";
import { buildOmniRouteOpenCodeConfig } from "@omniroute/opencode-provider";

const config = buildOmniRouteOpenCodeConfig({
  baseURL: "http://localhost:20128",
  apiKey: process.env.OMNIROUTE_API_KEY ?? "sk_omniroute",
  // İstəyə bağlı: OpenCode-a təqdim edilən model kataloqunu dəyişdirin
  models: ["auto", "claude-opus-4-7", "gpt-5.5"],
  modelLabels: { auto: "Auto-Combo" },
});

writeFileSync("opencode.json", JSON.stringify(config, null, 2));

Mövcud faylla məlumat itkisinə səbəb olmayan birləşdirmə üçün opencodeConfig.ts faylındakı mergeOpenCodeConfigText() funksiyasını təkrarlayın və ya CLI generatorunu çağırın.

Tam API üçün paketin README faylına baxın.


İcra mühitində əslində nə baş verir

Hər iki yol eyni provider.omniroute.npm: "@ai-sdk/openai-compatible" dəyərini yaradır. İcra zamanı OpenCode @ai-sdk/openai-compatible paketini (artıq OpenCode-un tranzitiv asılılığıdır) yükləyir və onu baseURL + apiKey ilə konfiqurasiya edir. Bundan sonra:

OpenCode istifadəçi interfeysi/agenti
   → @ai-sdk/openai-compatible
      → HTTP POST {baseURL}/chat/completions          (OmniRoute OpenAI interfeysi)
         → OmniRoute /v1/chat/completions emalçısı    (open-sse/handlers/chatCore.ts)
            → kombinasiya marşrutlaşdırması / Auto-Combo / icraçı
               → yuxarı axın provayderi

Plagin heç vaxt HTTP-yə toxunmur. O, yalnız konfiqurasiya yaradır.


Model kataloqunun standart dəyərləri

export const OMNIROUTE_DEFAULT_OPENCODE_MODELS = [
  "claude-opus-4-5-thinking",
  "claude-sonnet-4-5-thinking",
  "gemini-3.1-pro-high",
  "gemini-3-flash",
] as const;

Bunu models: [...] vasitəsilə əvəz edə bilərsiniz. Tövsiyə olunan əlavələr:

  • "auto" — OmniRoute-un sıfır konfiqurasiyalı Auto-Combo yönləndiricisini əlçatan edir. Kataloqu sərt şəkildə kodlaşdırmadan OpenCode-a «mövcud olan ən yaxşı modeli» seçməyə imkan verir.
  • "<combo-name>" — idarəetmə panelində müəyyən etdiyiniz istənilən kombinasiya; OmniRoute onu şəffaf şəkildə müəyyənləşdirir.

URL-in normallaşdırılması

Köməkçi hər iki formanı qəbul edir və nəticədə yalnız bir /v1 yaradır:

Giriş Çıxış (options.baseURL)
http://localhost:20128 http://localhost:20128/v1
http://localhost:20128/ http://localhost:20128/v1
http://localhost:20128/v1 http://localhost:20128/v1
http://localhost:20128/v1/// http://localhost:20128/v1

Bu təkrarlanmanın aradan qaldırılması köhnə konfiqurasiyalarda rast gəlinən ən geniş yayılmış nasazlıqdır. Əgər v3.8.0-dan əvvəl yaradılmış və /v1/v1/... ünvanına yönələn opencode.json faylınız varsa, generatoru yenidən işə salın və ya createOmniRouteProvider funksiyasını təkrar çağırın.


Autentifikasiya rejimləri

OmniRoute ayarı Tövsiyə olunan apiKey dəyəri
REQUIRE_API_KEY=false (lokal üçün standart) sk_omniroute (hərfi mənada yer tutucu)
REQUIRE_API_KEY=true İdarəetmə paneli → API Keys bölməsindən real istifadəçi açarı.

x-api-key + anthropic-version göndərən Anthropic üslublu klientlər üçün OmniRoute-un extractApiKey funksiyası x-api-key daxilindəki açarı da nəzərə alır. OpenCode, OpenAI interfeysindən istifadə etdiyinə görə həmişə Authorization: Bearer ${apiKey} göndərəcək — burada Anthropic-ə xas xüsusi hal tətbiq edilmir.


Problemlərin aradan qaldırılması

Əlamət Səbəb Həll
URL-də /v1/v1/ olan hər sorğuda 404 /v1 sonluğunu iki dəfə əlavə edən v3.8-dən əvvəlki plaqindən qalmış konfiqurasiya. 1-ci və ya 2-ci üsul vasitəsilə yenidən yaradın.
401 Invalid API key OmniRoute-da REQUIRE_API_KEY=true təyin edilib və açar tanınmır. Açarı idarəetmə panelində yaradın və ya REQUIRE_API_KEY=false təyin edib (yalnız lokal olaraq) sk_omniroute istifadə edin.
OpenCode interfeysində model siyahısı boşdur 4 standart modelin hamısı OmniRoute-un provayder görünüşündə gizlədilib. Aktivləşdirdiyiniz modelləri göstərmək üçün models: ["auto", ...] ötürün.
OpenCode 500 və cannot read property 'models' Köhnə OpenCode (< 0.1.x) daxili models parametrini qəbul etmirdi. OpenCode-u v1 sxeminə (opencode.ai/config.json) uyğun versiyaya təkmilləşdirin.

Həmçinin baxın