Question answering

Interfejs Semantic Retrieval API udostępnia hostowaną usługę odpowiadania na pytania, która umożliwia tworzenie systemów Retrieval Augmented Generation (RAG) z wykorzystaniem infrastruktury Google.

Metoda: models.generateAnswer

Generuje odpowiedź opartą na modelu na podstawie danych wejściowych GenerateAnswerRequest.

Punkt końcowy

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

Parametry ścieżki

model string

Wymagane. Nazwa Model, która ma być użyta do wygenerowania odpowiedzi opartej na źródłach.

Format: model=models/{model}. Ma on postać models/{model}.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Pola
contents[] object (Content)

Wymagane. Treść bieżącej rozmowy z Model. W przypadku zapytań jednorazowych jest to pojedyncze pytanie, na które należy odpowiedzieć. W przypadku zapytań wieloetapowych jest to pole powtarzane, które zawiera historię rozmowy, a ostatni element na liście zawiera pytanie.Content

Uwaga: models.generateAnswer obsługuje tylko zapytania w języku angielskim.

answerStyle enum (AnswerStyle)

Wymagane. Styl, w jakim mają być zwracane odpowiedzi.

safetySettings[] object (SafetySetting)

Opcjonalnie. Lista unikalnych instancji SafetySetting do blokowania niebezpiecznych treści.

Będzie to egzekwowane w przypadku GenerateAnswerRequest.contentsGenerateAnswerResponse.candidate. Nie powinno być więcej niż 1 ustawienia dla każdego typu SafetyCategory. Interfejs API będzie blokować treści i odpowiedzi, które nie spełniają progów określonych w tych ustawieniach. Ta lista zastępuje domyślne ustawienia każdego SafetyCategory określonego w parametrze safetySettings. Jeśli na liście nie ma wartości SafetySetting dla danego SafetyCategory, interfejs API użyje domyślnego ustawienia bezpieczeństwa dla tej kategorii. Obsługiwane są kategorie szkodliwych treści HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT i HARM_CATEGORY_HARASSMENT. Szczegółowe informacje o dostępnych ustawieniach bezpieczeństwa znajdziesz w przewodniku. Zapoznaj się też z wytycznymi dotyczącymi bezpieczeństwa, aby dowiedzieć się, jak uwzględniać kwestie bezpieczeństwa w aplikacjach AI.

grounding_source Union type
Źródła, na których ma się opierać odpowiedź. grounding_source może mieć tylko jedną z tych wartości:
inlinePassages object (GroundingPassages)

Fragmenty podane w treści żądania.

semanticRetriever object (SemanticRetrieverConfig)

Treści pobrane z zasobów utworzonych za pomocą interfejsu Semantic Retriever API.

temperature number

Opcjonalnie. Określa losowość danych wyjściowych.

Wartości mogą mieścić się w zakresie [0,0, 1,0] (włącznie). Wartość bliższa 1,0 spowoduje, że odpowiedzi będą bardziej zróżnicowane i kreatywne, a wartość bliższa 0,0 zwykle spowoduje, że model będzie generować bardziej bezpośrednie odpowiedzi. W przypadku zastosowań związanych z odpowiadaniem na pytania z atrybucją zwykle zalecana jest niska temperatura (ok.0,2).

Treść odpowiedzi

Odpowiedź modelu na pytanie z użyciem groundingu.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Pola
answer object (Candidate)

Odpowiedź kandydująca modelu.

Uwaga: model zawsze próbuje podać odpowiedź opartą na faktach, nawet jeśli jest mało prawdopodobne, że można ją znaleźć w podanych fragmentach. W takim przypadku może zostać podana odpowiedź niskiej jakości lub nieuzasadniona, a także niska ocena answerableProbability.

answerableProbability number

Tylko dane wyjściowe. Szacowana przez model wartość prawdopodobieństwa, że jego odpowiedź jest prawidłowa i oparta na fragmentach wejściowych.

