Question answering

Die Semantic Retrieval API bietet einen gehosteten Frage-Antwort-Dienst zum Erstellen von RAG-Systemen (Retrieval Augmented Generation) unter Verwendung der Infrastruktur von Google. Eine detaillierte Anleitung finden Sie im Leitfaden zum semantischen Abruf.

Methode: models.generateAnswer

Generiert eine fundierte Antwort aus dem Modell anhand einer GenerateAnswerRequest-Eingabe.

Endpunkt

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

Pfadparameter

model string

Erforderlich. Der Name der Model, die zum Generieren der fundierten Antwort verwendet werden soll.

Format: model=models/{model}. Sie hat das Format models/{model}.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

Felder
contents[] object (Content)

Erforderlich. Der Inhalt der aktuellen Unterhaltung mit Model. Bei Einzelabfragen ist dies eine einzelne Frage, die beantwortet werden muss. Bei Abfragen mit mehreren Antworten ist dies ein wiederkehrendes Feld, das den Unterhaltungsverlauf und das letzte Content in der Liste mit der Frage enthält.

Hinweis: models.generateAnswer unterstützt nur Suchanfragen auf Englisch.

answerStyle enum (AnswerStyle)

Erforderlich. Der Stil, in dem Antworten zurückgegeben werden sollen.

safetySettings[] object (SafetySetting)

Optional. Eine Liste mit eindeutigen SafetySetting-Instanzen zum Blockieren sicherer Inhalte.

Dies wird am GenerateAnswerRequest.contents und GenerateAnswerResponse.candidate erzwungen. Pro SafetyCategory-Typ sollte es nicht mehr als eine Einstellung geben. Die API blockiert alle Inhalte und Antworten, die die mit diesen Einstellungen festgelegten Grenzwerte nicht einhalten. Diese Liste überschreibt die Standardeinstellungen für jede in „safetySettings“ angegebene SafetyCategory. Wenn für eine bestimmte SafetyCategory in der Liste keine SafetySetting angegeben ist, verwendet die API die standardmäßige Sicherheitseinstellung für diese Kategorie. Die schädlichen Kategorien HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT und HARM_CATEGORY_HARASSMENT werden unterstützt. Ausführliche Informationen zu den verfügbaren Sicherheitseinstellungen finden Sie im Leitfaden. Weitere Informationen dazu, wie Sie Sicherheitsaspekte in Ihre KI-Anwendungen einbinden, finden Sie in den Sicherheitsrichtlinien.

Union-Feld grounding_source. Die Quellen, auf denen die Antwort begründet werden soll. Für grounding_source ist nur einer der folgenden Werte zulässig:
inlinePassages object (GroundingPassages)

Absätze, die inline mit der Anfrage bereitgestellt werden.

semanticRetriever object (SemanticRetrieverConfig)

Inhalte, die aus Ressourcen abgerufen werden, die über die Semantic Retriever API erstellt wurden.

temperature number

Optional. Steuert die Zufälligkeit der Ausgabe.

Die Werte können zwischen 0,0 und 1,0 liegen. Je näher der Wert an 1,0 liegt, desto vielfältiger und kreativer sind die Antworten. Ein Wert, der näher an 0,0 liegt, führt in der Regel zu einfacheren Antworten des Modells. Für Anwendungsfälle zur Beantwortung von Fragen mit Zuordnung wird in der Regel eine niedrige Temperatur (etwa 0,2) empfohlen.

Antworttext

Antwort des Modells für eine fundierte Antwort.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

Felder
answer object (Candidate)

Mögliche Antwort aus dem Modell.

Hinweis: Das Modell versucht immer, eine fundierte Antwort zu liefern, auch wenn sich die Antwort anhand der gegebenen Abschnitte wahrscheinlich nicht beantworten lässt. In diesem Fall wird möglicherweise eine qualitativ minderwertige oder unbegründete Antwort zusammen mit einem niedrigen answerableProbability bereitgestellt.

answerableProbability number

Nur Ausgabe. Die Schätzung des Modells für die Wahrscheinlichkeit, dass seine Antwort richtig ist und auf den Eingabeabschnitten basiert.

