Question answering

L'API Semantic Retrieval fournit un service de réponse aux questions hébergé permettant de créer des systèmes de génération augmentée de récupération (RAG) à l'aide de l'infrastructure de Google. Pour obtenir une procédure détaillée, consultez le guide de récupération sémantique.

Méthode: Models.generateAnswer

Génère une réponse ancrée à partir du modèle en fonction d'une GenerateAnswerRequest d'entrée.

Point de terminaison

publier https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer

Paramètres de chemin d'accès

model string

Obligatoire. Nom de l'Model à utiliser pour générer la réponse ancrée.

Format : model=models/{model}. Il se présente sous la forme models/{model}.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Champs
contents[] object (Content)

Obligatoire. Contenu de la conversation en cours avec l'Model. Pour les requêtes à un seul tour, il s'agit d'une seule question à laquelle il faut répondre. Pour les requêtes multitours, il s'agit d'un champ répété contenant l'historique de la conversation et le dernier Content de la liste contenant la question.

Remarque : models.generateAnswer n'est compatible qu'avec les requêtes en anglais.

answerStyle enum (AnswerStyle)

Obligatoire. Style dans lequel les réponses doivent être affichées.

safetySettings[] object (SafetySetting)

Facultatif. Liste d'instances SafetySetting uniques permettant de bloquer le contenu à risque.

Cette modification sera appliquée à GenerateAnswerRequest.contents et à GenerateAnswerResponse.candidate. Il ne doit pas y avoir plus d'un paramètre pour chaque type SafetyCategory. L'API bloque tous les contenus et réponses qui ne respectent pas les seuils définis par ces paramètres. Cette liste remplace les paramètres par défaut pour chaque SafetyCategory spécifié dans les paramètres de sécurité. Si aucun SafetySetting n'est fourni pour un SafetyCategory donné dans la liste, l'API utilise le paramètre de sécurité par défaut pour cette catégorie. Les catégories de préjudice HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT et HARM_CATEGORY_HARASSMENT sont acceptées. Pour en savoir plus sur les paramètres de sécurité disponibles, consultez le guide. Consultez également les Consignes de sécurité pour découvrir comment intégrer des considérations de sécurité à vos applications d'IA.

Champ d'union grounding_source. Sources sur lesquelles s'appuyer pour répondre. grounding_source ne peut être qu'un des éléments suivants :
inlinePassages object (GroundingPassages)

Passages fournis en ligne avec la requête.

semanticRetriever object (SemanticRetrieverConfig)

Contenu récupéré à partir de ressources créées avec l'API Semantic Retriever.

temperature number

Facultatif. Contrôle le caractère aléatoire de la sortie.

Les valeurs peuvent être comprises entre [0,0 et 1,0] inclus. Une valeur proche de 1,0 génère des réponses plus variées et créatives, tandis qu'une valeur proche de 0,0 génère généralement des réponses plus directes du modèle. Une température basse (~0,2) est généralement recommandée pour les cas d'utilisation des réponses aux questions attribuées.

Corps de la réponse

Réponse du modèle pour une réponse ancrée.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Champs
answer object (Candidate)

Réponse candidate du modèle.

Remarque : Le modèle tente toujours de fournir une réponse fondée, même si la réponse est peu probable à partir des passages donnés. Dans ce cas, une réponse incomplète ou de mauvaise qualité peut être fournie, avec un answerableProbability faible.

answerableProbability number

Uniquement en sortie. Estimation de la probabilité que sa réponse soit correcte et fondée sur les passages d'entrée.

Un answerableProbability faible indique que la réponse n'est peut-être pas basée sur les sources.

Lorsque answerableProbability est faible, vous pouvez:

  • Affichez un message indiquant "Nous n'avons pas pu répondre à cette question" à l'utilisateur.
  • Reposez-vous sur un LLM à usage général qui répond à la question à partir de la connaissance du monde. Le seuil et la nature de ces solutions de remplacement dépendront des cas d'utilisation individuels. 0.5 est un bon seuil de départ.
inputFeedback object (InputFeedback)

Uniquement en sortie. Retour d'information lié aux données d'entrée utilisées pour répondre à la question, par opposition à la réponse générée par le modèle.

Les données d'entrée peuvent être l'une ou plusieurs des valeurs suivantes :

  • Question spécifiée par la dernière entrée de GenerateAnswerRequest.content
  • Historique de la conversation spécifié par les autres entrées de GenerateAnswerRequest.content
  • Sources d'ancrage (GenerateAnswerRequest.semantic_retriever ou GenerateAnswerRequest.inline_passages)
Représentation JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Liste de passages répétée.

Champs
passages[] object (GroundingPassage)

Liste de passages.

Représentation JSON
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

Passage inclus en ligne avec une configuration de mise à la terre.

Champs
id string

Identifiant du passage permettant d'attribuer ce passage dans des réponses fondées.

content object (Content)

Contenu du passage.

Représentation JSON
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

Configuration permettant de récupérer le contenu d'ancrage à partir d'un Corpus ou d'un Document créé à l'aide de l'API Semantic Retriever.

Champs
source string

Obligatoire. Nom de la ressource à récupérer. Exemple: corpora/123 ou corpora/123/documents/abc.

query object (Content)

Obligatoire. Requête à utiliser pour faire correspondre les Chunk de la ressource donnée par similarité.

metadataFilters[] object (MetadataFilter)

Facultatif. Filtres permettant de sélectionner des Document et/ou des Chunk à partir de la ressource.

maxChunksCount integer

Facultatif. Nombre maximal de Chunk pertinents à récupérer.

minimumRelevanceScore number

Facultatif. Score de pertinence minimal pour les Chunk pertinents récupérés.

Représentation JSON
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}

AnswerStyle

Style des réponses ancrées.

Enums
ANSWER_STYLE_UNSPECIFIED Style de réponse non spécifié.
ABSTRACTIVE Un style succinct, mais abstrait.
EXTRACTIVE Style très bref et extractif.
VERBOSE Style détaillé avec détails supplémentaires. La réponse peut prendre la forme d'une phrase, d'un paragraphe, de plusieurs paragraphes, d'une liste à puces, etc.

InputFeedback

Retour d'information lié aux données d'entrée utilisées pour répondre à la question, par opposition à la réponse générée par le modèle.

Champs
safetyRatings[] object (SafetyRating)

Évaluations pour la sécurité des entrées. Il y a au maximum une note par catégorie.

blockReason enum (BlockReason)

Facultatif. Si ce champ est défini, l'entrée a été bloquée et aucun candidat n'est renvoyé. Reformulez l'entrée.

Représentation JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

Indique la raison pour laquelle l'entrée a été bloquée.

Enums
BLOCK_REASON_UNSPECIFIED Valeur par défaut. Cette valeur n'est pas utilisée.
SAFETY L'entrée a été bloquée pour des raisons de sécurité. Inspectez safetyRatings pour identifier la catégorie de sécurité qui l'a bloqué.
OTHER La saisie a été bloquée pour d'autres raisons.