Partager via


Comprendre les concepts du bot

Les interactions d’un bot peuvent être à l’aide de texte, de parole, d’images ou de vidéos. Il traite l’entrée de l’utilisateur pour comprendre sa demande et évalue l’entrée pour effectuer les tâches pertinentes. Un bot peut demander des informations ou activer l’accès aux services et répondre à l’utilisateur.

Étendues de bot

Les bots dans Microsoft Teams peuvent être intégrés dans une conversation à deux, une conversation de groupe ou un canal dans une équipe. Chaque étendue fournit des opportunités et des défis uniques pour votre bot conversationnel.

Dans un canal Dans une conversation de groupe Dans une conversation privée
Portée massive Moins de membres Mode traditionnel
Interactions individuelles concises @mention vers le bot Questions et réponses Un bot
@mention vers le bot Similaire au canal Bots qui décrivent les rires et prennent des notes

Dans un canal

Les canaux contiennent des conversations entre plusieurs personnes, même jusqu’à 2000. Cela donne potentiellement une portée massive à votre bot, mais les interactions individuelles doivent être concises. Les interactions multitour traditionnelles ne fonctionnent pas. Au lieu de cela, vous devez utiliser des cartes ou des dialogues interactifs (appelés modules de tâche dans TeamsJS v1.x) ou déplacer la conversation vers une conversation un-à-un pour collecter un grand nombre d’informations. Votre bot a uniquement accès aux messages où il s’agit de @mentioned. Vous pouvez récupérer des messages supplémentaires à partir de la conversation à l’aide d’autorisations Microsoft Graph et au niveau de l’organisation.

Les bots fonctionnent mieux dans un canal dans les cas suivants :

  • Notifications, où vous fournissez une carte interactive permettant aux utilisateurs de prendre des informations supplémentaires.
  • Scénarios de commentaires, tels que les sondages et les enquêtes.
  • Un cycle de requête ou de réponse unique résout les interactions et les résultats sont utiles pour plusieurs membres de la conversation.
  • Les bots sociaux ou amusants, où vous obtenez une image de chat exceptionnelle, choisissez aléatoirement un gagnant, etc.

Dans une conversation de groupe

Les conversations de groupe sont des conversations non thématiques entre trois personnes au minimum. Elles impliquent généralement moins de membres qu’un canal et sont plus éphémères. À l’instar d’un canal, votre bot n’a accès qu’aux messages où il se trouve @mentioned directement.

Les bots qui fonctionnent mieux dans un canal fonctionnent également mieux dans une conversation de groupe.

Dans une conversation privée

Les bots de conversation interagissent traditionnellement de cette façon avec les utilisateurs. Voici quelques exemples de bots conversationnels un-à-un :

  • Questions et réponses Un bot
  • bots qui lancent des flux de travail dans d’autres systèmes.
  • des bots qui racontent des blagues.
  • bots qui prennent des notes. Avant de créer des chatbots un-à-un, déterminez si une interface basée sur une conversation est la meilleure façon de présenter vos fonctionnalités.

Gestionnaire d’activités et logique de bot

Pour créer une application bot qui répond à vos besoins, il est essentiel de comprendre le gestionnaire d’activité microsoft Teams et la logique du bot. Ces deux composants clés fonctionnent ensemble pour organiser la logique conversationnelle.

  • Gestionnaire d’activités Teams : les gestionnaires d’activités Teams étendent les fonctionnalités des bots standard en ajoutant la prise en charge des événements et des interactions spécifiques à Teams. Ces événements peuvent inclure la création de canaux, les ajouts de membres de l’équipe et d’autres actions propres à l’environnement Teams. En utilisant des gestionnaires d’activités Teams, les bots peuvent fournir une expérience utilisateur plus intégrée et transparente au sein de la plateforme Teams.

  • Logique du bot : l’objet bot, qui héberge la logique conversationnelle du bot, est chargé de prendre des décisions en fonction des entrées utilisateur. Il expose un gestionnaire de tour, qui est la méthode qui accepte les activités entrantes de l’adaptateur de bot. La logique du bot garantit que chaque tour de la conversation est géré de manière appropriée, ce qui contribue à la cohérence et à l’efficacité globales du bot.

