Source: https://ailoot.ai/docs/ru/api/chat-completions/
Canonical: https://ailoot.ai/docs/ru/api/chat-completions/
Language: ru

[API](https://ailoot.ai/docs/ru/) 

# Chat Completions

[Markdown](https://ailoot.ai/docs/ru/api/chat-completions/index.md)

Ответ модели на диалог в формате OpenAI. Самый распространённый формат: его понимают почти все клиенты.

POST`https://api.ailoot.ai/v1/chat/completions`

Chat Completions

```bash
curl https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "messages": [
      {"role": "user", "content": "Объясни в двух предложениях, что такое API."}
    ]
  }' 
```

```python
from openai import OpenAI
import os

client = OpenAI(max_retries=0, 
    base_url="https://api.ailoot.ai/v1",
    api_key=os.environ["AILOOT_API_KEY"],
)

resp = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Объясни в двух предложениях, что такое API."}],
)
print(resp.choices[0].message.content)
```

```js
import OpenAI from "openai";

const client = new OpenAI({ maxRetries: 0,
  baseURL: "https://api.ailoot.ai/v1",
  apiKey: process.env.AILOOT_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5-5",
  messages: [{ role: "user", content: "Объясни в двух предложениях, что такое API." }],
});
console.log(resp.choices[0].message.content);
```

200 OK

```json
{
  "id": "chatcmpl-8f2c…",
  "object": "chat.completion",
  "created": 1790812800,
  "model": "claude-sonnet-5-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "API — это договорённость о том, как одна программа просит другую что-то сделать…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Авторизация

| Параметр | Тип | Обязательность | Описание |
| --- | --- | --- | --- |
| `Authorization` | header | обязательный | Ключ в виде `Bearer sk-…`. Также подойдут заголовки `x-api-key` или `x-goog-api-key`. |

## Тело запроса

| Параметр | Тип | Обязательность | Описание |
| --- | --- | --- | --- |
| `model` | string | обязательный | ID модели из [каталога](https://ailoot.ai/models/ru/), например `claude-sonnet-5-5`. Модель должна поддерживать формат OpenAI Chat. |
| `messages` | array | обязательный | История диалога: объекты с `role` (`system`, `developer`, `user`, `assistant`, `tool`) и `content` — строкой или массивом частей (текст, `image_url`). |
| `stream` | boolean | необязательный | Ответ в формате Server-Sent Events. По умолчанию `false`. Платный текст приходит одним блоком после расчёта стоимости, а не по словам. |
| `stream_options` | object | необязательный | `{"include_usage": true}` — прислать итоговый `usage` последним событием потока. |
| `max_tokens` | integer | необязательный | Максимум токенов ответа. Новое имя — `max_completion_tokens`. Если лимит не указан, Ailoot подставляет 4096 (или меньше, если у модели лимит ответа меньше; у Grok свой лимит). Для длинных ответов задайте лимит явно, иначе ответ остановится на 4096 токенах с `finish_reason: "length"`. Лимит входит в резерв: чем он больше, тем больше нужно свободного баланса. |
| `temperature` | number | необязательный | Случайность ответа, обычно от 0 до 2. У рассуждающих моделей может игнорироваться. |
| `top_p` | number | необязательный | Альтернатива temperature: доля вероятностной массы для выбора токенов. |
| `stop` | string \| array | необязательный | Строки, на которых генерация остановится. |
| `tools` | array | необязательный | Описания функций, которые модель может вызвать. Формат — как у OpenAI: `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | необязательный | `auto`, `none`, `required` или конкретная функция. |
| `response_format` | object | необязательный | `{"type": "json_object"}` или `{"type": "json_schema", ...}` для структурированного ответа — если модель умеет. |
| `reasoning_effort` | string | необязательный | Глубина рассуждений для рассуждающих моделей: `low`, `medium`, `high`. |

Остальные параметры OpenAI передаются как есть; поддерживает ли их конкретная модель, решает разработчик модели.

## Ответ

| Параметр | Тип | Обязательность | Описание |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Ответ модели: `content`, при вызове инструментов — `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — ответ закончен; `length` — упёрся в `max_tokens` (такой ответ всё равно полный и оплачивается по факту); `tool_calls` — модель вызывает инструмент. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — по ним считается списание. |

Остались вопросы? Пришлите Request ID и описание — поможем разобраться.[Написать в поддержку](mailto:support@ailoot.ai)

## Ailoot · Компания и портфель её проектов





Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.





Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.





Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
