Question answering

Metoda: Modele.generateAnswer

Generuje uzasadnioną odpowiedź na podstawie modelu z danymi wejściowymi 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 modelem. 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: modele.generateAnswer obsługują obecnie tylko zapytania w języku angielskim.

answerStyle enum (AnswerStyle)

Wymagane. Styl, w którym mają być zwracane odpowiedzi.

safetySettings[] object (SafetySetting)

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

Ta zmiana zostanie zastosowana w 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 dla każdego elementu SafetyCategory określonego w ustawieniach bezpieczeństwa. Jeśli na liście nie ma atrybutu SafetySetting dla danego elementu SafetyCategory, interfejs API użyje dla tej kategorii domyślnego ustawienia bezpieczeństwa. Kategorie szkodliwego działania: HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT są obsługiwane.

Pole sumy grounding_source. Źródła, na których oprzeć 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ść bliższa 1,0 daje odpowiedzi, które są bardziej zróżnicowane i kreatywne, a wartość bliższa 0,0 zapewnia zwykle bardziej przejrzyste odpowiedzi z modelu. 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ć wiarygodnej 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.

Niska wartość prawdopodobieństwa, z którą można się poradzić, wskazuje, że odpowiedź może nie być ugruntowana w źródłach.

Gdy answerableProbability jest niski, niektórzy klienci mogą chcieć:

  • 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 przypadków użycia poszczególnych klientów. Na początek dobry próg to 0,5.
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 lub kilkoma z tych elementów:

  • Pytanie określone w ostatnim wpisie w polu GenerateAnswerRequest.content
  • Historia rozmowy określona przez inne wpisy w sekcji 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.

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

Lista fragmentów.

GroundingPassage

Fragment dołączony do konfiguracji umocowania.

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

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

content object (Content)

Treść fragmentu.

SemanticRetrieverConfig

Konfiguracja pobierania treści umocowań z zasobu Corpus lub Document utworzonego za pomocą interfejsu Semantic retriever API.

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

Wymagane. Nazwa zasobu do pobrania, np. korpusy/123 lub korpusy/123/dokumenty/abc.

query object (Content)

Wymagane. Zapytanie, które ma być używane do dopasowywania elementów typu Chunk w podanym zasobie.

metadataFilters[] object (MetadataFilter)

Opcjonalnie: Filtry wyboru elementów typu Document lub Chunk z zasobu.

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.

AnswerStyle

Nadaj styl konstruktywnym odpowiedziom.

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

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

Zapis JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}
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 dane wejściowe są ustawione, zostały zablokowane i nie są zwracane żadne propozycje. Przeredaguj wpisany tekst.

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. Możesz sprawdzić zasadę safetyRatings, aby dowiedzieć się, która kategoria bezpieczeństwa ją zablokowała.
OTHER Dane wejściowe zostały zablokowane z innych powodów.