Перейти к содержимому
Cosmos LLM

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"
  }
}
Ошибки →