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.
  • user nous 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, transmettez user.ip et 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"} ; si message vaut null, 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 typeContenu
user_messageMessage utilisateur enregistré
deltaUn fragment de texte text de la réponse, à concaténer dans l'ordre
productsFiches produit trouvées par l'AI
languageLe client a demandé un changement de langue de réponse ; language contient le nouveau code de langue
statusChangement de statut de la conversation (par ex. transfert à un agent)
replaceRemplace l'intégralité de la réponse déjà reçue par text (en cas d'erreur, par un message de repli)
queued_for_humanLa conversation est prise en charge par un agent humain, sans réponse de l'AI
doneMessage final enregistré et statut de la conversation
errorUne erreur est survenue

Autres endpoints

MéthodeCheminDescription
GET/v1/conversationsListe des conversations, ?status=&end_user_id=
GET/v1/conversations/{id}/messagesConversation et tous ses messages
POST/v1/conversations/{id}/messagesVotre 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}/statusAction côté support : {"status": "ai"} rend la conversation à l'AI, {"status": "closed"} clôt la conversation
POST/v1/conversations/{id}/closeLe 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: