Interfejs Semantic Retrieval API udostępnia usługę hostowaną do odpowiadania na pytania, która umożliwia tworzenie systemów Retrieval-Augmented Generation (RAG) z wykorzystaniem infrastruktury Google.
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 modela na podstawie danych wejściowych GenerateAnswerRequest
.
Punkt końcowy
posthttps://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer
Parametry ścieżki
model
string
Wymagane. Nazwa Model
, której należy użyć do wygenerowania odpowiedzi opartej na faktach.
Format: model=models/{model}
. Ma ona 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ń jednokierunkowych jest to jedno pytanie, na które należy udzielić odpowiedzi. W przypadku zapytań wieloetapowych jest to powtarzalne pole zawierające historię rozmowy i ostatnie Content
na liście z pytaniem.
Uwaga: usługa 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 wystąpień SafetySetting
do blokowania niebezpiecznych treści.
Będzie to wymagane w przypadku znaczników GenerateAnswerRequest.contents
i GenerateAnswerResponse.candidate
. W przypadku każdego typu SafetyCategory
nie powinno być więcej niż 1 ustawienia. Interfejs API będzie blokować wszystkie treści i odpowiedzi, które nie spełniają wartości granicznych określonych 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. 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 aplikacji wykorzystującej AI.
grounding_source
Union type
grounding_source
może być tylko jednym z tych elementów:inlinePassages
object (GroundingPassages
)
Fragmenty tekstu podane w zgłoszeniu.
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 muszą mieścić się w zakresie [0,0,1,0]. 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 przypadku przypadków użycia polegających na udzielaniu odpowiedzi na pytania z atrybucją zalecamy zwykle niską temperaturę (~0,2).
Treść odpowiedzi
Odpowiedź modelu na pytanie o oparcie w faktach.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
answer
object (Candidate
)
Odpowiedź modelu kandydującego.
Uwaga: model zawsze próbuje podać wiarygodną odpowiedź, nawet jeśli jest mało prawdopodobne, że można ją uzyskać na podstawie podanych fragmentów. W takim przypadku może zostać podana odpowiedź o niskiej jakości lub nieodpowiadająca tematowi, a także uzyskać niski answerableProbability
.
answerableProbability
number
Tylko dane wyjściowe. Szacowana przez model prawdopodobieństwo, że odpowiedź jest prawidłowa i oparta na tekstach wejściowych.
Niska wartość answerableProbability
wskazuje, że odpowiedź może nie być oparta na źródłach.
Gdy answerableProbability
jest niski, możesz:
- wyświetlić użytkownikowi komunikat o treść „Nie możemy odpowiedzieć na to pytanie”;
- sięgnąć po ogólny model LLM, który odpowiada na pytanie na podstawie ogólnej wiedzy; Wartość progowa 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. Informacje dotyczące danych wejściowych użytych do udzielenia odpowiedzi na pytanie, a nie odpowiedzi wygenerowanej przez model.
Dane wejściowe mogą być podane w jednym z tych formatów:
- Pytanie określone przez ostatni wpis w pliku
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
powtarzająca się lista fragmentów tekstu;
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 służące do dopasowywania 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 Chunk
do pobrania.
minimumRelevanceScore
number
Opcjonalnie: Minimalna ocena trafności dla odnalezionych odpowiednich 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 styl. |
EXTRACTIVE |
bardzo krótki i wyciągający esencję styl; |
VERBOSE |
szczegółowy styl z dodatkowymi informacjami; Odpowiedź może mieć format zdania, akapitu, kilku akapitów lub punktów. |
InputFeedback
Informacje 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. W każdej kategorii może być maksymalnie 1 ocena.
blockReason
enum (BlockReason
)
Opcjonalnie: Jeśli jest ustawiona, oznacza, że dane wejściowe zostały zablokowane i nie zwracają żadnych kandydatów. Przeformuł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 |
Dane wejściowe zostały zablokowane ze względów bezpieczeństwa. Sprawdź safetyRatings , aby dowiedzieć się, która kategoria bezpieczeństwa spowodowała blokadę. |
OTHER |
Dane zostały zablokowane z innych powodów. |