Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'APPLIQUE À : SDK v4
Quelle que soit la quantité d’intelligence artificielle qu’un bot possède, il peut encore avoir besoin de remettre la conversation à un être humain. Une telle remise peut être nécessaire si le bot ne comprend pas l’utilisateur (en raison d’une limitation de l’IA), ou si la demande ne peut pas être automatisée et nécessite une action humaine. Dans ce cas, le bot doit reconnaître quand il doit remettre la conversation et fournir à l’utilisateur une transition fluide.
Microsoft Bot Framework est une plateforme ouverte qui permet aux développeurs de s’intégrer à différentes plateformes d’engagement d’agent.
Modèles d’intégration de remise
Microsoft Bot Framework prend en charge deux modèles pour l’intégration aux plateformes d’engagement de l’agent. Le protocole de transfert est identique pour les deux modèles, mais les détails de mise en place diffèrent entre les modèles et les plateformes d'interaction avec les agents.
L’objectif n’est pas d’offrir une solution universelle pour l’intégration avec le système d’un client, mais plutôt de fournir un langage commun et des bonnes pratiques pour les développeurs de bots et les intégrateurs système avec lesquels créer des systèmes d’IA conversationnels avec un humain dans la boucle.
Bot en tant qu’agent
Dans le premier modèle, appelé bot en tant qu’agent, le bot rejoint les rangs des agents en direct connectés au hub d’agent et répond aux demandes utilisateur comme si les requêtes provenaient d’un autre canal Bot Framework. La conversation entre l’utilisateur et le bot peut être réaffectée à un agent humain, auquel cas le bot se désactive de la conversation active.
L’avantage principal de ce modèle est sa simplicité : vous pouvez ajouter un bot existant au hub d’agent avec un effort minimal et le hub d’agent gère la complexité du routage des messages.
Bot en tant que proxy
Le deuxième modèle est appelé bot en tant que proxy. L’utilisateur communique directement avec le bot, jusqu’à ce que le bot décide qu’il a besoin d’aide d’un agent humain. Le composant routeur de messages du bot redirige la conversation vers le hub d’agent, qui le distribue à l’agent approprié. Le bot reste dans la boucle et peut collecter la transcription de la conversation, filtrer les messages ou fournir du contenu supplémentaire à la fois à l’agent et à l’utilisateur.
La flexibilité et le contrôle sont les principaux avantages de ce modèle. Le bot peut prendre en charge plusieurs canaux et contrôler la façon dont les conversations sont escaladées et routées entre l’utilisateur, le bot et le centre d'agents.
Protocole de passation
Le protocole est centré sur les événements d’initiation, envoyés par le bot au canal et la mise à jour de l’état, envoyés par le canal au bot.
Initiation au transfert
Un événement d’initiation de transfert est créé par le bot pour initier le transfert.
L’événement peut inclure :
- Contexte de la demande de transfert, pour acheminer la conversation vers un agent approprié.
- Transcription de la conversation, afin qu’un agent puisse lire celle-ci qui a eu lieu entre le client et le chatbot avant le lancement du transfert.
Voici les propriétés courantes de l’événement d’initiation de transfert :
Nom : Obligatoire, la propriété name doit être définie sur « handoff.initiate ».
Conversation : Obligatoire, la propriété de conversation décrit la conversation dans laquelle l’activité existe. La conversation doit inclure la conversation
Id
.Valeur : Facultatif, la propriété valeur peut contenir du contenu JSON spécifique au hub d’agent que le hub peut utiliser pour acheminer la conversation vers un agent approprié.
Pièces jointes : facultatif, la propriété pièces jointes peut inclure une transcription en tant que pièce jointe. Le Bot Framework définit le type de pièce jointe transcription. Une pièce jointe peut être envoyée inline (sous réserve d’une limite de taille) ou hors connexion en fournissant
ContentUrl
.handoffEvent.Attachments = new List<Attachment> { new Attachment { Content = transcript, ContentType = "application/json", Name = "Transcript", } };
Remarque
Les hubs d’agent doivent ignorer les types de pièces jointes qu’ils ne comprennent pas.
Lorsqu’un bot détecte la nécessité de remettre la conversation à un agent, il signale son intention en envoyant un événement initial de transfert.
Le Kit de développement logiciel (SDK) pour C# inclut une CreateHandoffInitiation
méthode permettant de créer un événement d’initiation de transfert valide.
var activities = GetRecentActivities();
var handoffContext = new { Skill = "credit cards" };
var handoffEvent =
EventFactory.CreateHandoffInitiation(
turnContext, handoffContext, new Transcript(activities));
await turnContext.SendActivityAsync(handoffEvent);
État du transfert
Un événement d’état de transfert est envoyé par le centre d'agents au bot. L’événement informe le bot de l’état de l’opération de transfert lancée.
Remarque
Les bots ne sont pas requis pour gérer un événement d’état de transfert ; cependant, ils ne doivent pas le rejeter.
Voici les champs d’événement d’état de transfert courants :
Nom : Obligatoire, la propriété name doit être définie sur « handoff.status ».
Conversation : Obligatoire, la propriété de conversation décrit la conversation dans laquelle l’activité existe. La conversation doit inclure la conversation
Id
.Valeur : Obligatoire, la propriété valeur qui décrit l’état actuel de l’opération de transfert. La valeur a les propriétés suivantes.
État : Obligatoire, la propriété d’état peut avoir l’une des valeurs suivantes :
Valeur Sens « accepté » Un agent a accepté la demande et a pris le contrôle de la conversation. « échec » Échec de la demande de transfert. La propriété message peut contenir des informations supplémentaires pertinentes à l'échec. « terminé » La demande de transfert a été complétée. Message : Facultatif, la propriété de message est un objet défini par le hub d’agent.
Voici quelques exemples d’objets valeur :
{ "state" : "completed" }
{ "state" : "failed", "message" : "Can't find agent with requested skill" }
Bibliothèque de passation
La bibliothèque de transfert a été créée pour compléter le Kit de développement logiciel (SDK) Bot Framework v4 pour le support du transfert ; en particulier:
- Implémente les ajouts au Kit de développement logiciel (SDK) Bot Framework pour prendre en charge le transfert à un agent (également appelé escalade).
- Contient les définitions de trois types d’événements pour les opérations de signalisation de transfert.
Remarque
Les intégrations avec des hubs d’agent spécifiques ne font pas partie de la bibliothèque.