Миграция
НачалоСредний4 мин
Меняете три вещи: адрес, ключ и имя модели. Код запросов остаётся прежним.
| Что | Было | Стало |
|---|---|---|
| Ключ | sk-..., sk-ant-..., sk-or-... | fetch_... (создать) |
| Адрес OpenAI / OpenRouter | https://api.openai.com/v1, https://openrouter.ai/api/v1 | https://api.zukko.pro/v1 |
| Адрес Anthropic | https://api.anthropic.com | https://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Проверка
- Нужная модель есть в списке.
- Короткий запрос проходит.
404 model_not_found— имени нет в каталоге. Другие коды — Ошибки API.