Niska wartość answerableProbability oznacza, że odpowiedź może nie być oparta na źródłach.

Gdy wartość answerableProbability jest niska, możesz:

  • Wyświetl użytkownikowi komunikat w stylu „Nie udało nam się odpowiedzieć na to pytanie”.
  • Wróć do ogólnego modelu LLM, który odpowie na pytanie na podstawie wiedzy o świecie. Próg i charakter takich rozwiązań zastępczych zależą od konkretnych przypadków użycia. 0.5 to dobry próg początkowy.
inputFeedback object (InputFeedback)

Tylko dane wyjściowe. Opinie dotyczące danych wejściowych użytych do udzielenia odpowiedzi na pytanie, a nie wygenerowanej przez model odpowiedzi na to pytanie.

Dane wejściowe mogą być co najmniej jednym z tych elementów:

  • Pytanie określone przez ostatni wpis w GenerateAnswerRequest.content
  • Historia rozmowy określona przez inne wpisy w GenerateAnswerRequest.content
  • Źródła groundingu (GenerateAnswerRequest.semantic_retriever lub GenerateAnswerRequest.inline_passages)
Zapis JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Powtarzająca się lista fragmentów.

Pola
passages[] object (GroundingPassage)

Lista fragmentów.

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

GroundingPassage

Fragment został dołączony w formie wbudowanej z konfiguracją ugruntowania.

Pola
id string

Identyfikator fragmentu, który umożliwia przypisanie tego fragmentu w odpowiedziach opartych na źródłach.

content object (Content)

Treść fragmentu.

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

SemanticRetrieverConfig

Konfiguracja pobierania treści podstawowych z Corpus lub Document utworzonych za pomocą interfejsu Semantic Retriever API.

Pola
source string

Wymagane. Nazwa zasobu do pobrania. Przykład: corpora/123 lub corpora/123/documents/abc.

query object (Content)

Wymagane. Zapytanie służące do dopasowywania Chunk w danym zasobie na podstawie podobieństwa.

metadataFilters[] object (MetadataFilter)

Opcjonalnie. Filtry do wybierania Document lub Chunk z zasobu.

maxChunksCount integer

Opcjonalnie. Maksymalna liczba odpowiednich Chunk do pobrania.

minimumRelevanceScore number

Opcjonalnie. Minimalny wynik trafności dla pobranych trafnych Chunk.

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

AnswerStyle

Styl odpowiedzi opartej na źródłach.

Wartości w polu enum
ANSWER_STYLE_UNSPECIFIED Nieokreślony styl odpowiedzi.
ABSTRACTIVE Zwięzły, ale abstrakcyjny styl.
EXTRACTIVE Bardzo krótki i ekstrakcyjny styl.
VERBOSE Szczegółowy styl zawierający dodatkowe informacje. Odpowiedź może być sformatowana jako zdanie, akapit, kilka akapitów, punkty itp.

InputFeedback

Opinie dotyczące danych wejściowych użytych do udzielenia odpowiedzi na pytanie, a nie wygenerowanej przez model odpowiedzi na to pytanie.

Pola
safetyRatings[] object (SafetyRating)

oceny bezpieczeństwa danych wejściowych; W każdej kategorii może być maksymalnie 1 ocena.

blockReason enum (BlockReason)

Opcjonalnie. Jeśli to ustawienie jest włączone, wprowadzanie zostało zablokowane i nie są zwracane żadne propozycje. Przeformułuj dane wejściowe.

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

BlockReason

Określa powód zablokowania danych wejściowych.

Wartości w polu enum
BLOCK_REASON_UNSPECIFIED Wartość domyślna. Ta wartość nie jest używana.
SAFETY Dane wejściowe zostały zablokowane ze względów bezpieczeństwa. Kliknij safetyRatings, aby dowiedzieć się, która kategoria bezpieczeństwa spowodowała blokadę.
OTHER Dane wejściowe zostały zablokowane z innych powodów.