Partager via


Créer un chatbot IA de base

Le modèle de chatbot IA présente une application bot, similaire à ChatGPT, qui répond aux questions des utilisateurs et permet aux utilisateurs d’interagir avec le bot IA dans Microsoft Teams. La bibliothèque IA Teams est utilisée pour générer le modèle d’application, fournissant les fonctionnalités permettant de créer des applications Teams basées sur l’IA.

Configuration requise

Installer Pour l’utilisation...
Visual Studio Code Environnements de build JavaScript, TypeScript ou Python. Utilisez la dernière version.
Toolkit Teams Extension Microsoft Visual Studio Code qui crée une structure de projet pour votre application. Utilisez la dernière version.
Node.js Environnement runtime JavaScript principal. Pour plus d’informations, consultez Node.js table de compatibilité des versions pour le type de projet.
Microsoft Teams Microsoft Teams pour collaborer avec toutes les personnes avec lesquelles vous travaillez via des applications de conversation, de réunions et d’appels au même endroit.
Azure OpenAI Commencez par créer votre clé API OpenAI pour utiliser le transformateur préentraîné génératif (GPT) d’OpenAI. Si vous souhaitez héberger votre application ou accéder à des ressources dans Azure, vous devez créer un service Azure OpenAI.

Create un nouveau projet de chatbot IA de base

  1. Ouvrez Visual Studio Code.

  2. Sélectionnez l’icône Teams Toolkit dans la barre d’activité Visual Studio Code

  3. Sélectionnez Create une nouvelle application.

    Capture d’écran montrant l’emplacement du lien Create Nouveau projet dans la barre latérale du Kit de ressources Teams.

  4. Sélectionnez Custom Copilot.

    Capture d’écran montrant l’option permettant de sélectionner le projet Copilot personnalisé comme nouveau projet à créer.

  5. Sélectionnez Chatbot IA de base.

    Capture d’écran montrant l’option permettant de sélectionner des fonctionnalités d’application à l’aide de la liste des bibliothèques IA.

  6. Sélectionnez JavaScript.

    Capture d’écran montrant l’option permettant de sélectionner le langage de programmation.

  7. Sélectionnez Azure OpenAI.

    Capture d’écran montrant l’option permettant de sélectionner le LLM.

  8. Entrez vos informations d’identification OpenAI ou Azure OpenAI en fonction du service que vous sélectionnez. Ensuite, sélectionnez Entrée.

    Capture d’écran montrant l’emplacement où entrer la clé API d’ouverture Azure.

  9. Sélectionnez Dossier par défaut.

    Capture d’écran montrant le dossier d’application location à enregistrer.

    Pour modifier l’emplacement par défaut, procédez comme suit :

    1. Sélectionnez Parcourir.
    2. Sélectionnez l’emplacement de l’espace de travail du projet.
    3. Sélectionnez Sélectionner un dossier.
  10. Entrez un nom d’application pour votre application, puis sélectionnez la touche Entrée .

    Capture d’écran montrant l’option permettant d’entrer le nom approprié.

    Vous avez créé votre espace de travail de projet de bot de conversation IA.

    Capture d’écran montrant le chatbot ai créé et le fichier Lisez-moi est disponible.

  11. Sous EXPLORATEUR, accédez au fichier env.env.testtool.user>.

  12. Mettez à jour les détails suivants :

    • SECRET_AZURE_OPENAI_API_KEY=<your-key>
    • AZURE_OPENAI_ENDPOINT=<your-endpoint>
    • AZURE_OPENAI_DEPLOYMENT_NAME=<your-deployment>

    Capture d’écran montrant les détails mis à jour dans le fichier env.

  13. Pour déboguer votre application, sélectionnez la touche F5 ou, dans le volet gauche, sélectionnez Exécuter et déboguer (Ctrl+Maj+D), puis sélectionnez Déboguer dans l’outil de test (préversion) dans la liste déroulante.

    Capture d’écran montrant la sélection de l’option débogage dans la liste des options.

L’outil de test ouvre le bot dans une page web.

Capture d’écran montrant la réponse du bot avec un chatbot IA de base.

Découvrez le code source de l’application bot

