ДокументацияМиграция

Миграция

НачалоСредний4 мин

Меняете три вещи: адрес, ключ и имя модели. Код запросов остаётся прежним.

ЧтоБылоСтало
Ключsk-..., sk-ant-..., sk-or-...fetch_... (создать)
Адрес OpenAI / OpenRouterhttps://api.openai.com/v1, https://openrouter.ai/api/v1https://api.zukko.pro/v1
Адрес Anthropichttps://api.anthropic.comhttps://api.zukko.pro
Модельимя у провайдераимя из каталога

Работают: /v1/chat/completions, /v1/responses, /v1/messages, /v1/messages/count_tokens, /v1/images/generations, /v1/models, /v1/balance, /v1/usage, /v1/web-search. Остальное (embeddings, audio, files, batches, fine-tuning) отвечает 404.

1С OpenAI

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zukko.pro/v1",
    api_key="fetch_...",
)

r = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Привет!"}],
)
  • Модели GPT: gpt-6.1-sol, gpt-6-astra, gpt-6-sol, gpt-5.6-sol, gpt-5.6-terra, дешевле — gpt-6-luna, gpt-5.6-luna. Тот же клиент работает с Claude, Gemini, Qwen, DeepSeek, GLM.
  • Заголовки OpenAI-Organization и OpenAI-Project не нужны.
  • Через переменные: OPENAI_BASE_URL=https://api.zukko.pro/v1, OPENAI_API_KEY=fetch_....

2С Anthropic

python
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.zukko.pro",
    api_key="fetch_...",
)

msg = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Привет!"}],
)
  • Адрес без /v1. Заголовок x-api-key принимается.
  • Имена с датой (claude-sonnet-5-20260101) и с точкой (claude-opus-5.5) распознаются, но лучше писать как в каталоге.
  • Кэш промптов работает и оплачивается по ценам кэша. count_tokens платный — по цене входа.
  • Claude Code — отдельная инструкция.

3С OpenRouter

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zukko.pro/v1",  # было https://openrouter.ai/api/v1
    api_key="fetch_...",                    # было sk-or-...
)

r = client.chat.completions.create(
    model="claude-sonnet-5",                # было anthropic/claude-sonnet-5
    messages=[{"role": "user", "content": "Привет!"}],
)
  • Префикс вендора (anthropic/claude-sonnet-5) распознаётся, но лучше без него.
  • Поля models, provider, route, transforms и заголовки HTTP-Referer, X-Title уберите.
  • Баланс — GET /v1/balance, история — GET /v1/usage.

4Проверка

  1. Нужная модель есть в списке.
  2. Короткий запрос проходит. 404 model_not_found — имени нет в каталоге. Другие коды — Ошибки API.
Миграция · Документация Zukko