Ein niedriger Wert für answerableProbability weist darauf hin, dass die Antwort möglicherweise nicht auf den Quellen basiert.

Wenn der answerableProbability niedrig ist, sollten Sie Folgendes tun:

  • Nachricht mit dem Hinweis „Wir konnten diese Frage nicht beantworten“ anzeigen für den Nutzer.
  • Nutzen Sie ein allgemeines LLM, das die Frage nach dem Weltwissen beantwortet. Der Grenzwert und die Art dieser Fallbacks hängen vom jeweiligen Anwendungsfall ab. 0.5 ist ein guter Schwellenwert für den Einstieg.
inputFeedback object (InputFeedback)

Nur Ausgabe. Feedback, das sich auf die Eingabedaten bezieht, die zur Beantwortung der Frage verwendet wurden, und nicht auf die durch das Modell generierte Antwort auf die Frage.

Die Eingabedaten können eines oder mehrere der folgenden sein:

  • Frage, die durch den letzten Eintrag in GenerateAnswerRequest.content angegeben wird
  • Der durch die anderen Einträge in „GenerateAnswerRequest.content“ angegebene Unterhaltungsverlauf
  • Fundierungsquellen (GenerateAnswerRequest.semantic_retriever oder GenerateAnswerRequest.inline_passages)
JSON-Darstellung
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Eine wiederholte Liste von Textpassagen.

Felder
passages[] object (GroundingPassage)

Liste der Abschnitte.

JSON-Darstellung
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

Durchgang inline in eine Fundierungskonfiguration.

Felder
id string

Kennung für die Passage, in der diese Passage in fundierte Antworten zugeschrieben wird.

content object (Content)

Inhalt des Abschnitts.

JSON-Darstellung
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

Konfiguration zum Abrufen von Kontextinhalten aus einem Corpus oder Document, das mit der Semantic Retriever API erstellt wurde.

Felder
source string

Erforderlich. Name der Ressource für den Abruf. Beispiel: corpora/123 oder corpora/123/documents/abc.

query object (Content)

Erforderlich. Abfrage zum Abgleich von Chunks in der angegebenen Ressource nach Ähnlichkeit.

metadataFilters[] object (MetadataFilter)

Optional. Filter zum Auswählen von Documents und/oder Chunks aus der Ressource.

maxChunksCount integer

Optional. Maximale Anzahl relevanter Chunks, die abgerufen werden sollen.

minimumRelevanceScore number

Optional. Minimaler Relevanzwert für abgerufene relevante Chunks.

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

AnswerStyle

Stile für fundierte Antworten.

Enums
ANSWER_STYLE_UNSPECIFIED Unbekannter Antwortstil
ABSTRACTIVE Erfolgreicher, aber abstrakter Stil.
EXTRACTIVE Sehr kurz und extravagant.
VERBOSE Ausführlicher Stil mit zusätzlichen Details. Die Antwort kann als Satz, Absatz, mehrere Absätze oder Aufzählungspunkte formatiert werden.

InputFeedback

Feedback zu den Eingabedaten, die zur Beantwortung der Frage verwendet wurden, im Gegensatz zur vom Modell generierten Antwort auf die Frage.

Felder
safetyRatings[] object (SafetyRating)

Bewertungen zur Sicherheit der Eingabe Es gibt maximal eine Bewertung pro Kategorie.

blockReason enum (BlockReason)

Optional. Wenn dieser Wert festgelegt ist, wurde die Eingabe blockiert und es werden keine Kandidaten zurückgegeben. Formulieren Sie die Eingabe um.

JSON-Darstellung
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

Gibt an, warum die Eingabe blockiert wurde.

Enums
BLOCK_REASON_UNSPECIFIED Standardwert Dieser Wert wird nicht verwendet.
SAFETY Die Eingabe wurde aus Sicherheitsgründen blockiert. Sehen Sie sich safetyRatings an, um zu erfahren, in welcher Sicherheitskategorie die Blockierung erfolgte.
OTHER Die Eingabe wurde aus anderen Gründen blockiert.