Отправка сообщения

Отправка запроса к агенту.

Запрос

POST /chat-messages

Тело запроса

Поле

Тип

Обязательное

Описание

query

string

да

Содержимое пользовательского ввода или вопроса

user

string

да

Идентификатор пользователя, уникальный в рамках агента

inputs

object

нет

Входные переменные агента (пары ключ-значение по настройкам агента)

response_mode

string

нет

streaming (рекомендуется) или blocking. В блокирующем режиме таймаут — 100 с

conversation_id

string

нет

ID диалога для продолжения переписки. Пустая строка или отсутствие поля — новый диалог

files

array

нет

Вложения. Локальные файлы сначала загружаются через Загрузка файла

auto_generate_name

boolean

нет

Автоматическая генерация заголовка диалога. Если установлено false, используйте метод «Переименование диалога» с параметром auto_generate: true для асинхронной генерации заголовка (по умолчанию true)

Пример запроса (потоковый режим)

POST /v1/chat-messages HTTP/1.1 Host: api.evo-ai.ru Authorization: Bearer YOUR_SECRET_TOKEN Content-Type: application/json Accept: */* Content-Length: 176 { "inputs": { "city": "Москва" }, "query": "Какие характеристики у SberBoom?", "response_mode": "streaming", "conversation_id": "", "user": "test-user", "files": [] }

Пример запроса (блокирующий режим)

POST /v1/chat-messages HTTP/1.1 Host: api.evo-ai.ru Authorization: Bearer YOUR_SECRET_TOKEN Content-Type: application/json Accept: */* Content-Length: 179 { "inputs": {}, "query": "Какие характеристики у SberBoom?", "response_mode": "blocking", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "user": "test-user" }

Ответ

Тип ответа зависит от response_mode:

  • blockingapplication/json с объектом ChatCompletionResponse

  • streamingtext/event-stream (SSE). Каждое событие — строка с префиксом data: и JSON-объектом. Поток завершается событием message_end или error. События ping (каждые 10 с) можно игнорировать

Пример ответа (блокирующий режим)

{ "event": "message", "task_id": "c3800678-a077-43df-a102-53f23ed20b88", "id": "9da23599-e713-473b-982c-4328d4f5c78a", "message_id": "9da23599-e713-473b-982c-4328d4f5c78a", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "mode": "chat", "answer": "Характеристики SberBoom перечислены ниже...", "metadata": { "retriever_resources": [ { "position": 1, "dataset_id": "101b4c97-fc2e-463c-90b1-5261a4cdcafb", "dataset_name": "SberBoom", "document_id": "8dd1ad74-0b5f-4175-b735-7d98bbbb4e00", "document_name": "Каталог колонок Сбера", "segment_id": "ed599c7f-2766-4294-9d1d-e5235a61270a", "score": 0.98457545, "content": "\"Модель\",\"Дата выпуска\",\"Мощность\", \"Подключение\",\"Ассистент\",\"Аккумулятор\", \"Цвет\" \"SberBoom\",\"Сентябрь 2021\", \"10 Вт\", \"Bluetooth 5.0\",\"Салют\", \"2600 мАч\", \"Черный, Белый, Синий, Красный\"" } ] }, "created_at": 1705407629 }

Пример ответа (потоковый режим)

{ "event": "message", "task_id": "c3800678-a077-43df-a102-53f23ed20b88", "id": "9da23599-e713-473b-982c-4328d4f5c78a", "message_id": "9da23599-e713-473b-982c-4328d4f5c78a", "conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2", "mode": "chat", "answer": "Характеристики SberBoom перечислены ниже...", "metadata": { "retriever_resources": [ { "position": 1, "dataset_id": "101b4c97-fc2e-463c-90b1-5261a4cdcafb", "dataset_name": "SberBoom", "document_id": "8dd1ad74-0b5f-4175-b735-7d98bbbb4e00", "document_name": "Каталог колонок Сбера", "segment_id": "ed599c7f-2766-4294-9d1d-e5235a61270a", "score": 0.98457545, "content": "\"Модель\",\"Дата выпуска\",\"Мощность\", \"Подключение\",\"Ассистент\",\"Аккумулятор\", \"Цвет\" \"SberBoom\",\"Сентябрь 2021\", \"10 Вт\", \"Bluetooth 5.0\",\"Салют\", \"2600 мАч\", \"Черный, Белый, Синий, Красный\"" } ] }, "created_at": 1705407629 }

Коды ошибок

HTTP

Код

Описание

400

app_unavailable

Агент недоступен или настроен некорректно

400

not_chat_app

Режим агента не соответствует маршруту API

400

conversation_completed

Диалог завершён

400

provider_not_initialize

Не найдены учётные данные провайдера моделей

400

provider_quota_exceeded

Квота провайдера моделей исчерпана

400

model_currently_not_support

Текущая модель недоступна

400

completion_request_error

Ошибка генерации текста

404

not_found

Диалог не найден

429

too_many_requests

Слишком много одновременных запросов

429

rate_limit_error

Превышен лимит запросов провайдера

500

internal_server_error

Внутренняя ошибка сервера