API для текста и кода
Текстовые модели kosareva.cloud работают через POST /v1/chat/completions: один адрес и один ключ на весь каталог. Код под OpenAI SDK работает без других правок, а клиентам Anthropic нужен тот же адрес без /v1.
Первый запрос
Чат-запросы идут на /v1/chat/completions: те же messages, tools, response_format и max_tokens, что у OpenAI. Работает с любой из 114 текстовых моделей каталога.
from openai import OpenAI
client = OpenAI(
api_key="ВАШ_API_КЛЮЧ",
base_url="https://api.kosareva.cloud/v1",
)
response = client.chat.completions.create(
model="gpt-5-6",
messages=[{"role": "user", "content": "Привет!"}],
)
print(response.choices[0].message.content)
Как сменить модель
Поменяйте значение поля model, всё остальное в запросе остаётся как было. Модель не привязана к ключу, поэтому один ключ работает со всем каталогом.
model="claude-sonnet-5-5"
model="deepseek-v4-1-flash"
model="gemini-3-8-flash"
Имена берите из списка моделей: латиницей через дефисы, без приставки вендора и даты версии.
Потоковая выдача
С stream: true ответ приходит по кусочкам, как у OpenAI. В интерфейсах человек видит первые слова сразу, а не ждёт весь ответ. Для длинных ответов это ещё и защита от таймаута: без потока ответ приходит целиком в конце, и клиент с коротким таймаутом может не дождаться.
stream = client.chat.completions.create(
model="gpt-5-6",
messages=[{"role": "user", "content": "Объясни, что такое RAG, в трёх абзацах"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
max_tokens и пустой ответ
У рассуждающих моделей max_tokens покрывает и размышления, и сам ответ. При маленьком значении весь лимит уходит на рассуждения, и content приходит пустым при finish_reason: "length".
Ставьте max_tokens от 512 или не передавайте поле совсем, тогда действует лимит модели. Если ответ обрывается на полуслове, причина та же: поднимите лимит или попросите модель продолжить.
Картинка на входе чата
Это анализ изображения, а не генерация: картинка уходит в обычном запросе chat/completions, оплата идёт по токенам выбранной модели.
curl https://api.kosareva.cloud/v1/chat/completions \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5-5","messages":[{"role":"user","content":[{"type":"text","text":"Что на картинке?"},{"type":"image_url","image_url":{"url":"https://example.com/photo.jpg"}}]}]}'
Какие модели принимают картинки, видно в каталоге. Модель только для текста ответит ошибкой 400 с объяснением, деньги за такой запрос не списываются. Создать картинку помогут модели со страницы Изображения.
Формат Anthropic: Messages API
Для Anthropic SDK и инструментов на нём адрес https://api.kosareva.cloud без /v1: путь /v1/messages SDK допишет сам. Через этот формат работают модели Claude из каталога, остальные модели подключайте через OpenAI-совместимый адрес.
from anthropic import Anthropic
client = Anthropic(
api_key="ВАШ_API_КЛЮЧ",
base_url="https://api.kosareva.cloud",
)
message = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Привет!"}],
)
print(message.content[0].text)
Claude Code настраивается переменными ANTHROPIC_BASE_URL и ANTHROPIC_AUTH_TOKEN, шаги на странице Подключить агента.
Responses API
Клиенты на Responses API, например Codex CLI, работают по тому же адресу https://api.kosareva.cloud/v1, путь /v1/responses. Подходят модели OpenAI из каталога.
Защита персональных данных
Если в запросах бывают ФИО, телефоны, ИНН или реквизиты, поменяйте адрес на https://api.kosareva.cloud/guard/v1: такие данные заменяются заглушками до отправки в модель, а в ответе возвращаются на место. Подробнее на странице API Guard.