Ces deux composants fonctionnent ensemble pour créer une expérience conversationnelle attrayante. Le gestionnaire d’activités traite ce que l’utilisateur dit, tandis que la logique du bot détermine la meilleure réponse. Ensemble, ils permettent :

  • Comprendre le contexte de la conversation
  • Personnalisation des interactions
  • Récupération efficace des informations
  • Gestion d’un flux conversationnel adaptatif

En comprenant le gestionnaire d’activités et la logique du bot, vous pouvez concevoir et implémenter des solutions d’IA conversationnelle et de bot conventionnelles intelligentes et conviviales.

Gestionnaire d’activités Teams

Le gestionnaire d’activités est au cœur des fonctionnalités d’un bot, en gérant et en traitant les interactions utilisateur. Il est basé sur le gestionnaire d’activités de l’Microsoft Bot Framework et achemine toutes les activités Teams avant de gérer celles qui ne sont pas spécifiques à Teams. Il agit comme un intermédiaire entre l’entrée de l’utilisateur et la réponse du bot :

  • Reçoit les messages entrants.
  • Récupère des données clés à partir d’une entrée utilisateur.
  • Identifie l’intention de l’utilisateur à l’aide du traitement en langage naturel (NLP).
  • Gère le contexte et l’état de la conversation.
  • Génère des réponses basées sur l’entrée et l’intention de l’utilisateur.

Le gestionnaire d’activités améliore l’expérience utilisateur, l’efficacité, la précision, la scalabilité et la flexibilité.

Lorsqu’un bot Teams obtient une activité, elle est routée via les gestionnaires d’activités. Toutes les activités passent par un gestionnaire de base appelé gestionnaire de tour, qui appelle ensuite le gestionnaire d’activités approprié. Le bot Teams est dérivé de la TeamsActivityHandler classe , qui provient de la classe de ActivityHandler Bot Framework.

Remarque

Si le traitement d’une activité de bot prend plus de 15 secondes, Teams envoie une demande de nouvelle tentative au point de terminaison du bot, de sorte que vous pouvez voir des demandes en double.

Les bots sont générés à l’aide de Bot Framework. Lorsqu’un bot reçoit un message, le gestionnaire de tour est averti et l’envoie au OnMessageActivityAsync gestionnaire. Cela fonctionne de la même façon dans Teams. Si le bot reçoit une mise à jour de conversation, le gestionnaire de tour l’envoie à OnConversationUpdateActivityAsync. Le gestionnaire d’activités Teams recherche d’abord les événements spécifiques à Teams. S’il n’y en a pas, il les transmet au gestionnaire d’activités de Bot Framework.

Dans la classe de gestionnaire d’activités Teams, il existe deux gestionnaires d’activités Teams principaux :

  • OnConversationUpdateActivityAsync achemine toutes les activités de mise à jour de conversation.
  • OnInvokeActivityAsync achemine toutes les activités d’appel Teams.

Pour implémenter votre logique pour Teams gestionnaires d’activités spécifiques, vous devez remplacer les méthodes de votre bot, comme indiqué dans la section logique du bot. Il n’existe aucune implémentation de base pour ces gestionnaires. Par conséquent, ajoutez la logique souhaitée dans votre remplacement.

Pour configurer votre logique pour les gestionnaires d’activités spécifiques à Teams, vous devez remplacer les méthodes de votre bot, comme indiqué dans la section logique du bot . Il n’existe aucune implémentation par défaut pour ces gestionnaires. Il vous suffit donc d’ajouter la logique souhaitée dans votre remplacement.

Extraits de code pour les gestionnaires d’activités Teams :

OnTeamsChannelCreatedAsync


