Metode: models.generateContent
Menghasilkan respons dari model yang diberi GenerateContentRequest
input.
Kemampuan input berbeda-beda antar-model, termasuk model yang disesuaikan. Lihat panduan model dan panduan penyesuaian untuk mengetahui detailnya.
Endpoint
posting
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent
Parameter jalur
model
string
Wajib. Nama Model
yang akan digunakan untuk menghasilkan penyelesaian.
Format: name=models/{model}
. Formatnya adalah models/{model}
.
Isi permintaan
Isi permintaan memuat data dengan struktur berikut:
contents[]
object (Content
)
Wajib. Konten percakapan saat ini dengan model.
Untuk kueri satu putaran, ini adalah instance tunggal. Untuk kueri multi-giliran, ini adalah kolom berulang yang berisi histori percakapan + permintaan terbaru.
tools[]
object (Tool
)
Opsional. Daftar Tools
yang dapat digunakan model untuk menghasilkan respons berikutnya.
Tool
adalah potongan kode yang memungkinkan sistem berinteraksi dengan sistem eksternal untuk melakukan tindakan, atau serangkaian tindakan, di luar pengetahuan dan cakupan model. Satu-satunya alat yang didukung saat ini adalah Function
.
toolConfig
object (ToolConfig
)
Opsional. Konfigurasi alat untuk setiap Tool
yang ditentukan dalam permintaan.
safetySettings[]
object (SafetySetting
)
Opsional. Daftar instance SafetySetting
unik untuk memblokir konten tidak aman.
Hal ini akan diterapkan di GenerateContentRequest.contents
dan GenerateContentResponse.candidates
. Tidak boleh ada lebih dari satu setelan untuk setiap jenis SafetyCategory
. API akan memblokir semua konten dan respons yang gagal memenuhi nilai minimum yang ditetapkan oleh setelan ini. Daftar ini menggantikan setelan default untuk setiap SafetyCategory
yang ditentukan di safetySettings. Jika tidak ada SafetySetting
untuk SafetyCategory
tertentu yang disediakan dalam daftar, API akan menggunakan setelan keamanan default untuk kategori tersebut. Kategori bahaya HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT didukung.
systemInstruction
object (Content
)
Opsional. Petunjuk sistem set developer. Saat ini, teks saja.
generationConfig
object (GenerationConfig
)
Opsional. Opsi konfigurasi untuk pembuatan dan output model.
cachedContent
string
Opsional. Nama konten yang di-cache yang digunakan sebagai konteks untuk menampilkan prediksi. Catatan: hanya digunakan dalam penyimpanan cache eksplisit, sehingga pengguna dapat mengontrol konten dalam cache (misalnya, konten apa yang perlu disimpan dalam cache) dan menikmati jaminan penghematan biaya. Format: cachedContents/{cachedContent}
Contoh permintaan
Teks
Python
Node.js
Kotlin
Swift
Dart
Java
Gambar
Python
Node.js
Kotlin
Swift
Dart
Java
Audio
Python
Node.js
Video
Python
Node.js
Chat
Python
Node.js
Shell
Kotlin
Swift
Dart
Java
Cache
Python
Node.js
Model yang Disesuaikan
Python
Mode JSON
Python
Node.js
Kotlin
Swift
Dart
Java
Eksekusi kode
Python
Kotlin
Java
Panggilan Fungsi
Python
Node.js
Kotlin
Swift
Dart
Java
Konfigurasi pembuatan
Python
Node.js
Shell
Kotlin
Swift
Dart
Java
Setelan Keamanan
Python
Node.js
Shell
Kotlin
Swift
Dart
Java
Petunjuk Sistem
Python
Node.js
Kotlin
Swift
Dart
Java
Isi respons
Jika berhasil, isi respons memuat instance GenerateContentResponse
.
Metode: models.streamGenerateContent
Menghasilkan respons yang di-streaming dari model yang diberi GenerateContentRequest
input.
Endpoint
posting
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:streamGenerateContent
Parameter jalur
model
string
Wajib. Nama Model
yang akan digunakan untuk menghasilkan penyelesaian.
Format: name=models/{model}
. Formatnya adalah models/{model}
.
Isi permintaan
Isi permintaan memuat data dengan struktur berikut:
contents[]
object (Content
)
Wajib. Konten percakapan saat ini dengan model.
Untuk kueri satu putaran, ini adalah instance tunggal. Untuk kueri multi-giliran, ini adalah kolom berulang yang berisi histori percakapan + permintaan terbaru.
tools[]
object (Tool
)
Opsional. Daftar Tools
yang dapat digunakan model untuk menghasilkan respons berikutnya.
Tool
adalah potongan kode yang memungkinkan sistem berinteraksi dengan sistem eksternal untuk melakukan tindakan, atau serangkaian tindakan, di luar pengetahuan dan cakupan model. Satu-satunya alat yang didukung saat ini adalah Function
.
toolConfig
object (ToolConfig
)
Opsional. Konfigurasi alat untuk setiap Tool
yang ditentukan dalam permintaan.
safetySettings[]
object (SafetySetting
)
Opsional. Daftar instance SafetySetting
unik untuk memblokir konten tidak aman.
Hal ini akan diterapkan di GenerateContentRequest.contents
dan GenerateContentResponse.candidates
. Tidak boleh ada lebih dari satu setelan untuk setiap jenis SafetyCategory
. API akan memblokir semua konten dan respons yang gagal memenuhi nilai minimum yang ditetapkan oleh setelan ini. Daftar ini menggantikan setelan default untuk setiap SafetyCategory
yang ditentukan di safetySettings. Jika tidak ada SafetySetting
untuk SafetyCategory
tertentu yang disediakan dalam daftar, API akan menggunakan setelan keamanan default untuk kategori tersebut. Kategori bahaya HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT didukung.
systemInstruction
object (Content
)
Opsional. Petunjuk sistem set developer. Saat ini, teks saja.
generationConfig
object (GenerationConfig
)
Opsional. Opsi konfigurasi untuk pembuatan dan output model.
cachedContent
string
Opsional. Nama konten yang di-cache yang digunakan sebagai konteks untuk menampilkan prediksi. Catatan: hanya digunakan dalam penyimpanan cache eksplisit, sehingga pengguna dapat mengontrol konten dalam cache (misalnya, konten apa yang perlu disimpan dalam cache) dan menikmati jaminan penghematan biaya. Format: cachedContents/{cachedContent}
Contoh permintaan
Teks
Python
Node.js
Kotlin
Swift
Dart
Java
Gambar
Python
Node.js
Kotlin
Swift
Dart
Java
Video
Python
Node.js
Kotlin
Java
Chat
Python
Node.js
Shell
Kotlin
Swift
Dart
Java
Isi respons
Jika berhasil, isi respons akan memuat aliran instance GenerateContentResponse
.
GenerateContentResponse
Respons dari model yang mendukung beberapa kandidat.
Catatan tentang rating keamanan dan pemfilteran konten. Keduanya dilaporkan untuk perintah di GenerateContentResponse.prompt_feedback
dan untuk setiap kandidat di finishReason
dan safetyRatings
. Kontrak API adalah: - baik semua kandidat yang diminta ditampilkan atau tidak ada kandidat sama sekali - tidak ada kandidat yang ditampilkan hanya jika terdapat masalah dengan perintah (lihat promptFeedback
) - masukan mengenai setiap kandidat dilaporkan pada finishReason
dan safetyRatings
.
Representasi JSON |
---|
{ "candidates": [ { object ( |
candidates[]
object (Candidate
)
Respons kandidat dari model.
promptFeedback
object (PromptFeedback
)
Menampilkan masukan perintah yang terkait dengan filter konten.
usageMetadata
object (UsageMetadata
)
Hanya output. Metadata pada permintaan pembuatan penggunaan token.
PromptFeedback
Kumpulan metadata masukan dari perintah yang ditentukan di GenerateContentRequest.content
.
Representasi JSON |
---|
{ "blockReason": enum ( |
blockReason
enum (BlockReason
)
Opsional. Jika disetel, perintah akan diblokir dan tidak ada kandidat yang ditampilkan. Susun ulang frasa dalam perintah Anda.
safetyRatings[]
object (SafetyRating
)
Rating untuk keamanan dialog. Hanya ada satu rating per kategori.
BlockReason
Menentukan alasan dialog diblokir.
Enum | |
---|---|
BLOCK_REASON_UNSPECIFIED |
Nilai default. Nilai ini tidak digunakan. |
SAFETY |
Perintah diblokir karena alasan keamanan. Anda dapat memeriksa safetyRatings untuk memahami kategori keamanan mana yang memblokirnya. |
OTHER |
Perintah diblokir karena alasan yang tidak diketahui. |
UsageMetadata
Metadata pada penggunaan token permintaan pembuatan.
Representasi JSON |
---|
{ "promptTokenCount": integer, "cachedContentTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } |
promptTokenCount
integer
Jumlah token dalam perintah. Jika cacheContent ditetapkan, ini adalah ukuran perintah total yang efektif. Misalnya termasuk jumlah token dalam konten yang di-cache.
cachedContentTokenCount
integer
Jumlah token di bagian perintah yang di-cache, yaitu dalam konten yang di-cache.
candidatesTokenCount
integer
Jumlah total token di seluruh kandidat yang dibuat.
totalTokenCount
integer
Total jumlah token untuk permintaan pembuatan (dialog + kandidat).
Kandidat
- Representasi JSON
- FinishReason
- GroundingAttribution
- AttributionSourceId
- GroundingPassageId
- SemanticRetrieverChunk
Kandidat respons yang dibuat dari model.
Representasi JSON |
---|
{ "content": { object ( |
content
object (Content
)
Hanya output. Konten yang dihasilkan yang ditampilkan dari model.
finishReason
enum (FinishReason
)
Opsional. Hanya output. Alasan model berhenti membuat token.
Jika kosong, model belum berhenti membuat token.
safetyRatings[]
object (SafetyRating
)
Daftar rating untuk keamanan kandidat respons.
Hanya ada satu rating per kategori.
citationMetadata
object (CitationMetadata
)
Hanya output. Informasi kutipan untuk kandidat yang dibuat model.
Kolom ini dapat diisi dengan informasi kutipan untuk teks apa pun yang disertakan dalam content
. Ini adalah bagian yang "dibacakan" dari materi yang dilindungi hak cipta dalam data pelatihan LLM dasar.
tokenCount
integer
Hanya output. Jumlah token untuk kandidat ini.
groundingAttributions[]
object (GroundingAttribution
)
Hanya output. Informasi atribusi untuk sumber yang berkontribusi pada jawaban dasar.
Kolom ini telah diisi untuk panggilan GenerateAnswer
.
index
integer
Hanya output. Indeks kandidat dalam daftar kandidat.
FinishReason
Menentukan alasan model berhenti membuat token.
Enum | |
---|---|
FINISH_REASON_UNSPECIFIED |
Nilai default. Nilai ini tidak digunakan. |
STOP |
Titik perhentian alami dari model atau urutan perhentian yang diberikan. |
MAX_TOKENS |
Jumlah maksimum token yang ditentukan dalam permintaan telah tercapai. |
SAFETY |
Konten kandidat dilaporkan karena alasan keamanan. |
RECITATION |
Konten kandidat ditandai karena alasan pembacaan. |
LANGUAGE |
Konten kandidat ditandai karena menggunakan bahasa yang tidak didukung. |
OTHER |
Alasan tidak diketahui. |
GroundingAttribution
Atribusi untuk sumber yang berkontribusi pada jawaban.
Representasi JSON |
---|
{ "sourceId": { object ( |
sourceId
object (AttributionSourceId
)
Hanya output. ID untuk sumber yang berkontribusi pada atribusi ini.
content
object (Content
)
Konten sumber dasar yang membentuk atribusi ini.
AttributionSourceId
ID untuk sumber yang berkontribusi pada atribusi ini.
Representasi JSON |
---|
{ // Union field |
Kolom union source
.
source
hanya dapat berupa salah satu dari yang berikut:
groundingPassage
object (GroundingPassageId
)
ID untuk bagian inline.
semanticRetrieverChunk
object (SemanticRetrieverChunk
)
ID untuk Chunk
yang diambil melalui Pengambil Semantik.
GroundingPassageId
ID untuk bagian dalam GroundingPassage
.
Representasi JSON |
---|
{ "passageId": string, "partIndex": integer } |
passageId
string
Hanya output. ID bagian yang cocok dengan GroundingPassage.id
GenerateAnswerRequest
.
partIndex
integer
Hanya output. Indeks bagian dalam GroundingPassage.content
GenerateAnswerRequest
.
SemanticRetrieverChunk
ID untuk Chunk
yang diambil melalui Pengambil Semantik yang ditentukan di GenerateAnswerRequest
menggunakan SemanticRetrieverConfig
.
Representasi JSON |
---|
{ "source": string, "chunk": string } |
source
string
Hanya output. Nama sumber yang cocok dengan SemanticRetrieverConfig.source
permintaan. Contoh: corpora/123
atau corpora/123/documents/abc
chunk
string
Hanya output. Nama Chunk
yang berisi teks yang diatribusikan. Contoh: corpora/123/documents/abc/chunks/xyz
CitationMetadata
Kumpulan atribusi sumber untuk suatu konten.
Representasi JSON |
---|
{
"citationSources": [
{
object ( |
citationSources[]
object (CitationSource
)
Kutipan ke sumber untuk respons tertentu.
CitationSource
Kutipan ke sumber untuk bagian respons tertentu.
Representasi JSON |
---|
{ "startIndex": integer, "endIndex": integer, "uri": string, "license": string } |
startIndex
integer
Opsional. Awal segmen respons yang diatribusikan ke sumber ini.
Indeks menunjukkan awal segmen, diukur dalam byte.
endIndex
integer
Opsional. Akhir dari segmen yang diatribusikan, eksklusif.
uri
string
Opsional. URI yang diatribusikan sebagai sumber untuk sebagian teks.
license
string
Opsional. Lisensi untuk project GitHub yang diatribusikan sebagai sumber untuk segmen.
Info lisensi diperlukan untuk kutipan kode.
GenerationConfig
Opsi konfigurasi untuk pembuatan dan output model. Tidak semua parameter dapat dikonfigurasi untuk setiap model.
Representasi JSON |
---|
{
"stopSequences": [
string
],
"responseMimeType": string,
"responseSchema": {
object ( |
stopSequences[]
string
Opsional. Kumpulan urutan karakter (hingga 5) yang akan menghentikan pembuatan output. Jika ditetapkan, API akan berhenti pada penampilan pertama urutan perhentian. Urutan perhentian tidak akan disertakan sebagai bagian dari respons.
responseMimeType
string
Opsional. mimetype respons output dari teks kandidat yang dihasilkan. mimetype yang didukung: text/plain
: (default) Output teks. application/json
: Respons JSON pada kandidat.
responseSchema
object (Schema
)
Opsional. Skema respons output dari teks kandidat yang dihasilkan jika jenis mime respons dapat memiliki skema. Skema dapat berupa objek, primitif, atau array, dan merupakan subset dari skema OpenAPI.
Jika disetel, responseMimeType yang kompatibel juga harus ditetapkan. mimetype yang kompatibel: application/json
: Skema untuk respons JSON.
candidateCount
integer
Opsional. Jumlah respons yang dihasilkan yang akan ditampilkan.
Saat ini, nilai ini hanya dapat ditetapkan ke 1. Jika tidak disetel, nilai defaultnya adalah 1.
maxOutputTokens
integer
Opsional. Jumlah maksimum token yang akan disertakan dalam kandidat.
Catatan: Nilai default bervariasi menurut model, lihat atribut Model.output_token_limit
dari Model
yang ditampilkan dari fungsi getModel
.
temperature
number
Opsional. Mengontrol keacakan output.
Catatan: Nilai default bervariasi menurut model, lihat atribut Model.temperature
dari Model
yang ditampilkan dari fungsi getModel
.
Nilai dapat berkisar dari [0.0, 2.0].
topP
number
Opsional. Probabilitas kumulatif maksimum token yang perlu dipertimbangkan saat pengambilan sampel.
Model ini menggunakan kombinasi Top-k dan pengambilan sampel inti.
Token diurutkan berdasarkan probabilitas yang ditetapkan sehingga hanya token yang paling mungkin yang dipertimbangkan. Sampling Top-k secara langsung membatasi jumlah maksimum token yang akan dipertimbangkan, sedangkan Sampling Nucleus membatasi jumlah token berdasarkan probabilitas kumulatif.
Catatan: Nilai default bervariasi menurut model, lihat atribut Model.top_p
dari Model
yang ditampilkan dari fungsi getModel
.
topK
integer
Opsional. Jumlah maksimum token yang perlu dipertimbangkan saat diambil sampelnya.
Model menggunakan pengambilan sampel inti atau gabungan pengambilan sampel Top-k dan inti. Sampling top-k mempertimbangkan kumpulan token topK
yang paling mungkin. Model yang berjalan dengan pengambilan sampel inti tidak mengizinkan setelan topK.
Catatan: Nilai default bervariasi menurut model, lihat atribut Model.top_k
dari Model
yang ditampilkan dari fungsi getModel
. Kolom topK
yang kosong di Model
menunjukkan bahwa model tidak menerapkan pengambilan sampel top-k dan tidak mengizinkan penetapan topK
pada permintaan.
HarmCategory
Kategori rating.
Kategori ini mencakup berbagai jenis bahaya yang dapat disesuaikan oleh developer.
Enum | |
---|---|
HARM_CATEGORY_UNSPECIFIED |
Kategori tidak ditentukan. |
HARM_CATEGORY_DEROGATORY |
Komentar negatif atau berbahaya yang menargetkan identitas dan/atau atribut yang dilindungi. |
HARM_CATEGORY_TOXICITY |
Konten yang kasar, tidak sopan, atau tidak senonoh. |
HARM_CATEGORY_VIOLENCE |
Menjelaskan skenario yang menggambarkan kekerasan terhadap individu atau kelompok, atau deskripsi umum tentang adegan menyeramkan. |
HARM_CATEGORY_SEXUAL |
Berisi referensi ke tindakan seksual atau konten cabul lainnya. |
HARM_CATEGORY_MEDICAL |
Mendukung saran medis yang belum diperiksa. |
HARM_CATEGORY_DANGEROUS |
Konten berbahaya yang mempromosikan, memfasilitasi, atau mendorong tindakan berbahaya. |
HARM_CATEGORY_HARASSMENT |
Konten pelecehan. |
HARM_CATEGORY_HATE_SPEECH |
Ujaran dan konten kebencian. |
HARM_CATEGORY_SEXUALLY_EXPLICIT |
Konten seksual vulgar. |
HARM_CATEGORY_DANGEROUS_CONTENT |
Konten berbahaya. |
SafetyRating
Rating keamanan untuk suatu konten.
Rating keamanan berisi kategori bahaya dan tingkat probabilitas bahaya dalam kategori tersebut untuk suatu konten. Konten diklasifikasikan demi keamanan di berbagai kategori bahaya dan kemungkinan klasifikasi bahaya akan disertakan di sini.
Representasi JSON |
---|
{ "category": enum ( |
category
enum (HarmCategory
)
Wajib. Kategori untuk rating ini.
probability
enum (HarmProbability
)
Wajib. Probabilitas bahaya untuk konten ini.
blocked
boolean
Apakah konten ini diblokir karena rating ini?
HarmProbability
Probabilitas bahwa suatu konten berbahaya.
Sistem klasifikasi memberikan probabilitas konten tidak aman. Hal ini tidak menunjukkan tingkat keparahan bahaya untuk suatu konten.
Enum | |
---|---|
HARM_PROBABILITY_UNSPECIFIED |
Probabilitas tidak ditentukan. |
NEGLIGIBLE |
Konten memiliki peluang kecil untuk dianggap tidak aman. |
LOW |
Konten memiliki peluang rendah untuk menjadi tidak aman. |
MEDIUM |
Konten memiliki peluang sedang untuk dianggap tidak aman. |
HIGH |
Konten sangat berisiko menjadi tidak aman. |
SafetySetting
Setelan keamanan, yang memengaruhi perilaku pemblokiran keamanan.
Meneruskan setelan keamanan untuk suatu kategori akan mengubah probabilitas yang diizinkan bahwa konten diblokir.
Representasi JSON |
---|
{ "category": enum ( |
category
enum (HarmCategory
)
Wajib. Kategori untuk setelan ini.
threshold
enum (HarmBlockThreshold
)
Wajib. Mengontrol nilai minimum probabilitas untuk memblokir bahaya.
HarmBlockThreshold
Memblokir sesuai dan di luar probabilitas bahaya yang ditentukan.
Enum | |
---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED |
Nilai minimum tidak ditentukan. |
BLOCK_LOW_AND_ABOVE |
Konten dengan NEGLIGIBLE diizinkan. |
BLOCK_MEDIUM_AND_ABOVE |
Konten dengan status NEGLIGIBLE dan RENDAH akan diizinkan. |
BLOCK_ONLY_HIGH |
Konten dengan status NEGLIGIBLE, RENDAH, dan SEDANG akan diizinkan. |
BLOCK_NONE |
Semua konten akan diizinkan. |