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.

Méthode : models.generateAnswer

Génère une réponse ancrée à partir de l'entrée GenerateAnswerRequest.

Point de terminaison

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

Paramètres de chemin d'accès

model string

Obligatoire. Nom du 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 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 permettant de bloquer le contenu non sécurisé.

Cette règle sera appliquée sur GenerateAnswerRequest.contents et GenerateAnswerResponse.candidate. Il ne doit pas y avoir plus d'un paramètre pour chaque type SafetyCategory. L'API bloquera tout contenu et toute réponse 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 safetySettings. Si aucun SafetySetting n'est associé à 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 savoir comment intégrer des considérations de sécurité dans vos applications d'IA.

grounding_source Union type
Sources sur lesquelles baser la réponse. 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 à l'aide de 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 plus proche de 1 générera des réponses plus variées et créatives, tandis qu'une valeur plus proche de 0 entraînera généralement des réponses plus directes de la part du modèle. Une température basse (~0,2) est généralement recommandée pour les cas d'utilisation de réponse aux questions avec attribution.

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 ancrée, même si la réponse est peu susceptible d'être trouvée dans les passages fournis. Dans ce cas, une réponse de mauvaise qualité ou non ancrée peut être fournie, accompagnée d'un answerableProbability faible.

answerableProbability number

Uniquement en sortie. Estimation par le modèle de la probabilité que sa réponse soit correcte et ancrée dans 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 le message "Nous n'avons pas pu répondre à cette question" à l'utilisateur.
  • Revenir à 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 repli dépendent des cas d'utilisation individuels. 0.5 constitue un bon seuil de départ.
inputFeedback object (InputFeedback)

Uniquement en sortie. Commentaires liés 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 une ou plusieurs des 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 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 d'ancrage.

Champs
id string

Identifiant du passage pour l'attribution de ce passage dans les réponses ancrées.

content object (Content)

Contenu du passage.

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

SemanticRetrieverConfig

Configuration permettant de 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 dans 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 pour les réponses ancré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 verbeux incluant des détails supplémentaires. La réponse peut être mise en forme sous forme de phrase, de paragraphe, de plusieurs paragraphes, de liste à puces, etc.

InputFeedback

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

blockReason enum (BlockReason)

Facultatif. Si cette valeur est définie, l'entrée a été bloquée et aucun candidat n'est renvoyé. Reformulez la saisie.

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 comprendre la catégorie de sécurité qui l'a bloqué.
OTHER L'entrée a été bloquée pour d'autres raisons.