Créer un copilote avec un flux d’invite

Effectué

Après avoir chargé des données dans Azure AI Studio et créé un index sur vos données à l’aide de l’intégration à Recherche Azure AI, vous pouvez implémenter le modèle de Génération augmentée de récupération (RAG, Retrieval Augmented Generation) avec Flux d’invite pour générer une application copilote.

Flux d’invite est une infrastructure de développement permettant de définir des flux qui orchestrent les interactions avec un modèle de langage volumineux (LLM, Large Language Model).

Schéma d’un flux d’invite.

Un flux commence par une ou plusieurs entrées, généralement une question ou une invite entrée par un utilisateur et, dans le cas de conversations itératives, l’historique de la conversation jusqu’au moment présent.

Le flux est ensuite défini en tant que série d’outils connectés, chacun effectuant une opération spécifique sur les entrées et sur d’autres variables environnementales. Il existe plusieurs types d’outils que vous pouvez inclure dans un flux d’invite pour effectuer des tâches, tels que :

  • Exécution de code Python personnalisé
  • Recherche de valeurs de données dans un index
  • Création de variantes d’invites : vous permet de définir plusieurs versions d’une invite pour un LLM, de modifier les messages système ou la formulation d’une invite, ainsi que de comparer et d’évaluer les résultats de chaque variante.
  • Envoi d’une invite à un LLM pour générer des résultats.

Enfin, le flux comporte une ou plusieurs sorties qui retournent généralement les résultats générés à partir d’un LLM.

Utilisation du modèle RAG dans un flux d’invite

L’aspect le plus important pour l’utilisation du modèle RAG dans un flux d’invite consiste à utiliser un outil de recherche d’index pour récupérer des données depuis un index. Cela assure que les outils suivants du flux puissent utiliser les résultats afin d’augmenter l’invite utilisée pour générer la sortie à partir d’un LLM.

Schéma d’un flux d’invite avec un outil de recherche d’index.

Utiliser un exemple pour créer un flux de conversation

Le flux d’invite fournit différents exemples que vous pouvez utiliser comme point de départ pour créer une application. Lorsque vous souhaitez combiner RAG et un modèle de langage dans votre application, vous pouvez cloner l’exemple de Q&A multiround sur vos données.

L’exemple contient les éléments nécessaires pour inclure le RAG et un modèle de langage :

Capture d’écran du flux de conversation créé d’après l’exemple Q&A.

  1. Ajoutez l’historique à l’entrée de conversation pour définir une invite sous la forme d’une forme contextualisée d’une question.
  2. Recherchez les informations pertinentes de vos données à l’aide de votre index de recherche.
  3. Générer le contexte d’invite en utilisant les données récupérées dans l’index pour améliorer la question.
  4. Créez des variantes d’invite en ajoutant un message système et en structurant l’historique de la conversation.
  5. Soumettez l’invite à un modèle de langage qui génère une réponse en langage naturel.

Intéressons-nous de plus près à chacun de ces éléments.

Modifier la requête avec l’historique

La première étape du flux est un nœud LLM (modèle de langage volumineux) qui prend l’historique des conversations et la dernière question de l’utilisateur et génère une nouvelle question qui inclut toutes les informations nécessaires. En procédant ainsi, vous générez une entrée plus succincte qui est traitée par le reste du flux.

Rechercher les informations pertinentes

Ensuite, vous utilisez l’outil Recherche d’index pour interroger l’index de recherche que vous avez créé avec la fonctionnalité Recherche Azure AI intégrée et trouver les informations pertinentes à partir de votre source de données.

Conseil

En savoir plus sur l’outil Recherche d’index.

Générer un contexte d’invite

La sortie de l’outil Recherche d’index est le contexte récupéré que vous souhaitez utiliser lors de la génération d’une réponse à l’utilisateur. Vous souhaitez utiliser la sortie dans une invite envoyée à un modèle de langage, ce qui signifie que vous souhaitez analyser la sortie dans un format plus approprié.

La sortie de l’outil Recherche d’index peut inclure les résultats n principaux (en fonction des paramètres que vous définissez). Lorsque vous générez le contexte d’invite, vous pouvez utiliser un nœud Python pour itérer sur les documents récupérés à partir de votre source de données et combiner leur contenu et leurs sources dans une chaîne de document. La chaîne sera utilisée dans l’invite que vous envoyez au modèle de langue à l’étape suivante du flux.

Définir des variantes d’invite

Lorsque vous construisez l’invite que vous souhaitez envoyer à votre modèle de langue, vous pouvez utiliser des variantes pour représenter différents contenus d’invite.

Lorsque vous incluez RAG dans votre flux de conversation, votre objectif est de fonder les réponses du chatbot. En plus de récupérer le contexte pertinent à partir de votre source de données, vous pouvez également influencer les fondements de la réponse du chatbot en lui demandant d’utiliser le contexte et d’être factuel.

Avec les variantes d’invite, vous pouvez fournir différents messages système dans l’invite pour explorer le contenu qui fournit le plus de fondements.

Discuter avec du contexte

Enfin, vous utilisez un nœud LLM pour envoyer l’invite à un modèle de langage qui va générer une réponse à l’aide du contexte approprié récupéré à partir de votre source de données. La réponse de ce nœud est également la sortie de l’ensemble du flux.

Après avoir configuré l’exemple de flux de conversation pour qu’il utilise vos données indexées et le modèle de langage de votre choix, vous pouvez déployer le flux et l’intégrer à une application pour offrir aux utilisateurs une expérience de copilote.