Диалог
Общайтесь с AI в своём приложении или системе поддержки: поддерживается потоковая передача ответов, а также перевод диалога на оператора, завершение и оценка.
POST /v1/chat
{
"message": "有没有 400 美元以内的潜水表?",
"conversation_id": null,
"user": {"id": "u_123", "name": "李四", "email": "li@example.com", "ip": "85.214.132.117", "language": null},
"stream": false
}
- Если
conversation_idне передан, создаётся новый диалог; он возвращается в ответе и передаётся в последующих сообщениях. userпередаётся вашим сервером напрямую нам (вызывающая сторона с API Key считается доверенной); только при его наличии можно искать заказы.- Язык ответа по умолчанию: если передан
user.language(например,de,zh-CN,pt-BR), используется он; иначе передайтеuser.ip, и мы определим язык по местоположению; если не передано ни то, ни другое, используется язык по умолчанию из настроек. Если покупатель попросил сменить язык в ходе диалога, приоритет у его просьбы. - При
stream: falseвозвращается{"conversation_id", "message", "status", "products"};messageсо значениемnullозначает, что диалог ведёт оператор и сообщение передано человеку. - При
stream: trueвозвращается SSE, события — в таблице ниже.
Событие type | Содержание |
|---|---|
user_message | Сохранённое сообщение пользователя |
delta | Фрагмент текста ответа text, склеивается по порядку |
products | Карточки товаров, найденные AI |
language | Покупатель попросил сменить язык ответа, language — код нового языка |
status | Изменение статуса диалога (например, перевод на оператора) |
replace | Полностью заменить уже полученный ответ на text (при ошибке подставляется резервный текст) |
queued_for_human | Диалог ведёт оператор, ответа AI нет |
done | Окончательно сохранённое сообщение и статус диалога |
error | Ошибка |
Другие эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /v1/conversations | Список диалогов, ?status=&end_user_id= |
| GET | /v1/conversations/{id}/messages | Диалог и все его сообщения |
| POST | /v1/conversations/{id}/messages | Ваша система поддержки отвечает от имени оператора: {"content", "agent_name"}, после чего диалог переходит в статус «оператор» |
| POST | /v1/conversations/{id}/status | Действие со стороны поддержки: {"status": "ai"} — вернуть AI, {"status": "closed"} — завершить диалог |
| POST | /v1/conversations/{id}/close | Покупатель завершает диалог в вашем приложении; для уже завершённого диалога тоже возвращается успех |
| POST | /v1/conversations/{id}/rating | Оценка покупателя после завершения диалога: {"rating": "good" | "bad", "comment": "可选,最多 500 字"}, можно изменить |
Статусы диалога: ai (отвечает AI), pending_human (ожидает оператора), human (ведёт оператор), closed (завершён).
В диалоге также есть: closed_by — кем завершён (customer — покупателем, agent — оператором, ai — AI завершил после того, как покупатель сказал, что вопросов больше нет), rating / rating_comment / rated_at — оценка покупателя.
Завершение диалога: в шапке веб-окна есть кнопка «Завершить диалог» (с подтверждением); в мини-программе WeChat диалог также завершается, если покупатель отправит «结束»; если в «Настройках бота» включено «AI автоматически завершает диалог», то когда покупатель явно говорит, что вопросов больше нет, AI прощается и завершает диалог. После завершения веб-окно предлагает покупателю оценить ответ (доволен / недоволен) и оставить комментарий, а в WeChat — ответить 1 или 2; если покупатель напишет снова, это будет новый диалог.
Распределение после перевода на оператора: в «Настройках бота» выберите способ распределения — оператору с наименьшим числом активных диалогов (по умолчанию), по очереди или оператор берёт диалог сам. Автоматическое распределение работает только для операторов, выбравших «Онлайн» и держащих страницу админки открытой; у каждого есть лимит одновременных диалогов (настраивается на странице «Команда»); если назначенный оператор не отвечает дольше заданного времени (по умолчанию 2 минуты), диалог переназначается. В диалоге assigned_member_id — назначенный оператор, assigned_at — время назначения, handoff_at — время перевода на оператора. Если все заняты, покупатели встают в очередь, и веб-окно показывает, сколько человек перед ними.
Рабочие часы и сообщения: если в «Настройках бота» включены рабочие часы, то вне их покупатель при переводе на оператора не встаёт в очередь — в веб-окне появляется форма для сообщения (имя, email или телефон, вопрос), а в WeChat и через открытый API AI предлагает покупателю оставить сообщение; то же самое, если в рабочие часы нет операторов онлайн. Сообщение создаёт тикет; когда оператор отвечает, ответ уходит в исходный диалог, если тот ещё не завершён, а если покупатель оставил email, письмо также отправляется от имени магазина. Если настроена только отправка в вашу систему (способ перевода «Отправлять в мою систему»), рабочие часы не учитываются.
Эта страница была полезной?
Обновлено:
