Question answering

L'API Semantic Retrieval fournit un service de questions-réponses hébergé pour créer des systèmes de génération augmentée par 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 entrée GenerateAnswerRequest.

Point de terminaison

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

L'URL utilise la syntaxe de transcodage gRPC.

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 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'accepte que les requêtes en anglais.

answerStyle enum (AnswerStyle)

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

safetySettings[] object (SafetySetting)

Facultatif. Liste d'instances SafetySetting uniques pour le blocage du contenu non sécurisé.

Cette règle sera appliquée aux 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 de chaque SafetyCategory spécifié dans les paramètres de sécurité. Si aucun SafetySetting n'est fourni dans la liste pour un SafetyCategory donné, 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.

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

Passages fournis dans la requête.

semanticRetriever object (SemanticRetrieverConfig)

Contenu récupéré à partir de ressources créées via 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 (environ 0,2) est généralement recommandée pour les cas d'utilisation de la réponse 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 d'être obtenue à partir des passages donnés. Dans ce cas, une réponse de mauvaise qualité ou non fondée peut être fournie, avec un answerableProbability faible.

answerableProbability number

Uniquement en sortie. Estimation de la probabilité que la réponse du modèle soit correcte et basée sur les passages d'entrée.

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

Lorsque answerableProbability est faible, vous pouvez:

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

Uniquement en sortie. Commentaires concernant les 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 dans 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 répétée de passages.

Champs
passages[] object (GroundingPassage)

Liste des 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 pour l'attribuer dans les réponses étayées.

content object (Content)

Contenu du passage.

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

SemanticRetrieverConfig

Configuration pour récupérer du 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 pertinentes récupérées.

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

AnswerStyle

Style pour les réponses fondées.

Enums
ANSWER_STYLE_UNSPECIFIED Style de réponse non spécifié.
ABSTRACTIVE Style concis, mais abstrait.
EXTRACTIVE Style très bref et extractif.
VERBOSE Style descriptif incluant des détails supplémentaires. La réponse peut être mise en forme sous forme de phrase, de paragraphe, de plusieurs paragraphes, de puces, etc.

InputFeedback

Commentaires concernant les 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 de la sécurité de l'entrée. Il ne peut y avoir qu'une seule classification par catégorie.

blockReason enum (BlockReason)

Facultatif. Si cette valeur est définie, l'entrée a été bloquée et aucune suggestion n'est renvoyée. Reformulez la requête.

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.