Folder Sommaire
.vscode Fichiers Visual Studio Code pour le débogage.
appPackage Modèles pour le manifeste de l’application Teams.
env Fichiers d’environnement.
infra Modèles de provisionnement de ressources Azure.
src Code source de l’application.
teamsapp.yml Il s’agit du fichier projet main Teams Toolkit. Le fichier projet définit deux éléments principaux : propriétés et définitions de phase de configuration.
teamsapp.local.yml Cela remplace par des teamsapp.yml actions qui activent l’exécution et le débogage locaux.
teamsapp.testtool.yml Cela remplace par des teamsapp.yml actions qui permettent l’exécution et le débogage locaux dans l’outil de test d’application Teams.
src/index.js Configure le serveur d’applications bot.
src/adapter.js Configure l’adaptateur de bot.
src/config.js Définit les variables d’environnement.
src/prompts/chat/skprompt.txt Définit l’invite.
src/prompts/chat/config.json Configure l’invite.
src/app/app.js Gère les logiques métier pour le chatbot d’IA de base.

Fonctionnement du chatbot IA Teams

La bibliothèque d’IA Teams fournit un flux pour créer un chatbot intelligent avec des fonctionnalités IA comme suit :

Capture d’écran montrant le flux classique du chatbot IA.

  • TurnContext : l’objet de contexte de tour fournit des informations sur l’activité, telles que l’expéditeur et le destinataire, le canal et d’autres données nécessaires pour traiter l’activité.

  • TurnState : l’objet d’état de tour, semblable à un cookie, stocke les données du tour actuel. Cet objet, en tant que contexte de tour, est transmis dans l’ensemble de la logique d’application, y compris les gestionnaires d’activité et le système d’IA.

  • Authentification : si l’authentification utilisateur est configurée, Teams AI tente de connecter l’utilisateur. Si l’utilisateur est déjà connecté, le SDK récupère le jeton d’accès et continue. Sinon, le KIT de développement logiciel (SDK) lance le flux de connexion et termine le tour actuel.

  • Gestionnaires d’activités : la bibliothèque IA Teams exécute un ensemble de gestionnaires d’activités inscrits, ce qui vous permet de gérer plusieurs types d’activités. Le système de gestionnaire d’activités est la méthode principale d’implémentation de la logique d’application d’extension de bot ou de message. Il s’agit d’un ensemble de méthodes et de configurations qui vous permettent d’inscrire des rappels, appelés gestionnaires de routes, qui se déclenchent en fonction de l’activité entrante. L’activité entrante peut être sous la forme d’un message, d’une réaction de message ou de pratiquement n’importe quelle interaction au sein de l’application Teams.

  • Système IA : le système IA de la bibliothèque IA Teams est responsable de la modération des entrées et sorties, de la génération des plans et de leur exécution. Il peut être utilisé comme autonome ou routé vers par l’objet d’application. Les concepts importants sont les suivants :

    1. Gestionnaire d’invites : les invites jouent un rôle crucial dans la communication et la direction du comportement de l’IA des modèles LLM (Large Language Models).
    2. Planificateur : le planificateur reçoit la demande de l’utilisateur, qui se présente sous la forme d’une invite ou d’un modèle d’invite, et retourne un plan pour y répondre. Pour ce faire, utilisez l’IA pour combiner des fonctions atomiques, appelées actions, qui sont inscrites auprès du système IA. Ces actions sont combinées en une série d’étapes qui permettent d’atteindre un objectif.
    3. Actions : une action est une fonction atomique inscrite dans le système d’IA.
  • Gestionnaire AfterTurn : une fois le gestionnaire d’activités ou le système IA exécuté, la bibliothèque IA Teams exécute un afterTurn gestionnaire. Le gestionnaire vous permet d’effectuer une action après le tour. S’il retourne en tant que true, le Kit de développement logiciel (SDK) enregistre l’état de tour dans le stockage.

  • Répondre à l’utilisateur : la bibliothèque IA Teams enregistre l’état et le bot peut envoyer les réponses à l’utilisateur.

Personnaliser un chatbot IA de base

