Strona główna → Poradniki → OpenCode z własnym API: konfiguracja, Claude, small_model i realne koszty

OpenCode z własnym API: konfiguracja, Claude, small_model i realne koszty

OpenCode czyta dostawców z opencode.json, więc konfiguracja to jeden plik. Zaskoczył nas rachunek: prośba o jedno słowo dała dwa żądania i ponad 12 000 tokenów wejściowych. Uruchomiliśmy OpenCode 1.19.0 na naszej bramce z trzema modelami, żeby pokazać, gdzie idą tokeny i jak je ograniczyć.

Plik konfiguracyjny

Wstaw to do ~/.config/opencode/opencode.json (albo opencode.json w projekcie):

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "apiclan": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APICLAN",
      "options": {
        "baseURL": "https://apiclan.us/v1",
        "apiKey": "{env:APICLAN_GPT_KEY}"
      },
      "models": {
        "gpt-6-astra": {},
        "gpt-6.1-sol": {}
      }
    }
  }
}
  1. Utwórz klucz w konsoli i ustaw go jako zmienną środowiskową, np. APICLAN_GPT_KEY.
  2. W models wpisz tylko modele z grupy tego klucza. Każdy klucz należy do jednej grupy, więc GPT, DeepSeek i Claude potrzebują osobnych wpisów dostawcy i osobnych kluczy.
  3. Uruchom opencode, wpisz /models i wybierz APICLAN → gpt-6-astra. W skryptach: opencode run -m apiclan/gpt-6-astra "...".
baseURLWynik
https://apiclan.us/v1✓
https://apiclan.us✗ 404 Not Found

@ai-sdk/openai-compatible dopisuje do baseURL tylko /chat/completions, więc /v1 musi już tam być. Bez niego OpenCode kończy się samym Not Found.

Dodawanie Claude

Dodaj w provider drugiego dostawcę z pakietem Anthropic i kluczem z grupy Claude:

"claude": {
  "npm": "@ai-sdk/anthropic",
  "name": "APICLAN Claude",
  "options": {
    "baseURL": "https://apiclan.us/v1",
    "apiKey": "{env:APICLAN_CLAUDE_KEY}"
  },
  "models": { "claude-fable-5-1": {} }
}

Tu również baseURL musi kończyć się na /v1: pakiet Anthropic dopisuje tylko /messages, a samo https://apiclan.us zwróciło w teście 404. To odwrotnie niż w Claude Code, gdzie ANTHROPIC_BASE_URL nie może zawierać /v1.

Ile kosztuje krótka odpowiedź

W pustym projekcie poprosiliśmy OpenCode o „Reply with just OK”. Każdy model wysłał dwa żądania: jedno, by nadać tytuł sesji, i właściwe, z promptem systemowym i definicjami narzędzi OpenCode.

ModelŻądaniaTokeny wejściowe (tytuł + odpowiedź)Czas całkowityKoszt
gpt-6-astra24,640 + 7,67820.5 s$0.050
deepseek-v4-pro2528 + 5,70834.1 s$0.005
deepseek-v4.1-flash2529 + 3,02721.8 s$0.0006

OpenCode wysyła modelom GPT dużo dłuższy prompt systemowy (ok. 7700 tokenów) niż DeepSeek (ok. 3000), a samo żądanie tytułu zużyło na GPT 4640 tokenów. Dlatego to samo „OK” kosztowało na gpt-6-astra około 77 razy więcej niż na deepseek-v4.1-flash. Test z 12 października 2026, OpenCode 1.19.0; koszty według rozliczenia naszej bramki.

Ogranicz narzut dzięki small_model

OpenCode używa small_model do zadań pobocznych, takich jak tytuły sesji. Skieruj go na tani model u osobnego dostawcy:

"small_model": "apiclan-ds/deepseek-v4.1-flash",
"provider": {
  "apiclan": { ... },
  "apiclan-ds": {
    "npm": "@ai-sdk/openai-compatible",
    "options": {
      "baseURL": "https://apiclan.us/v1",
      "apiKey": "{env:APICLAN_DS_KEY}"
    },
    "models": { "deepseek-v4.1-flash": {} }
  }
}

Przy gpt-6-astra jako modelu głównym żądanie tytułu spadło z 0,0187 $ do 0,00003 $, a cała wymiana jednego słowa z 0,050 $ do 0,031 $ — 38% mniej przy każdej nowej sesji, bez zmiany odpowiedzi.

Małe zadanie programistyczne

To samo zadanie dla każdego modelu: napisać fizzbuzz.py i testy pytest, bez uruchamiania poleceń. Potem porównaliśmy każdą funkcję z poprawnym wynikiem dla 1–30.

ModelŻądaniaCzas całkowityKosztPoprawneAsercje w testach
gpt-6-astra340 s$0.069✓2
deepseek-v4-pro361 s$0.008✓7
deepseek-v4.1-flash325 s$0.0011✓7

Wszystkie trzy napisały poprawny kod w trzech żądaniach. deepseek-v4.1-flash był najszybszy i kosztował około 1/60 tego, co gpt-6-astra; oba modele DeepSeek napisały też dokładniejsze testy. deepseek-v4-pro był najwolniejszy, bo przed każdym krokiem rozumuje. Czas całkowity obejmuje kilka sekund startu samego OpenCode.

Typowe błędy

Inne narzędzia dla programistów: Cline z własnym API · Codex z własnym API.

Zacznij korzystać

Bez abonamentu, bez minimum miesięcznego, bez rozmowy z handlowcem. Doładuj w USDT i płać za to, czego używasz — 1 USDT to 2 kredyty salda API.

Przeczytaj 30-sekundowy szybki start

Język: English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Deutsch · Français · Español · Türkçe · Português · Italiano · Bahasa Indonesia · Tiếng Việt · Bahasa Melayu · Polski · Čeština · فارسی · Русский

Ceny na tej stronie są uzupełniane automatycznie z rzeczywistych danych rozliczeniowych. Warunki stron trzecich cytujemy z ich dokumentacji.