API
Контракт Cosmos LLM совместим с OpenAI Chat Completions. Ниже перечислены поддерживаемые эндпоинты и параметры.
Эндпоинты
POST /v1/chat/completionsОсновной эндпоинт: принимает сообщения и возвращает ответ модели — целиком или потоком.GET /v1/modelsВозвращает список доступных алиасов моделей в формате OpenAI list.GET /v1/meВозвращает текущий тариф, лимиты и сводку расхода по ключу.POST /v1/messagesAnthropic-совместимый формат сообщений: принимает system и messages и возвращает ответ в формате message. Поддерживает стриминг событиями SSE.
POST /v1/chat/completions
Основной эндпоинт: принимает сообщения и возвращает ответ модели — целиком или потоком.
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model |
string | Да | Алиас модели: cosmos-fast, cosmos-coder или cosmos-strong. |
messages |
array | Да | Массив объектов role/content. Роли: system, user, assistant. |
stream |
boolean | Нет | true включает потоковую отдачу через SSE. По умолчанию false. |
stream_options |
object | Нет | При include_usage: true последний чанк содержит блок usage. |
temperature |
number | Нет | Совместимость с OpenAI: значение передаётся модели как есть. |
max_tokens |
integer | Нет | Совместимость с OpenAI: ограничивает длину ответа. |
Ответ без стриминга
Возвращается объект chat.completion с массивом choices и блоком usage.
{
"id": "chatcmpl-9f2c1a",
"object": "chat.completion",
"created": 1750000000,
"model": "cosmos-fast",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Тариф Базовый — 4 900 ₽ в месяц." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 31, "completion_tokens": 14, "total_tokens": 45 }
}
Потоковая отдача (SSE)
При stream: true ответ приходит как text/event-stream. Каждое событие — строка data: с JSON-чанком, завершает поток строка data: [DONE].
curl https://api.cosmos-llm.ru/v1/chat/completions \
-H "Authorization: Bearer $COSMOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosmos-fast",
"stream": true,
"stream_options": { "include_usage": true },
"messages": [{"role": "user", "content": "Привет!"}]
}'
Чанк с текстом
data: {"id":"chatcmpl-9f2c1a","object":"chat.completion.chunk","created":1750000000,"model":"cosmos-fast","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}
data: {"id":"chatcmpl-9f2c1a","object":"chat.completion.chunk","created":1750000000,"model":"cosmos-fast","choices":[{"index":0,"delta":{"content":"Привет"},"finish_reason":null}]}
data: {"id":"chatcmpl-9f2c1a","object":"chat.completion.chunk","created":1750000000,"model":"cosmos-fast","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
Признак завершения
data: [DONE]
usage в потоке
Чтобы получить usage при стриминге, передайте stream_options.include_usage: true. Тогда последний чанк будет содержать блок usage без choices.
data: {"id":"chatcmpl-9f2c1a","object":"chat.completion.chunk","created":1750000000,"model":"cosmos-fast","choices":[],"usage":{"prompt_tokens":9,"completion_tokens":12,"total_tokens":21}}
data: [DONE]
Tool calling
Все модели поддерживают вызов инструментов в формате OpenAI. Передайте tools и tool_choice, а результат инструмента верните сообщением с ролью tool.
{
"model": "cosmos-coder",
"messages": [{"role": "user", "content": "Какая погода в Москве?"}],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Погода в городе",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
}
],
"tool_choice": "auto"
}
Агентские клиенты — opencode, Cline, Continue и Aider — используют tool calling автоматически.
GET /v1/models
Возвращает список доступных алиасов моделей в формате OpenAI list.
curl https://api.cosmos-llm.ru/v1/models \
-H "Authorization: Bearer $COSMOS_API_KEY"
{
"object": "list",
"data": [
{ "id": "cosmos-fast", "object": "model", "owned_by": "cosmos", "context_length": 131072, "created": 1767225600 },
{ "id": "cosmos-coder", "object": "model", "owned_by": "cosmos", "context_length": 131072, "created": 1767225600 },
{ "id": "cosmos-strong", "object": "model", "owned_by": "cosmos", "context_length": 131072, "created": 1767225600 }
]
}
GET /v1/me
Возвращает текущий тариф, лимиты и сводку расхода по ключу.
curl https://api.cosmos-llm.ru/v1/me \
-H "Authorization: Bearer $COSMOS_API_KEY"
{
"plan": "basic",
"limits": { "requests_per_minute": 60, "tokens_per_day": 1200000, "keys": 3 },
"usage": { "tokens_today": 1240, "tokens_month": 18400, "requests_today": 12 }
}
Пул общий для чата и API: токены, списанные в веб-чате, уменьшают пул, доступный по API-ключу, и наоборот.
POST /v1/messages
Anthropic-совместимый формат сообщений: принимает system и messages и возвращает ответ в формате message. Поддерживает стриминг событиями SSE.
POST /v1/embeddings
В разработкеСоздание эмбеддингов. Возвращает 501 not_implemented.
Формат ошибок
Все ошибки возвращаются JSON-объектом error с полями message, type и code. HTTP-статус соответствует типу ошибки.
{
"error": {
"message": "The model \`cosmos-4\` does not exist or is not available.",
"type": "model_not_found",
"code": "model_not_found"
}
}
Ошибки →