Vous pouvez ajouter des personnalisations au-dessus de l’application de base pour créer des scénarios complexes comme suit :

  1. Personnaliser l’invite : les invites jouent un rôle crucial dans la communication et la direction du comportement de l’IA LLMs. Ils servent d’entrées ou de requêtes que les utilisateurs peuvent fournir pour obtenir des réponses spécifiques à partir d’un modèle. Voici une invite qui demande au LLM des suggestions de noms :

    Demande

    Give me 3 name suggestions for my pet golden retriever.
    

    Réponse

    Some possible name suggestions for a pet golden retriever are:
    - Bailey
    - Sunny
    - Cooper
    

    Pour utiliser le projet généré avec teams Toolkit, vous pouvez créer les invites dans le src/prompts/chat/skprompt.txt fichier. Les invites écrites dans ce fichier sont insérées dans l’invite utilisée pour indiquer le LLM. La bibliothèque IA Teams définit la syntaxe suivante que vous pouvez utiliser dans le texte de l’invite :

    1. {{ $[scope].property }}: la bibliothèque IA Teams affiche la valeur d’une propriété délimitée et définie dans l’état de tour. Il définit trois étendues de ce type : temp, user et conversation. Si aucune étendue n’est spécifiée, par défaut, la bibliothèque utilise l’étendue temporaire.

    2. Le {{$[scope].property}} est utilisé de la manière suivante :

      1. Dans le src/app/turnState.ts fichier, définissez l’état temporaire, l’état utilisateur, l’état de conversation et l’état de tour de l’application. Si le turnState.ts fichier n’existe pas dans votre projet, créez-le sous src/app.

        import { DefaultConversationState, DefaultTempState, DefaultUserState, TurnState } from "@microsoft/teams-ai";
        
        export interface TempState extends DefaultTempState {  }
        export interface UserState extends DefaultUserState {  }
        export interface ConversationState extends DefaultConversationState {
            tasks: Record<string, Task>;
        }
        
        export interface Task {
            title: string;
            description: string;
        }
        
        export type ApplicationTurnState = TurnState<ConversationState, UserState, TempState>;
        
      2. Dans le src/app/app.ts fichier, utilisez l’état de tour de l’application pour initialiser l’application.

        const storage = new MemoryStorage();
        const app = new Application<ApplicationTurnState>({
          storage,
          ai: {
            planner,
          },
        });
        
      3. Dans le src/prompts/chat/skprompt.txt fichier, utilisez la propriété d’état délimitée telle que {{$conversation.tasks}}.

  2. Personnaliser les entrées utilisateur : la bibliothèque IA Teams vous permet d’augmenter l’invite envoyée à LLM en incluant les entrées utilisateur. Lorsque vous incluez des entrées utilisateur, vous devez le spécifier dans un fichier de configuration d’invite en définissant completion.include_inputtrue sur dans src/prompts/chat/config.json. Vous pouvez également configurer éventuellement le nombre maximal de jetons d’entrée utilisateur dans en src/prompts/chat/config.json modifiant completion.max_input_tokens. Cela est utile lorsque vous souhaitez limiter la longueur des entrées utilisateur afin d’éviter de dépasser la limite de jetons.

  3. Personnaliser l’historique des conversations : le Kit de développement logiciel (SDK) gère automatiquement l’historique des conversations, et vous pouvez le personnaliser comme suit :

    • Dans src/prompts/chat/config.json, configurez completion.include_history. Si truela valeur est , l’historique est inséré dans l’invite pour informer LLM du contexte de conversation.

    • Nombre maximal de messages d’historique. Configurez max_history_messages lors de l’initialisation PromptManagerde .

      
      const prompts = new PromptManager({
      promptsFolder: path.join(__dirname, "../prompts"),
      max_history_messages: 3,
      });
      
    • Nombre maximal de jetons d’historique. Configurez max_conversation_history_tokens lors de l’initialisation PromptManagerde .

      
      const prompts = new PromptManager({
          promptsFolder: path.join(__dirname, "../prompts"),
          max_conversation_history_tokens: 1000,
      });
      
      
  4. Personnaliser le type de modèle : vous pouvez utiliser un modèle spécifique pour une invite. Dans le src/prompts/chat/config.json fichier , configurez completion.model. Si aucun modèle n’est configuré pour l’invite, le modèle par défaut configuré dans OpenAIModel est utilisé.

    Les modèles qui prennent en charge le Kit de développement logiciel (SDK) comme suit :

    Modèle Pris en charge
    gpt-3.5-turbo Pris en charge
    gpt-3.5-turbo-16k Pris en charge
    gpt-3.5-turbo-instruct Non pris en charge à partir de la version 1.1.0
    gpt-4 Pris en charge
    gpt-4-32k Pris en charge
    gpt-4-vision Pris en charge
    gpt-4-turbo Pris en charge
    DALL· E Non pris en charge
    Murmurer Non pris en charge
    TTS Non pris en charge
  5. Personnaliser les paramètres du modèle :

    Dans le src/prompts/chat/config.json fichier, configurez les paramètres du modèle en cours d’exécution comme suit :

    • Max_tokens : nombre maximal de jetons à générer.
    • Température : la température des modèles est comprise entre 0 et 2.
    • Top_p : modèles top_p sous la forme d’un nombre compris entre 0 et 2.
    • Presence_penalty : modèles presence_penalty sous la forme d’un nombre compris entre 0 et 1.
    • Frequency_penalty : modèles frequency_penalty sous la forme d’un nombre compris entre 0 et 1.
    • Stop_sequences : tableau de séquences d’arrêt qui, en cas d’accès, arrête la génération.

Voir aussi

Bibliothèque d’IA Teams