Conversation
Dialoguez avec l'IA dans votre propre application ou votre système de support client, avec réponses en streaming, transfert vers un agent humain, clôture et évaluation de la conversation.
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
}
- Si vous ne transmettez pas
conversation_id, une nouvelle conversation est créée ; son identifiant est renvoyé dans la réponse et doit être joint aux messages suivants. usernous est transmis directement par votre serveur (l'appelant disposant de la clé API est considéré comme fiable) ; ces informations sont nécessaires pour consulter les commandes.- Langue de réponse par défaut : si vous transmettez
user.language(par ex.de,zh-CN,pt-BR), c'est elle qui est utilisée ; sinon, transmettezuser.ipet nous déterminons la langue selon la localisation ; si aucun des deux n'est fourni, la langue par défaut du back-office s'applique. Si le client demande un changement de langue dans la conversation, sa demande prévaut. - Avec
stream: false, la réponse est{"conversation_id", "message", "status", "products"}; simessagevautnull, la conversation est prise en charge par un agent humain et le message lui a été transmis. - Avec
stream: true, la réponse est en SSE ; les événements sont décrits dans le tableau ci-dessous.
Événement type | Contenu |
|---|---|
user_message | Message utilisateur enregistré |
delta | Un fragment de texte text de la réponse, à concaténer dans l'ordre |
products | Fiches produit trouvées par l'AI |
language | Le client a demandé un changement de langue de réponse ; language contient le nouveau code de langue |
status | Changement de statut de la conversation (par ex. transfert à un agent) |
replace | Remplace l'intégralité de la réponse déjà reçue par text (en cas d'erreur, par un message de repli) |
queued_for_human | La conversation est prise en charge par un agent humain, sans réponse de l'AI |
done | Message final enregistré et statut de la conversation |
error | Une erreur est survenue |
Autres endpoints
| Méthode | Chemin | Description |
|---|---|---|
| GET | /v1/conversations | Liste des conversations, ?status=&end_user_id= |
| GET | /v1/conversations/{id}/messages | Conversation et tous ses messages |
| POST | /v1/conversations/{id}/messages | Votre système de support répond en tant qu'agent humain : {"content", "agent_name"} ; la conversation passe aussitôt en statut humain |
| POST | /v1/conversations/{id}/status | Action côté support : {"status": "ai"} rend la conversation à l'AI, {"status": "closed"} clôt la conversation |
| POST | /v1/conversations/{id}/close | Le client clôt la conversation dans votre app ; une conversation déjà clôturée renvoie également un succès |
| POST | /v1/conversations/{id}/rating | Évaluation du client après la clôture : {"rating": "good" | "bad", "comment": "可选,最多 500 字"} ; modifiable |
Statuts de conversation : ai (l'AI répond), pending_human (en attente d'un agent), human (prise en charge par un agent), closed (clôturée).
La conversation contient aussi : closed_by, qui indique qui a clôturé (customer le client, agent un agent, ai l'AI après que le client a indiqué n'avoir plus de questions), ainsi que rating / rating_comment / rated_at pour l'évaluation du client.
Clôturer la conversation : la fenêtre web comporte un bouton « Clôturer la conversation » en en-tête (avec confirmation) ; dans le mini-programme WeChat, le client peut aussi envoyer « 结束 » pour clôturer ; si l'option « L'AI clôture automatiquement la conversation » est activée dans les « Paramètres du robot », lorsque le client indique clairement n'avoir plus de questions, l'AI fait ses adieux puis clôt la conversation. Après la clôture, la fenêtre web invite le client à évaluer sa satisfaction (satisfait / insatisfait) et à laisser un commentaire ; dans WeChat, le client est invité à répondre 1 ou 2 ; les messages envoyés ensuite démarrent une nouvelle conversation.
Attribution après transfert à un agent : dans les « Paramètres du robot », choisissez le mode d'attribution — à l'agent ayant le moins de conversations en cours (par défaut), en alternance, ou prise en charge par l'agent lui-même. L'attribution automatique ne se fait qu'auprès des agents ayant sélectionné « En ligne » et dont la page du back-office est ouverte ; chacun a une limite de conversations simultanées (à définir dans la page « Équipe ») ; si l'agent attribué ne répond pas dans le délai défini (2 minutes par défaut), la conversation est réattribuée. Dans la conversation, assigned_member_id est l'agent attribué, assigned_at l'heure d'attribution et handoff_at l'heure du transfert à un agent. Si tous les agents sont occupés, le client fait la queue et la fenêtre web affiche le nombre de personnes devant lui.
Horaires d'ouverture et messages : une fois les horaires d'ouverture activés dans les « Paramètres du robot », un transfert à un agent en dehors des horaires n'entraîne pas de file d'attente : la fenêtre web affiche un formulaire de message (nom, e-mail ou téléphone, question) ; dans WeChat et via l'API ouverte, l'AI invite le client à laisser un message ; il en va de même pendant les horaires d'ouverture lorsqu'aucun agent n'est en ligne. Chaque message crée un ticket ; lorsque l'agent répond, si la conversation d'origine n'est pas encore clôturée, la réponse y est envoyée, et si le client a laissé un e-mail, un e-mail est aussi envoyé au nom de la boutique. Si vous utilisez uniquement la transmission vers votre système (mode de transfert « Push vers mon système »), les horaires d'ouverture ne sont pas pris en compte.
Cette page vous a-t-elle été utile ?
Dernière mise à jour:
