Chat API
Программное управление диалогами — синхронно или потоком, с источниками поиска в каждом ответе.
Как обрабатывается реплика
Любое сообщение — из виджета, через API или из мессенджера — проходит один и тот же конвейер. Сначала аутентификация и проверки членства и квоты, затем поиск по базе знаний, который дает опору для ответа, затем цикл вызова инструментов. Реплика сохраняется с шифрованием полей, а запись в память и доставка в другие каналы выполняются в фоне.
Синхронный чат
curl https://chat.agent4.io/chat \
-H "X-API-Key: tk_live_…" \
-H "X-End-User: lead-1024" \
-H "Content-Type: application/json" \
-d '{
"message": "Мне нужен бридж-кредит на 3 месяца",
"session_id": null,
"agent": null
}'Поля запроса
| Поле | Тип | Описание |
|---|---|---|
message | string | Сообщение пользователя. |
session_id | string | null | Не передавайте, чтобы начать новую сессию; передайте полученный идентификатор, чтобы продолжить ее. |
agent | string | null | Имя агента; без него берется агент тенанта по умолчанию. |
k | number | null | Переопределяет число извлекаемых фрагментов знаний. |
images | string[] | null | Изображения для этой реплики в виде data-URL (base64), мультимодальный режим. |
audio | string | null | Аудио в виде data-URL; расшифровывается на сервере и используется как сообщение. |
Ответ
{
"session_id": "6f1e…",
"reply": "По бридж-кредиту на 3 месяца действуют следующие условия…",
"sources": [
{ "document_id": "a3b4…", "distance": 0.18 }
],
"transcript": null
}В поле sources перечислены документы базы знаний, на которые опирается ответ, — по ним удобно
строить ссылки на источники. Поле transcript заполняется, если вы передали audio.
Потоковая передача
POST /chat/stream принимает то же тело запроса и возвращает server-sent events, поэтому токены
можно показывать по мере их поступления:
curl -N https://chat.agent4.io/chat/stream \
-H "X-API-Key: tk_live_…" \
-H "X-End-User: lead-1024" \
-H "Content-Type: application/json" \
-d '{ "message": "Сравните условия на 3 и 6 месяцев" }'Язык
Язык ответа определяется языком диалога. Заголовок Accept-Language задает язык системных сообщений
и писем-напоминаний; платформа поддерживает пять языков: en, zh, zh-TW, es, ru.
Полный каталог эндпоинтов — сессии, документы, пространства, расход — формируется из актуальной схемы OpenAPI на странице API docs в консоли.