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) w infrastrukturze Google. Szczegółową instrukcję znajdziesz w przewodniku pobierania danych semantycznych.

Metoda: models.generateAnswer

Generuje wiarygodną odpowiedź z modelu na podstawie wejścia GenerateAnswerRequest.

Punkt końcowy

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

Parametry ścieżki

model string

Wymagane. Nazwa obiektu Model, który ma być używany do generowania odpowiedzi ugruntowanej.

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ń jednoetapowych jest to tylko jedno pytanie, na które trzeba odpowiedzieć. W przypadku zapytań wieloetapowych jest to pole powtarzane, które zawiera historię rozmowy i ostatnie pole Content na liście zawierające pytanie.

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.

Ta zmiana będzie egzekwowana w systemach GenerateAnswerRequest.contents i GenerateAnswerResponse.candidate. Każdy typ SafetyCategory powinien mieć maksymalnie 1 ustawienie. Interfejs API zablokuje treści i odpowiedzi, które nie osiągną progów ustawionych przez te ustawienia. Ta lista zastępuje domyślne ustawienia każdego SafetyCategory określonego w safetySettings. Jeśli na liście nie ma podanego SafetySetting dla danego SafetyCategory, interfejs API użyje domyślnego ustawienia bezpieczeństwa dla tej kategorii. Kategorie szkodliwego działania: HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT są obsługiwane. Szczegółowe informacje o dostępnych ustawieniach bezpieczeństwa znajdziesz w przewodniku. Zapoznaj się też z wskazówkami dotyczącymi bezpieczeństwa, aby dowiedzieć się, jak uwzględniać kwestie bezpieczeństwa w aplikacji wykorzystującej AI.

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

fragmenty dostarczone w tekście żądania.

semanticRetriever object (SemanticRetrieverConfig)

Treść pobrana z zasobów utworzonych przy użyciu interfejsu Semantic retriever API.

temperature number

Opcjonalnie: Określa losowość wyników.

Wartości mogą mieścić się w zakresie od [0,0,1,0] włącznie. Wartość zbliżona do 1,0 spowoduje, że odpowiedzi będą bardziej zróżnicowane i kreatywne, a wartość zbliżona do 0,0 spowoduje, że model będzie zwykle generować bardziej bezpośrednie odpowiedzi. W przypadkach użycia funkcji związanych z przypisanymi odpowiedziami na pytania zalecana jest zwykle niska temperatura (~0,2).

Treść odpowiedzi

Odpowiedź modelu zapewniająca ugruntowaną odpowiedź.

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

Pola
answer object (Candidate)

Odpowiedź kandydata na podstawie modelu.

Uwaga: model zawsze próbuje udzielić uzasadnionej odpowiedzi, nawet jeśli jest mało prawdopodobne, że odpowiedzi da się zastosować w danych fragmentach. W takim przypadku może zostać podana niska jakość lub nieuzasadniona odpowiedź oraz niski wskaźnik answerableProbability.

answerableProbability number

Tylko dane wyjściowe. Szacowane prawdopodobieństwo, że odpowiedź modelu jest prawidłowa i jest zakorzeniona we fragmentach wejściowych.

Niski wynik answerableProbability wskazuje, że odpowiedź może nie być oparta na źródłach.

Gdy answerableProbability jest niski, możesz:

  • Wyświetlaj komunikat o treści „Nie udało nam się odpowiedzieć na to pytanie”. po stronie użytkownika.
  • Wróćmy do ogólnego przeznaczenia LLM, które stanowi odpowiedź na pytanie wynikające z wiedzy z całego świata. Próg i charakter takich wartości zastępczych zależą od indywidualnych przypadków użycia. 0.5 to dobry próg na początek.
inputFeedback object (InputFeedback)

Tylko dane wyjściowe. Opinie związane z danymi wejściowymi użytymi do udzielenia odpowiedzi na pytanie, w odróżnieniu od odpowiedzi na pytanie wygenerowane przez model.

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

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

GroundingPassages

Powtórzona lista fragmentów.

Pola
passages[] object (GroundingPassage)

Lista fragmentów.

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

GroundingPassage

Fragment tekstu zawarty w ramach konfiguracji uziemienia.

Pola
id string

Identyfikator fragmentu, dla którego został przypisany udział w uzasadnionych odpowiedziach.

content object (Content)

Treść fragmentu.

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

SemanticRetrieverConfig

Konfiguracja służąca do pobierania treści wprowadzających 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, które ma być używane do dopasowywania elementów Chunk w danym zasobie na podstawie podobieństwa.

metadataFilters[] object (MetadataFilter)

Opcjonalnie: Filtry do wybierania z zasosobu Document lub Chunk.

maxChunksCount integer

Opcjonalnie: Maksymalna liczba odpowiednich elementów Chunk do pobrania.

minimumRelevanceScore number

Opcjonalnie: Minimalny wynik trafności dla pobranych odpowiednich elementów typu Chunk.

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

AnswerStyle

Styl odpowiedzi opartych na faktach.

Wartości w polu enum
ANSWER_STYLE_UNSPECIFIED Nieokreślony styl odpowiedzi.
ABSTRACTIVE Krótki, ale abstrakcyjny.
EXTRACTIVE Bardzo krótki i wyodrębniony styl.
VERBOSE Szczegółowy styl z dodatkowymi szczegółami. Odpowiedź może być sformatowana jako zdanie, akapit, wiele akapitów, punktory itp.

InputFeedback

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

Pola
safetyRatings[] object (SafetyRating)

Oceny bezpieczeństwa danych wejściowych. Każda kategoria może mieć maksymalnie 1 ocenę.

blockReason enum (BlockReason)

Opcjonalnie: Jeśli jest ustawiona, oznacza, że dane wejściowe zostały zablokowane i nie zwracają żadnych kandydatów. Sformuł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 Wpisywanie danych zostało zablokowane ze względów bezpieczeństwa. Sprawdź zasadę safetyRatings, aby dowiedzieć się, która kategoria bezpieczeństwa ją zablokowała.
OTHER Dane wejściowe zostały zablokowane z innych powodów.