Chat Completions
Генерация текста в формате OpenAI, обычный и потоковый ответ
Эндпоинт совместим с форматом OpenAI Chat Completions — если вы уже умеете работать с OpenAI, переезд займёт минуты.
POST /v3/chat/completions/create
Запрос
{
"model": "aiesa-pro",
"messages": [
{ "role": "system", "content": "Ты — дружелюбный ассистент поддержки." },
{ "role": "user", "content": "Что за модель ты используешь?" }
],
"temperature": 0.7,
"max_tokens": 1024
}| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
model | string | — | aiesa-mini или aiesa-pro (обязательно) |
messages | массив | — | Роли system, user, assistant; минимум одно сообщение |
temperature | number | 0.7 | «Креативность» (0–2) |
max_tokens | int | 32000 | Максимум токенов в ответе (1–32000) |
stream | bool | false | Вернуть ответ потоком (SSE) |
response_format | объект | — | text, json_object, json_schema — как у OpenAI |
Параметр response_format принимает и проверяет те же значения, что и у OpenAI:
{ "type": "text" }, { "type": "json_object" } или
{ "type": "json_schema", "json_schema": { "name": "...", "schema": {...} } }.
Ответ (обычный, stream: false)
200 OK — классическая структура чат-ответа:
{
"id": "chatcmpl-8f3a…",
"object": "chat.completion",
"created": 1724300000,
"model": "aiesa-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Я работаю на основе моделей семейства Aiesa и помогаю с…"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 32,
"completion_tokens": 48,
"total_tokens": 80
}
}Использование токенов usage — основа тарификации: за чат списывается по
входным и выходным токенам.
Потоковый ответ (stream: true)
200 OK, заголовок Content-Type: text/event-stream. Ответ приходит
несколькими SSE-событиями:
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","created":…,"model":"aiesa-pro","choices":[{"index":0,"delta":{"role":"assistant","content":""}}]}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Я работаю"}}]}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" на основе"}}]}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]Собирайте delta.content из событий до data: [DONE] — это и есть полный ответ.
Честное замечание: сегодня потоковый ответ буферизуется на сервере и отдаётся одним пакетом по готовности. Формат SSE при этом уже настоящий — клиентский код останется совместимым с будущим инкрементальным стримингом.