Method: models.generateAnswer

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

Żądanie HTTP

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

Adres URL używa składni transkodowania gRPC.

Parametry ścieżki

Parametry
model

string

To pole jest wymagane. Nazwa obiektu Model, która ma być używana do generowania odpowiedzi umocowanej.

Format: model=models/{model}.

Treść żądania

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

Zapis JSON
{
  "contents": [
    {
      object (Content)
    }
  ],
  "answerStyle": enum (AnswerStyle),
  "safetySettings": [
    {
      object (SafetySetting)
    }
  ],

  // Union field grounding_source can be only one of the following:
  "inlinePassages": {
    object (GroundingPassages)
  },
  "semanticRetriever": {
    object (SemanticRetrieverConfig)
  }
  // End of list of possible types for union field grounding_source.
  "temperature": number
}
Pola
contents[]

object (Content)

To pole jest wymagane. Treść bieżącej rozmowy z modelem. W przypadku zapytań jednoetapowych należy odpowiedzieć na to pytanie. W przypadku zapytań wieloetapowych jest to pole powtarzane zawierające historię rozmowy oraz ostatni Content na liście z pytaniem.

Uwaga: parametr model.generateAnswer obecnie obsługuje tylko zapytania w języku angielskim.

answerStyle

enum (AnswerStyle)

To pole jest wymagane. Styl, w którym odpowiedzi mają być zwracane.

safetySettings[]

object (SafetySetting)

Opcjonalnie. Lista unikalnych wystąpień SafetySetting do blokowania niebezpiecznych treści.

Ta zasada będzie egzekwowana w GenerateAnswerRequest.contents i GenerateAnswerResponse.candidate. Na każdy typ SafetyCategory może przypadać nie więcej niż 1 ustawienie. Interfejs API zablokuje treści i odpowiedzi, które nie osiągnęły progów określonych przez te ustawienia. Ta lista zastępuje domyślne ustawienia dla każdego obiektu SafetyCategory określonego w ustawieniach bezpieczeństwa. Jeśli na liście nie ma parametru SafetySetting dla danego elementu 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.

Pole sumy grounding_source. Źródła, w których podstawą odpowiedzi będą wiarygodne odpowiedzi. grounding_source może być tylko jedną z tych wartości:
inlinePassages

object (GroundingPassages)

Fragmenty udostępnione w treści żądania.

semanticRetriever

object (SemanticRetrieverConfig)

Zawartość pobrana z zasobów utworzonych za pomocą interfejsu Semantic Retriever API.

temperature

number

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

Wartości muszą mieścić się w zakresie od [0,0;1,0] włącznie. Wartość bliższa 1,0 daje bardziej zróżnicowane i kreatywne odpowiedzi, a wartość bliższa 0,0 oznacza zwykle prostsze odpowiedzi modelu. W przypadku korzystania z przypisanych odpowiedzi na pytania zwykle zalecana jest niska temperatura (~0,2).

Treść odpowiedzi

Odpowiedź modelu jako uzasadniona odpowiedź.

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

Zapis JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}
Pola
answer

object (Candidate)

Proponowana odpowiedź modelu.

Uwaga: model zawsze próbuje podać ugruntowaną odpowiedź, nawet jeśli odpowiedź na pytanie jest mało prawdopodobna z danych fragmentów. W takim przypadku może zostać podana odpowiedź niskiej jakości lub bezpodstawna, wraz z niską wartością answerableProbability.

answerableProbability

number

Tylko dane wyjściowe. Szacunkowe prawdopodobieństwo tego, że odpowiedź modelu jest poprawna i opiera się na fragmentach wejściowych.

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

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

  • wyświetlać użytkownikowi komunikat „Nie udało się odpowiedzieć na to pytanie”.
  • Wróć do ogólnego przeznaczenia LLM, który odpowiada na pytanie pochodzące z wiedzy światowej. Próg i charakter wartości zastępczych zależy od konkretnego przypadku użycia klienta. Dobry próg na początek to 0,5.
inputFeedback

object (InputFeedback)

Tylko dane wyjściowe. Opinia dotycząca danych wejściowych użytych do udzielenia odpowiedzi na pytanie, w odróżnieniu od odpowiedzi wygenerowanej przez model na to pytanie.

„Dane wejściowe” mogą być dowolnymi z tych rodzajów danych:

  • 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)

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

  • https://www.googleapis.com/auth/generative-language
  • https://www.googleapis.com/auth/generative-language.retriever
  • https://www.googleapis.com/auth/generative-language.retriever.readonly
  • https://www.googleapis.com/auth/generative-language.tuning
  • https://www.googleapis.com/auth/generative-language.tuning.readonly

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

GroundingPassages

Powtórzona lista fragmentów.

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

object (GroundingPassage)

Lista fragmentów.

GroundingPassage

Fragment został dołączony w linii z konfiguracją umocowania.

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

string

Identyfikator fragmentu używany do przypisywania tego fragmentu do ugruntowanych odpowiedzi.

content

object (Content)

Treść pasażu.

SemanticRetrieverConfig

Konfiguracja pobierania treści umocowania z Corpus lub Document, która została utworzona za pomocą interfejsu Semantic Retriever API.

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

string

To pole jest wymagane. Nazwa zasobu do pobrania, np. korpus/123 lub korpus/123/dokumenty/abc.

query

object (Content)

To pole jest wymagane. Zapytanie, które ma służyć do dopasowywania podobieństwa elementów Chunk w danym zasobie.

metadataFilters[]

object (MetadataFilter)

Opcjonalnie. Filtry umożliwiające wybór 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 Chunk.

AnswerStyle

Wybierz styl, aby uzyskać uzasadnione odpowiedzi.

Wartości w polu enum
ANSWER_STYLE_UNSPECIFIED Nieokreślony styl odpowiedzi.
ABSTRACTIVE Zwięzły, ale abstrakcyjny.
EXTRACTIVE Bardzo zwięzły i intuicyjny styl.
VERBOSE Styl szczegółowy z dodatkowymi szczegółami. Odpowiedź może być sformatowana jako zdanie, akapit, wiele akapitów, punktor itp.

InputFeedback

Opinia dotycząca danych wejściowych użytych do udzielenia odpowiedzi na pytanie, w odróżnieniu od odpowiedzi wygenerowanej przez model na to pytanie.

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 jedną ocenę.

blockReason

enum (BlockReason)

Opcjonalnie. Jeśli jest ustawiony, dane wejściowe zostały zablokowane i nie są zwracane żadne kandydaci. Zmodyfikuj dane.

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