kosareva.cloud
RU
РусскийEnglish

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.