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
- Punkt końcowy
- Parametry ścieżki
- Treść żądania
- Treść odpowiedzi
- Zakresy autoryzacji
- GroundingPassages
- GroundingPassage
- SemanticRetrieverConfig
- AnswerStyle
- InputFeedback
- BlockReason
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:
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.
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:
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
lubGenerateAnswerRequest.inline_passages
)
Zapis JSON |
---|
{ "answer": { object ( |
GroundingPassages
Powtórzona lista fragmentów.
passages[]
object (GroundingPassage
)
Lista fragmentów.
Zapis JSON |
---|
{
"passages": [
{
object ( |
GroundingPassage
SemanticRetrieverConfig
Konfiguracja służąca do pobierania treści wprowadzających z Corpus
lub Document
utworzonych za pomocą interfejsu Semantic Retriever API.
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 ( |
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.
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 ( |
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. |