protected override Task OnTeamsChannelCreatedAsync(ChannelInfo channelInfo, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
        {
            // Code logic here
        }

OnTeamsChannelDeletedAsync


protected override Task OnTeamsChannelDeletedAsync(ChannelInfo channelInfo, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
        {
            // Code logic here
        }

OnTeamsChannelRenamedAsync


protected override Task OnTeamsChannelRenamedAsync(ChannelInfo channelInfo, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
  {
   // Code logic here
  }

OnTeamsTeamRenamedAsync


protected override Task OnTeamsTeamRenamedAsync(TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
  {
   // Code logic here
  }

OnTeamsMembersAddedAsync


protected override Task OnTeamsMembersAddedAsync(IList<TeamsChannelAccount> teamsMembersAdded, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
  {
   // Code logic here
  }

OnTeamsMembersRemovedAsync


protected override Task OnTeamsMembersRemovedAsync(IList<TeamsChannelAccount> teamsMembersRemoved, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken);
  {
   // Code logic here
  }

OnTeamsMessageEditAsync

protected override async Task OnTeamsMessageEditAsync(ITurnContext<IMessageUpdateActivity> turnContext, CancellationToken cancellationToken)
  { 
   // Code logic here 
  } 

OnTeamsMessageUndeleteAsync

protected override async Task OnTeamsMessageUndeleteAsync(ITurnContext<IMessageUpdateActivity> turnContext, CancellationToken cancellationToken)
  { 
   // Code logic here 
  } 

OnTeamsMessageSoftDeleteAsync

 protected override async Task OnTeamsMessageSoftDeleteAsync(ITurnContext<IMessageDeleteActivity> turnContext, CancellationToken cancellationToken)
  { 
   // Code logic here 
  } 

Exemple de gestionnaire d’activité de bot

Le code suivant fournit un exemple d’activité de bot pour une étendue d’équipe de canal :


protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    var mention = new Mention
    {
        Mentioned = turnContext.Activity.From,
        // EncodeName: Converts the name to a valid XML name.
        Text = $"<at>{XmlConvert.EncodeName(turnContext.Activity.From.Name)}</at>",
    };
    
    // MessageFactory.Text(): Specifies the type of text data in a message attachment.
    var replyActivity = MessageFactory.Text($"Hello {mention.Text}.");
    replyActivity.Entities = new List<Entity> { mention };

    // Sends a message activity to the sender of the incoming activity.
    await turnContext.SendActivityAsync(replyActivity, cancellationToken);
}

Le code suivant fournit un exemple d’activité de bot pour une conversation un-à-un :


// Handle message activity
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    // Remove recipient mention text from Text property.
    // Use with caution because this function is altering the text on the Activity.
    turnContext.Activity.RemoveRecipientMention();
    var text = turnContext.Activity.Text.Trim().ToLower();

    // Sends a message activity to the sender of the incoming activity.
    await turnContext.SendActivityAsync(MessageFactory.Text($"Your message is {text}."), cancellationToken);
}

Logique de bot

La logique du bot intègre les règles fondamentales et les frameworks de prise de décision qui dictent les actions et les interactions d’un bot. Il décrit la façon dont le bot interprète les entrées utilisateur, formule les réponses et participe aux conversations.

Dans Teams, la logique du bot traite les activités entrantes à partir d’un ou plusieurs de vos canaux de bot et génère en réponse des activités sortantes. Cela est toujours vrai pour les bots dérivés de la classe de gestionnaire d’activités Teams, qui vérifie d’abord les activités Teams. Après avoir vérifié Teams activités, elle transmet toutes les autres activités au gestionnaire d’activités de Bot Framework.

Principaux gestionnaires Bot Framework

Remarque

  • À l’exception des activités des membres ajoutés et supprimés, tous les gestionnaires d’activités décrits dans cette section continuent de fonctionner comme ils le font avec un bot non Teams.
  • La méthode onInstallationUpdateActivityAsync() est utilisée pour obtenir les paramètres régionaux de Microsoft Teams lors de l’ajout du bot à Microsoft Teams.

Les gestionnaires d’activités sont différents dans le contexte d’une équipe, où un nouveau membre est ajouté à l’équipe au lieu d’un thread de message.

La liste des gestionnaires définis dans ActivityHandler inclut les événements suivants :

Événement Gestionnaire ou méthode sdk Description
Tout type d’activité reçu OnTurnAsync() Cette méthode appelle l’un des autres gestionnaires, en fonction du type d’activité reçue.
Activité de message reçue OnMessageActivityAsync() Vous pouvez remplacer cette méthode pour gérer une Message activité.
Activité de mise à jour de message reçue OnMessageUpdateActivityAsync() Vous pouvez remplacer cette méthode pour gérer une activité de mise à jour de message.
Activité de suppression de message reçue OnMessageDeleteActivityAsync() Vous pouvez remplacer cette méthode pour gérer une activité de suppression de message.
Activité de mise à jour de conversation reçue OnConversationUpdateActivityAsync() Cette méthode appelle un gestionnaire si des membres autres que le bot ont rejoint ou quitté la conversation, sur une ConversationUpdate activité.
Les membres non-bot ont rejoint la conversation OnMembersAddedAsync() Cette méthode peut être remplacée pour gérer les membres qui rejoignent une conversation.
Les membres non-bot ont quitté la conversation OnMembersRemovedAsync() Cette méthode peut être substituée pour gérer les membres quittant une conversation.
Activité d’événement reçue OnEventActivityAsync() Cette méthode appelle un gestionnaire spécifique au type d’événement, sur une Event activité.
Activité d’événement de réponse de jeton reçue OnTokenResponseEventAsync() Cette méthode peut être remplacée pour gérer les événements de réponse de jeton.
Activité d’événement sans réponse de jeton reçue OnEventAsync() Cette méthode peut être remplacée pour gérer d’autres types d’événements.
Autre type d’activité reçu OnUnrecognizedActivityTypeAsync() Cette méthode peut être substituée pour gérer n’importe quel type d’activité autrement non géré.

Gestionnaires d’activités Microsoft Teams

Étend TeamsActivityHandler la liste des gestionnaires dans la section Principaux gestionnaires Bot Framework pour inclure les événements suivants :

Événement Gestionnaire ou méthode sdk Description
channelCreated OnTeamsChannelCreatedAsync() Cette méthode peut être substituée pour gérer un canal Teams en cours de création. Pour plus d’informations, consultez canal créé dans Événements de mise à jour de conversation.
channelDeleted OnTeamsChannelDeletedAsync() Cette méthode peut être remplacée pour gérer un canal Teams en cours de suppression. Pour plus d’informations, consultez Canal supprimé dans Événements de mise à jour de conversation.
channelRenamed OnTeamsChannelRenamedAsync() Cette méthode peut être remplacée pour gérer un canal Teams renommé. Pour plus d’informations, consultez Canal renommé dans Événements de mise à jour de conversation.
teamRenamed OnTeamsTeamRenamedAsync() return Task.CompletedTask;Cette méthode peut être remplacée pour gérer une équipe Teams renommée. Pour plus d’informations, consultez l’équipe renommée dans Événements de mise à jour de conversation.
MembersAdded OnTeamsMembersAddedAsync() Cette méthode appelle la OnMembersAddedAsync méthode dans ActivityHandler. La méthode peut être remplacée pour gérer les membres qui rejoignent une équipe. Pour plus d’informations, consultez Membres de l’équipe ajoutés dans Événements de mise à jour de conversation.
MembersRemoved OnTeamsMembersRemovedAsync() Cette méthode appelle la OnMembersRemovedAsync méthode dans ActivityHandler. La méthode peut être remplacée pour gérer les membres quittant une équipe. Pour plus d’informations, consultez Membres de l’équipe supprimés dans Événements de mise à jour de conversation.
messageEdit OnTeamsMessageEditAsync() Vous pouvez remplacer cette méthode pour gérer un événement de modification de message Teams.
messageUndelete OnTeamsMessageUndeleteAsync() Vous pouvez remplacer cette méthode pour gérer un événement d’annulation de suppression de message Teams.
messageSoftDelete OnTeamsMessageSoftDeleteAsync() Vous pouvez remplacer cette méthode pour gérer un événement de suppression réversible de message Teams.

Teams appeler des activités

La liste des gestionnaires d’activités Teams appelés à partir du OnInvokeActivityAsync gestionnaire d’activités Teams comprend les types d’appels suivants :

Appeler des types Gestionnaire ou méthode sdk Description
CardAction.Invoke OnTeamsCardActionInvokeAsync() Lorsque le connecteur reçoit une activité d’appel d’action carte, cette méthode est appelée.
fileConsent/invoke OnTeamsFileConsentAcceptAsync() Lorsqu’un utilisateur accepte un carte de consentement de fichier, cette méthode est appelée.
fileConsent/invoke OnTeamsFileConsentAsync() Lorsque le connecteur reçoit un consentement de fichier carte activité, cette méthode est appelée.
fileConsent/invoke OnTeamsFileConsentDeclineAsync() Lorsqu’un utilisateur refuse un consentement de fichier carte, cette méthode est appelée.
actionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync() Lorsque le connecteur reçoit un connecteur carte pour Groupes Microsoft 365 activité d’action, cette méthode est appelée.
signin/verifyState OnTeamsSigninVerifyStateAsync() Lorsque le connecteur reçoit une signIn activité de vérification de l’état, cette méthode est appelée.
tâche/extraction OnTeamsTaskModuleFetchAsync() Vous pouvez remplacer cette méthode dans une classe dérivée pour fournir une logique lorsqu’une boîte de dialogue (appelée module de tâche dans TeamsJS v1.x) est extraite.
task/submit OnTeamsTaskModuleSubmitAsync() Vous pouvez remplacer cette méthode dans une classe dérivée pour fournir une logique lors de l’envoi d’un dialogue.

Les activités Invoke répertoriées dans cette section sont destinées aux bots conversationnels dans Teams. Le Kit de développement logiciel (SDK) Bot Framework prend également en charge les activités d’appel spécifiques aux extensions de message. Pour plus d’informations, consultez les extensions de message.


Maintenant que vous vous êtes familiarisé avec les gestionnaires d’activité des bots, voyons comment les bots se comportent différemment en fonction de la conversation et des messages qu’ils reçoivent ou envoient.

Recommandations

Une boîte de dialogue étendue entre votre bot et l’utilisateur est un moyen lent et complexe d’accomplir une tâche. Un bot qui prend en charge des commandes excessives, en particulier un large éventail de commandes, n’est pas réussi ou n’est pas vu de manière positive par les utilisateurs.

  • Éviter les expériences multitours dans la conversation Un dialogue étendu nécessite que le développeur conserve l’état. Pour quitter cet état, un utilisateur doit expirer ou sélectionner Annuler. En outre, le processus est fastidieux. Par exemple, consultez le scénario de conversation suivant :

    UTILISATEUR : planifier une réunion avec Megan.

    BOT : J’ai trouvé 200 résultats, y compris un prénom et un nom.

    UTILISATEUR : Planifiez une réunion avec Megan Bowen.

    BOT : OK, à quelle heure voulez-vous rencontrer Megan Bowen ?

    UTILISATEUR : 13:00.

    BOT : quel jour ?

  • Prendre en charge six commandes ou moins fréquentes Comme il n’y a que six commandes visibles dans le menu du bot actuel, il est peu probable que quelque chose de plus soit utilisé avec une fréquence quelconque. Les bots qui s’inscrivent dans un domaine spécifique plutôt que d’essayer d’être un grand assistant fonctionnent mieux.

  • Optimiser la taille de la base de connaissances pour une interaction plus rapide L’un des inconvénients des bots est qu’il est difficile de maintenir une récupération volumineuse base de connaissances avec des réponses non notées. Les bots sont particulièrement adaptés aux interactions courtes et rapides, sans passer en revue les longues listes à la recherche d’une réponse.

Explorer d’autres fonctionnalités du bot

En plus des fonctionnalités de bot classiques, vous pouvez également explorer les fonctionnalités avancées disponibles dans une application bot Teams :

Exemple de code

Exemple de nom Description .NET Node.js Python
Bot de conversation Teams Cet exemple d’application montre comment utiliser différents événements de conversation de bot disponibles dans Bot Framework v4. View View View
Échantillons de bottes Ensemble d’exemples Bot Framework v4. View View View

Étape suivante

Voir aussi