Metoda: Modele.generateContent
- Punkt końcowy
- Parametry ścieżki
- Treść żądania
- Treść odpowiedzi
- Zakresy autoryzacji
- Przykładowe żądanie
Generuje odpowiedź na podstawie modelu z danymi wejściowymi GenerateContentRequest
.
Możliwości wprowadzania różnią się w zależności od modelu, w tym na modelach dostrojonych. Szczegółowe informacje znajdziesz w przewodniku po modelu i w przewodniku dostrajania.
Punkt końcowy
post
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent
Parametry ścieżki
model
string
Wymagane. Nazwa obiektu Model
, która ma być używana do generowania uzupełniania.
Format: name=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 modelem.
W przypadku zapytań jednoetapowych jest to pojedyncza instancja. W przypadku zapytań wieloetapowych jest to pole powtarzane, które zawiera historię rozmowy i ostatnie żądanie.
tools[]
object (Tool
)
Opcjonalnie: Lista właściwości Tools
, których model może używać do generowania następnej odpowiedzi.
Tool
to fragment kodu, który umożliwia systemowi wchodzenie w interakcję z zewnętrznymi systemami w celu wykonania działania lub zestawu działań poza zakresem wiedzy i zakresu modelu. Obecnie jedynym obsługiwanym narzędziem jest Function
.
toolConfig
object (ToolConfig
)
Opcjonalnie: Konfiguracja narzędzia dla dowolnych Tool
określonych w żądaniu.
safetySettings[]
object (SafetySetting
)
Opcjonalnie: Lista unikalnych instancji SafetySetting
do blokowania niebezpiecznych treści.
Ta zmiana zostanie zastosowana w GenerateContentRequest.contents
i GenerateContentResponse.candidates
. 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.
systemInstruction
object (Content
)
Opcjonalnie: Instrukcja systemowa ustawiona przez dewelopera. Obecnie tylko tekstowe.
generationConfig
object (GenerationConfig
)
Opcjonalnie: Opcje konfiguracji generowania modeli i ich danych wyjściowych.
cachedContent
string
Opcjonalnie: Nazwa treści z pamięci podręcznej używanej jako kontekst do wyświetlania podpowiedzi. Uwaga: używane tylko w trybie jawnego buforowania, w którym użytkownicy mogą kontrolować buforowanie (np. jaką zawartość przechowywać w pamięci podręcznej) i korzystać z gwarantowanych oszczędności. Format: cachedContents/{cachedContent}
Przykładowe żądanie
Tekst
Python
Node.js
Kotlin
Swift
Dart
Java
Obraz
Python
Node.js
Kotlin
Swift
Dart
Java
Audio
Python
Node.js
Wideo
Python
Node.js
Czat
Python
Node.js
Pudrowy róż
Kotlin
Swift
Dart
Java
Cache (Pamięć podręczna)
Python
Node.js
Dostrojony model
Python
Tryb JSON
Python
Node.js
Kotlin
Swift
Dart
Java
Wykonanie kodu
Python
Kotlin
Java
Wywołanie funkcji
Python
Node.js
Kotlin
Swift
Dart
Java
Konfiguracja generowania
Python
Node.js
Pudrowy róż
Kotlin
Swift
Dart
Java
Ustawienia bezpieczeństwa
Python
Node.js
Pudrowy róż
Kotlin
Swift
Dart
Java
Instrukcja systemowa
Python
Node.js
Kotlin
Swift
Dart
Java
Treść odpowiedzi
W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu GenerateContentResponse
.
Metoda: Modele.streamGenerateContent
- Punkt końcowy
- Parametry ścieżki
- Treść żądania
- Treść odpowiedzi
- Zakresy autoryzacji
- Przykładowe żądanie
Generuje strumieniową odpowiedź z modelu o podanej wartości wejściowej GenerateContentRequest
.
Punkt końcowy
post
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:streamGenerateContent
Parametry ścieżki
model
string
Wymagane. Nazwa obiektu Model
, która ma być używana do generowania uzupełniania.
Format: name=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 modelem.
W przypadku zapytań jednoetapowych jest to pojedyncza instancja. W przypadku zapytań wieloetapowych jest to pole powtarzane, które zawiera historię rozmowy i ostatnie żądanie.
tools[]
object (Tool
)
Opcjonalnie: Lista właściwości Tools
, których model może używać do generowania następnej odpowiedzi.
Tool
to fragment kodu, który umożliwia systemowi wchodzenie w interakcję z zewnętrznymi systemami w celu wykonania działania lub zestawu działań poza zakresem wiedzy i zakresu modelu. Obecnie jedynym obsługiwanym narzędziem jest Function
.
toolConfig
object (ToolConfig
)
Opcjonalnie: Konfiguracja narzędzia dla dowolnych Tool
określonych w żądaniu.
safetySettings[]
object (SafetySetting
)
Opcjonalnie: Lista unikalnych instancji SafetySetting
do blokowania niebezpiecznych treści.
Ta zmiana zostanie zastosowana w GenerateContentRequest.contents
i GenerateContentResponse.candidates
. 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.
systemInstruction
object (Content
)
Opcjonalnie: Instrukcja systemowa ustawiona przez dewelopera. Obecnie tylko tekstowe.
generationConfig
object (GenerationConfig
)
Opcjonalnie: Opcje konfiguracji generowania modeli i ich danych wyjściowych.
cachedContent
string
Opcjonalnie: Nazwa treści z pamięci podręcznej używanej jako kontekst do wyświetlania podpowiedzi. Uwaga: używane tylko w trybie jawnego buforowania, w którym użytkownicy mogą kontrolować buforowanie (np. jaką zawartość przechowywać w pamięci podręcznej) i korzystać z gwarantowanych oszczędności. Format: cachedContents/{cachedContent}
Przykładowe żądanie
Tekst
Python
Node.js
Kotlin
Swift
Dart
Java
Obraz
Python
Node.js
Kotlin
Swift
Dart
Java
Wideo
Python
Node.js
Kotlin
Java
Czat
Python
Node.js
Pudrowy róż
Kotlin
Swift
Dart
Java
Treść odpowiedzi
Jeśli operacja się uda, treść odpowiedzi będzie zawierała strumień instancji GenerateContentResponse
.
GenerateContentResponse
Odpowiedź z modelu obsługującego wielu kandydatów.
Uwaga na temat ocen bezpieczeństwa i filtrowania treści. Są one zgłaszane zarówno w przypadku promptów w elemencie GenerateContentResponse.prompt_feedback
, jak i w przypadku każdego kandydata w polu finishReason
i w safetyRatings
. Umowa dotycząca interfejsu API: – albo zwracane są wszystkie żądane kandydaty, albo żaden kandydat nie jest zwracany – żaden kandydat nie jest zwracany tylko wtedy, gdy coś jest nie tak z promptem (patrz: promptFeedback
), – opinie na temat każdego kandydata są przesyłane w finishReason
i safetyRatings
.
Zapis JSON |
---|
{ "candidates": [ { object ( |
candidates[]
object (Candidate
)
Odpowiedzi kandydata z modelu.
promptFeedback
object (PromptFeedback
)
Zwraca opinię promptu związaną z filtrami treści.
usageMetadata
object (UsageMetadata
)
Tylko dane wyjściowe. Metadane dotyczące żądań generowania wykorzystanie tokenów.
PromptFeedback
Zbiór metadanych opinii podanych w prompcie GenerateContentRequest.content
.
Zapis JSON |
---|
{ "blockReason": enum ( |
blockReason
enum (BlockReason
)
Opcjonalnie: Jeśli prompt został ustawiony, został zablokowany i nie zostały zwrócone żadne kandydaci. Przeredaguj prompt.
safetyRatings[]
object (SafetyRating
)
Oceny pod kątem bezpieczeństwa promptu. Każda kategoria może mieć maksymalnie 1 ocenę.
BlockReason
Określa powód zablokowania promptu.
Wartości w polu enum | |
---|---|
BLOCK_REASON_UNSPECIFIED |
Wartość domyślna. Ta wartość nie jest używana. |
SAFETY |
Prompt został zablokowany ze względów bezpieczeństwa. Możesz sprawdzić zasadę safetyRatings , aby dowiedzieć się, która kategoria bezpieczeństwa ją zablokowała. |
OTHER |
Prompt został zablokowany z nieznanych powodów. |
UsageMetadata
Metadane dotyczące wykorzystania tokena żądania wygenerowania.
Zapis JSON |
---|
{ "promptTokenCount": integer, "cachedContentTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } |
promptTokenCount
integer
Liczba tokenów w prompcie. Jeśli ustawiona jest treść w pamięci podręcznej, nadal jest to łączny efektywny rozmiar promptu. Na przykład obejmuje to liczbę tokenów w pamięci podręcznej.
cachedContentTokenCount
integer
Liczba tokenów w części prompta w pamięci podręcznej, czyli w treści pamięci podręcznej.
candidatesTokenCount
integer
Łączna liczba tokenów wśród wygenerowanych kandydatów.
totalTokenCount
integer
Łączna liczba tokenów w żądaniu wygenerowania (prompt + kandydaci).
Kandydat
- Zapis JSON
- FinishReason
- GroundingAttribution
- AttributionSourceId
- GroundingPassageId
- SemanticRetrieverChunk
Kandydat do odpowiedzi wygenerowany na podstawie modelu.
Zapis JSON |
---|
{ "content": { object ( |
content
object (Content
)
Tylko dane wyjściowe. Wygenerowane treści zwrócone z modelu.
finishReason
enum (FinishReason
)
Opcjonalnie: Tylko dane wyjściowe. Powód, dla którego model przestał generować tokeny.
Jeśli pole jest puste, model nie przestał generować tokenów.
safetyRatings[]
object (SafetyRating
)
Lista ocen bezpieczeństwa kandydata na odpowiedź.
Każda kategoria może mieć maksymalnie 1 ocenę.
citationMetadata
object (CitationMetadata
)
Tylko dane wyjściowe. Informacje o cytowaniu kandydata wygenerowanego przez model.
To pole może zawierać informacje na temat recytacji dowolnego tekstu zawartego w content
. To fragmenty, które zostały „zacytowane” z materiałów chronionych prawem autorskim w danych treningowych podstawowego LLM.
tokenCount
integer
Tylko dane wyjściowe. Liczba tokenów tego kandydata.
groundingAttributions[]
object (GroundingAttribution
)
Tylko dane wyjściowe. Informacje o atrybucji źródeł, które przyczyniły się do udowodnionej odpowiedzi.
To pole jest wypełniane w przypadku wywołań typu GenerateAnswer
.
index
integer
Tylko dane wyjściowe. Indeks kandydata na liście kandydatów.
FinishReason
Określa przyczynę, dla której model przestał generować tokeny.
Wartości w polu enum | |
---|---|
FINISH_REASON_UNSPECIFIED |
Wartość domyślna. Ta wartość nie jest używana. |
STOP |
Naturalny punkt zatrzymania modelu lub podana sekwencja zatrzymania. |
MAX_TOKENS |
Osiągnięto maksymalną liczbę tokenów podaną w żądaniu. |
SAFETY |
Treści kandydata zostały zgłoszone ze względów bezpieczeństwa. |
RECITATION |
Treści kandydata zostały zgłoszone ze względu na recytację. |
LANGUAGE |
Treść kandydatów została oznaczona, ponieważ używa nieobsługiwanego języka. |
OTHER |
Przyczyna nieznana. |
GroundingAttribution
Atrybucja źródła, które ma udział w udzieleniu odpowiedzi.
Zapis JSON |
---|
{ "sourceId": { object ( |
sourceId
object (AttributionSourceId
)
Tylko dane wyjściowe. Identyfikator źródła wpływającego na tę atrybucję.
content
object (Content
)
Uporządkowanie treści źródłowych, z których składa się ta atrybucja.
AttributionSourceId
Identyfikator źródła wpływającego na tę atrybucję.
Zapis JSON |
---|
{ // Union field |
Pole sumy source
.
source
może mieć tylko jedną z tych wartości:
groundingPassage
object (GroundingPassageId
)
Identyfikator tekstu wbudowanego.
semanticRetrieverChunk
object (SemanticRetrieverChunk
)
Identyfikator elementu Chunk
pobranego przez moduł odbioru semantycznego.
GroundingPassageId
Identyfikator części w elemencie GroundingPassage
.
Zapis JSON |
---|
{ "passageId": string, "partIndex": integer } |
passageId
string
Tylko dane wyjściowe. Identyfikator fragmentu pasującego do: GroundingPassage.id
w pliku GenerateAnswerRequest
.
partIndex
integer
Tylko dane wyjściowe. Indeks części w GroundingPassage.content
elementu GenerateAnswerRequest
.
SemanticRetrieverChunk
Identyfikator elementu Chunk
pobranego za pomocą modułu odbioru semantycznego określonego w GenerateAnswerRequest
przy użyciu SemanticRetrieverConfig
.
Zapis JSON |
---|
{ "source": string, "chunk": string } |
source
string
Tylko dane wyjściowe. Nazwa źródła pasującego do identyfikatora SemanticRetrieverConfig.source
żądania. Przykład: corpora/123
lub corpora/123/documents/abc
chunk
string
Tylko dane wyjściowe. Nazwa elementu Chunk
zawierającego przypisany tekst. Przykład: corpora/123/documents/abc/chunks/xyz
CitationMetadata
Zbiór informacji o źródłach dodawanych do danego fragmentu treści.
Zapis JSON |
---|
{
"citationSources": [
{
object ( |
citationSources[]
object (CitationSource
)
cytaty z informacjami o źródłach, z których pochodzą konkretne odpowiedzi.
CitationSource
Cytowanie źródła dotyczącego fragmentu konkretnej odpowiedzi.
Zapis JSON |
---|
{ "startIndex": integer, "endIndex": integer, "uri": string, "license": string } |
startIndex
integer
Opcjonalnie: Początek segmentu odpowiedzi przypisanej do tego źródła.
Indeks wskazuje początek segmentu (mierzony w bajtach).
endIndex
integer
Opcjonalnie: Koniec przypisanego segmentu, bez wyjątków.
uri
string
Opcjonalnie: Identyfikator URI przypisany jako źródło fragmentu tekstu.
license
string
Opcjonalnie: Licencja na projekt GitHub, która jest przypisana jako źródło segmentu.
Do cytowania kodu wymagane są informacje o licencji.
GenerationConfig
Opcje konfiguracji generowania modeli i ich danych wyjściowych. Nie wszystkie parametry można skonfigurować w przypadku każdego modelu.
Zapis JSON |
---|
{
"stopSequences": [
string
],
"responseMimeType": string,
"responseSchema": {
object ( |
stopSequences[]
string
Opcjonalnie: Zestaw sekwencji znaków (maksymalnie 5), które zatrzymują generowanie danych wyjściowych. Jeśli zostanie określony, interfejs API zostanie zatrzymany po pierwszym pojawieniu się sekwencji zatrzymania. Sekwencja zatrzymania nie zostanie uwzględniona w odpowiedzi.
responseMimeType
string
Opcjonalnie: Wyjściowy typ MIME odpowiedzi wygenerowanego tekstu kandydata. Obsługiwany typ MIME: text/plain
: (domyślny) tekst wyjściowy. application/json
: odpowiedź JSON w kandydatach.
responseSchema
object (Schema
)
Opcjonalnie: Schemat wyjściowego odpowiedzi wygenerowanego tekstu kandydującego, gdy typ MIME odpowiedzi może mieć schemat. Schemat może być obiektami, elementami podstawowymi lub tablicami i podzbiorem schematu OpenAPI.
Jeśli jest ustawiony, musi być ustawiony zgodny obiekt responseMimeType. Zgodne typy MIME: application/json
: schemat odpowiedzi JSON.
candidateCount
integer
Opcjonalnie: Liczba wygenerowanych odpowiedzi do zwrócenia.
Obecnie ta wartość może być ustawiona tylko na 1. Jeśli nie są ustawione, domyślna wartość to 1.
maxOutputTokens
integer
Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia w kandydacie.
Uwaga: wartość domyślna różni się w zależności od modelu. Zobacz atrybut Model.output_token_limit
elementu Model
zwracanego przez funkcję getModel
.
temperature
number
Opcjonalnie: Określa losowość wyników.
Uwaga: wartość domyślna różni się w zależności od modelu. Zobacz atrybut Model.temperature
elementu Model
zwracanego przez funkcję getModel
.
Wartości muszą mieścić się w zakresie od [0,0, 2,0].
topP
number
Opcjonalnie: Maksymalne skumulowane prawdopodobieństwo tokenów do uwzględnienia podczas próbkowania.
Model wykorzystuje połączone próbkowanie Top-K i jądra.
Tokeny są sortowane na podstawie przypisanych prawdopodobieństw, dzięki czemu brane są pod uwagę tylko te z największym prawdopodobieństwem. Próbkowanie Top-K bezpośrednio ogranicza maksymalną liczbę tokenów do rozważenia, natomiast próbkowanie Nucleusa ogranicza liczbę tokenów na podstawie prawdopodobieństwa skumulowanego.
Uwaga: wartość domyślna różni się w zależności od modelu. Zobacz atrybut Model.top_p
elementu Model
zwracanego przez funkcję getModel
.
topK
integer
Opcjonalnie: Maksymalna liczba tokenów do uwzględnienia podczas próbkowania.
Modele korzystają z próbkowania jądra lub łączonego próbkowania Top-K i nucleusa. Próbkowanie Top-K uwzględnia zestaw topK
najbardziej prawdopodobnych tokenów. Modele korzystające z próbkowania jądra nie zezwalają na ustawienie topK.
Uwaga: wartość domyślna różni się w zależności od modelu. Zobacz atrybut Model.top_k
elementu Model
zwracanego przez funkcję getModel
. Puste pole topK
w polu Model
oznacza, że model nie stosuje próbkowania górnego K i nie zezwala na ustawienie topK
w żądaniach.
HarmCategory
Kategoria oceny.
Te kategorie obejmują różne rodzaje szkód, które deweloperzy mogą chcieć dostosować.
Wartości w polu enum | |
---|---|
HARM_CATEGORY_UNSPECIFIED |
Kategoria nie jest określona. |
HARM_CATEGORY_DEROGATORY |
Negatywne lub szkodliwe komentarze dotyczące tożsamości lub atrybutu chronionego. |
HARM_CATEGORY_TOXICITY |
Treści nieuprzejme, obraźliwe lub wulgarne. |
HARM_CATEGORY_VIOLENCE |
Omówienie scenariuszy przedstawiających przemoc wobec osób lub grup albo ogólnych opisów okrucieństwa. |
HARM_CATEGORY_SEXUAL |
Treści zawierające odniesienia do aktów seksualnych lub innych lubieżnych treści. |
HARM_CATEGORY_MEDICAL |
Promuje niesprawdzone porady medyczne. |
HARM_CATEGORY_DANGEROUS |
Treści niebezpieczne, które promują, wspierają lub ułatwiają podejmowanie szkodliwych działań. |
HARM_CATEGORY_HARASSMENT |
Treści związane z nękaniem. |
HARM_CATEGORY_HATE_SPEECH |
Szerzenie nienawiści i treści szerzące nienawiść. |
HARM_CATEGORY_SEXUALLY_EXPLICIT |
Treści o charakterze jednoznacznie seksualnym. |
HARM_CATEGORY_DANGEROUS_CONTENT |
Treści niebezpieczne. |
SafetyRating
Ocena bezpieczeństwa danego elementu treści.
Ocena bezpieczeństwa zawiera kategorię wyrządzenia szkody i poziom prawdopodobieństwa szkody w tej kategorii w przypadku danego fragmentu treści. Treści są klasyfikowane pod kątem bezpieczeństwa według wielu kategorii szkód, a prawdopodobieństwo sklasyfikowania ich jako szkód jest tutaj uwzględnione.
Zapis JSON |
---|
{ "category": enum ( |
category
enum (HarmCategory
)
Wymagane. Kategoria dla tej oceny.
probability
enum (HarmProbability
)
Wymagane. Prawdopodobieństwo wyrządzenia szkody w przypadku tych treści.
blocked
boolean
Czy te treści zostały zablokowane z powodu tej oceny?
HarmProbability
Prawdopodobieństwo, że treść jest szkodliwa.
System klasyfikacji określa prawdopodobieństwo, że treści są niebezpieczne. Nie wskazuje to powagi wyrządzenia krzywdy danego materiału.
Wartości w polu enum | |
---|---|
HARM_PROBABILITY_UNSPECIFIED |
Prawdopodobieństwo nie jest określone. |
NEGLIGIBLE |
Istnieje duże prawdopodobieństwo, że treści będą niebezpieczne. |
LOW |
Istnieje niewielkie prawdopodobieństwo, że treści będą niebezpieczne. |
MEDIUM |
Istnieje średnie prawdopodobieństwo, że treści są niebezpieczne. |
HIGH |
Istnieje duże prawdopodobieństwo, że treści są niebezpieczne. |
SafetySetting
Ustawienie bezpieczeństwa, które wpływa na działanie funkcji blokowania.
Przekazanie ustawienia bezpieczeństwa danej kategorii zmienia dozwolone prawdopodobieństwo zablokowania treści.
Zapis JSON |
---|
{ "category": enum ( |
category
enum (HarmCategory
)
Wymagane. Kategoria tego ustawienia.
threshold
enum (HarmBlockThreshold
)
Wymagane. Określa wartość progową prawdopodobieństwa, przy której szkoda jest blokowana.
HarmBlockThreshold
Blokuj na poziomie określonego prawdopodobieństwa szkody i poza nią.
Wartości w polu enum | |
---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Próg nie jest określony. |
BLOCK_LOW_AND_ABOVE |
Treści z oznaczeniem NIEZBĘDNE będą dozwolone. |
BLOCK_MEDIUM_AND_ABOVE |
Treści oznaczone jako NIEZBĘDNE i NISKI będą dozwolone. |
BLOCK_ONLY_HIGH |
Treści o wartościach NIEZBĘDNE, NISKI i ŚREDNI, będą dozwolone. |
BLOCK_NONE |
Wszystkie treści będą dozwolone. |