Générer des réponses ancrées avec la RAG

Dans le cadre de votre expérience de génération augmentée par récupération (RAG) dans la recherche d'agents, vous pouvez générer des réponses ancrées aux requêtes en fonction des sources d'ancrage suivantes :

  • Recherche Google : utilisez l'ancrage avec la recherche Google si vous souhaitez associer le modèle à des connaissances du monde entier, à un large éventail de sujets ou à des informations à jour sur Internet. L'ancrage avec la recherche Google est compatible avec la récupération dynamique, qui vous permet de générer des résultats ancrés avec la recherche Google uniquement lorsque cela est nécessaire. Par conséquent, la configuration de récupération dynamique évalue si un prompt nécessite des connaissances sur les événements récents et active l'ancrage avec la Recherche Google. Pour en savoir plus, consultez Récupération dynamique.
  • Texte intégré : utilisez l'ancrage avec du texte intégré pour ancrer la réponse dans des éléments de texte appelés texte factuel qui sont fournis dans la requête. Un texte factuel est une déclaration fournie par l'utilisateur et considérée comme factuelle pour une requête donnée. Le modèle ne vérifie pas l'authenticité du texte factuel.
  • Datastores Agent Search : utilisez l'ancrage avec Agent Search si vous souhaitez connecter le modèle à vos documents d'entreprise à partir des datastores Agent Search.

Cette page explique comment générer des réponses ancrées en fonction de ces sources d'ancrage à l'aide des approches suivantes :

Vous pouvez également choisir de diffuser les réponses du modèle. La génération d'une réponse ancrée par streaming est une fonctionnalité expérimentale.

Vous pouvez utiliser d'autres méthodes pour générer des réponses ancrées, en fonction de votre application. Pour en savoir plus, consultez API Vertex AI pour créer des expériences de recherche et RAG.

Terminologie

Avant d'utiliser la méthode de génération de réponses ancrées, il est utile de comprendre les entrées et les sorties, comment structurer votre requête et la terminologie liée à la RAG.

Termes liés au RAG

La RAG est une méthodologie qui permet aux grands modèles de langage (LLM) de générer des réponses ancrées dans la source de données de votre choix. Le processus RAG comporte deux étapes :

  1. Récupération : obtenir rapidement les faits les plus pertinents peut être un problème de recherche courant. Avec le RAG, vous pouvez récupérer rapidement les faits importants pour générer une réponse.
  2. Génération : le LLM utilise les faits récupérés pour générer une réponse ancrée.

Par conséquent, la méthode de génération de réponses ancrées récupère les faits à partir de la source d'ancrage et génère une réponse ancrée.

Données d'entrée

La méthode de génération de réponses ancrées nécessite les entrées suivantes dans la requête :

  • Rôle : expéditeur d'un texte donné, qui peut être un utilisateur (user) ou un modèle (model).

  • Texte : lorsque le rôle est user, le texte est un prompt, et lorsqu'il est model, le texte est une réponse ancrée. La façon dont vous spécifiez le rôle et le texte dans une requête est déterminée comme suit :

    • Pour la génération de réponses en un seul tour, l'utilisateur envoie le texte du prompt dans la requête et le modèle envoie le texte de la réponse dans la réponse.
    • Pour une génération de réponses multitours, la requête contient la paire prompt-réponse pour tous les tours précédents et le texte du prompt de l'utilisateur pour le tour actuel. Par conséquent, dans une telle requête, le rôle est user pour le texte de la requête et model pour le texte de la réponse.
  • Instruction système : préambule de votre requête qui régit le comportement du modèle et modifie la sortie en conséquence. Par exemple, vous pouvez ajouter une persona à la réponse générée ou demander au modèle de mettre en forme le texte de sortie d'une certaine manière. Pour la génération de réponses multitours, vous devez fournir les instructions système pour chaque tour. Pour en savoir plus, consultez Utiliser les instructions système.

  • Source d'ancrage : source sur laquelle la réponse est ancrée. Il peut s'agir d'une ou de plusieurs des sources suivantes :

    • Recherche Google : ancre les réponses avec les résultats de recherche Google. Lorsque la source d'ancrage est la recherche Google, vous pouvez spécifier une configuration de récupération dynamique avec un seuil de récupération dynamique. Pour en savoir plus, consultez Récupération dynamique.

    • Texte intégré : ancrez la réponse dans le texte factuel fourni dans la demande. Un texte factuel est une déclaration fournie par l'utilisateur et considérée comme factuelle pour une requête donnée. Le modèle ne vérifie pas l'authenticité du texte factuel. Vous pouvez fournir jusqu'à 100 textes factuels dans chaque source de texte intégré. Les textes factuels peuvent être pris en charge à l'aide d'attributs méta, tels que le titre, l'auteur et l'URI. Ces attributs de métadonnées sont renvoyés dans la réponse lors de la citation des blocs qui soutiennent la réponse.

    • Datastores Agent Search : ancrez la réponse dans les documents des datastores Agent Search. Vous ne pouvez pas spécifier de data store de recherche sur un site Web comme source d'ancrage.

    Dans une requête donnée, vous pouvez fournir à la fois une source de texte intégrée et une source de data store Agent Search. Vous ne pouvez pas combiner la recherche Google avec l'une de ces sources. Par conséquent, si vous souhaitez ancrer vos réponses avec des résultats de recherche Google, vous devez envoyer une demande distincte spécifiant la recherche Google comme seule source d'ancrage.

    Vous pouvez fournir jusqu'à 10 sources d'ancrage dans l'ordre de votre choix. Par exemple, supposons que vous fournissez les sources d'ancrage avec le nombre suivant, dans l'ordre suivant, pour obtenir un total de 10 sources d'ancrage :

    • Trois sources de texte intégré, chacune pouvant contenir jusqu'à 100 textes factuels
    • Six data stores de recherche d'agents
    • Une source de texte intégré, contenant au maximum 100 textes factuels

    Chaque source se voit attribuer un index dans l'ordre dans lequel elle est spécifiée dans la requête. Par exemple, si vous avez spécifié une combinaison de sources dans votre requête, l'index de source est attribué comme illustré dans le tableau suivant :