Gemini API mendukung pembuatan konten dengan gambar, audio, kode, alat, dan lainnya. Untuk detail tentang masing-masing fitur ini, baca dan lihat kode contoh yang berfokus pada tugas, atau baca panduan komprehensif.
- Pembuatan teks
- Visual
- Audio
- Konteks panjang
- Eksekusi kode
- Mode JSON
- Panggilan fungsi
- Petunjuk sistem
Metode: models.generateContent
Menghasilkan respons model dengan GenerateContentRequest
input. Lihat panduan pembuatan teks untuk informasi penggunaan yang mendetail. 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 seperti chat, ini adalah kolom berulang yang berisi histori percakapan dan permintaan terbaru.
tools[]
object (Tool
)
Opsional. Daftar Tools
yang dapat digunakan Model
untuk membuat 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
. Tool
yang didukung adalah Function
dan codeExecution
. Lihat panduan Panggilan fungsi dan Eksekusi kode untuk mempelajari lebih lanjut.
toolConfig
object (ToolConfig
)
Opsional. Konfigurasi alat untuk setiap Tool
yang ditentukan dalam permintaan. Lihat Panduan panggilan fungsi untuk contoh penggunaan.
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 konten dan respons apa pun 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. Lihat panduan untuk mendapatkan informasi mendetail tentang setelan keamanan yang tersedia. Lihat juga Panduan keamanan untuk mempelajari cara menyertakan pertimbangan keamanan dalam aplikasi AI.
systemInstruction
object (Content
)
Opsional. Menetapkan petunjuk sistem developer. Saat ini, teks saja.
generationConfig
object (GenerationConfig
)
Opsional. Opsi konfigurasi untuk pembuatan dan output model.
cachedContent
string
Opsional. Nama konten yang di-cache untuk digunakan sebagai konteks untuk menampilkan prediksi. Format: cachedContents/{cachedContent}
Contoh permintaan
Teks
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Gambar
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Audio
Python
Node.js
Shell
Video
Python
Node.js
Go
Shell
Python
Shell
Chat
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Cache
Python
Node.js
Model yang Disesuaikan
Python
Mode JSON
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Eksekusi kode
Python
Kotlin
Java
Panggilan Fungsi
Python
Node.js
Shell
Kotlin
Swift
Dart
Java
Konfigurasi pembuatan
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Setelan Keamanan
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Petunjuk Sistem
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Isi respons
Jika berhasil, isi respons memuat instance GenerateContentResponse
.
Metode: models.streamGenerateContent
Menghasilkan respons 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 seperti chat, ini adalah kolom berulang yang berisi histori percakapan dan permintaan terbaru.
tools[]
object (Tool
)
Opsional. Daftar Tools
yang dapat digunakan Model
untuk membuat 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
. Tool
yang didukung adalah Function
dan codeExecution
. Lihat panduan Panggilan fungsi dan Eksekusi kode untuk mempelajari lebih lanjut.
toolConfig
object (ToolConfig
)
Opsional. Konfigurasi alat untuk setiap Tool
yang ditentukan dalam permintaan. Lihat Panduan panggilan fungsi untuk contoh penggunaan.
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 konten dan respons apa pun 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. Lihat panduan untuk mendapatkan informasi mendetail tentang setelan keamanan yang tersedia. Lihat juga Panduan keamanan untuk mempelajari cara menyertakan pertimbangan keamanan dalam aplikasi AI.
systemInstruction
object (Content
)
Opsional. Menetapkan petunjuk sistem developer. Saat ini, teks saja.
generationConfig
object (GenerationConfig
)
Opsional. Opsi konfigurasi untuk pembuatan dan output model.
cachedContent
string
Opsional. Nama konten yang di-cache untuk digunakan sebagai konteks untuk menampilkan prediksi. Format: cachedContents/{cachedContent}
Contoh permintaan
Teks
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Gambar
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Audio
Python
Shell
Video
Python
Node.js
Go
Shell
Python
Shell
Chat
Python
Node.js
Go
Shell
Kotlin
Swift
Dart
Java
Isi respons
Jika berhasil, isi respons akan memuat aliran instance GenerateContentResponse
.
GenerateContentResponse
Respons dari model yang mendukung beberapa respons kandidat.
Rating keamanan dan pemfilteran konten dilaporkan untuk dialog di GenerateContentResponse.prompt_feedback
dan untuk setiap kandidat di finishReason
dan safetyRatings
. API: - Menampilkan semua kandidat yang diminta atau tidak menampilkan kandidat sama sekali, hanya jika terdapat yang salah dengan perintah (centang promptFeedback
) - Melaporkan masukan terkait setiap kandidat di finishReason
dan safetyRatings
.
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.
Representasi JSON |
---|
{ "candidates": [ { object ( |
PromptFeedback
Kumpulan metadata masukan dari perintah yang ditentukan di GenerateContentRequest.content
.
blockReason
enum (BlockReason
)
Opsional. Jika disetel, perintah akan diblokir dan tidak ada kandidat yang ditampilkan. Menyusun ulang kata-kata perintah.
safetyRatings[]
object (SafetyRating
)
Rating untuk keamanan dialog. Hanya ada satu rating per kategori.
Representasi JSON |
---|
{ "blockReason": enum ( |
BlockReason
Menentukan alasan dialog diblokir.
Enum | |
---|---|
BLOCK_REASON_UNSPECIFIED |
Nilai default. Nilai ini tidak digunakan. |
SAFETY |
Perintah diblokir karena alasan keamanan. Periksa safetyRatings untuk memahami kategori keamanan mana yang memblokirnya. |
OTHER |
Perintah diblokir karena alasan yang tidak diketahui. |
BLOCKLIST |
Dialog diblokir karena persyaratan yang disertakan dari daftar terminologi yang tidak diizinkan. |
PROHIBITED_CONTENT |
Perintah diblokir karena konten yang dilarang. |
UsageMetadata
Metadata pada penggunaan token permintaan pembuatan.
promptTokenCount
integer
Jumlah token dalam perintah. Jika cachedContent
ditetapkan, ini masih merupakan ukuran perintah total yang efektif, yang berarti hal ini mencakup jumlah token dalam konten yang di-cache.
cachedContentTokenCount
integer
Jumlah token di bagian perintah yang di-cache (konten yang di-cache)
candidatesTokenCount
integer
Jumlah total token di semua kandidat respons yang dibuat.
totalTokenCount
integer
Total jumlah token untuk permintaan pembuatan (kandidat perintah + respons).
Representasi JSON |
---|
{ "promptTokenCount": integer, "cachedContentTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } |
Kandidat
- Representasi JSON
- FinishReason
- GroundingAttribution
- AttributionSourceId
- GroundingPassageId
- SemanticRetrieverChunk
Kandidat respons yang dibuat dari model.
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 respons.
Representasi JSON |
---|
{ "content": { object ( |
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 respons dilaporkan karena alasan keamanan. |
RECITATION |
Konten kandidat respons ditandai karena alasan pembacaan. |
LANGUAGE |
Konten kandidat respons ditandai karena menggunakan bahasa yang tidak didukung. |
OTHER |
Alasan tidak diketahui. |
BLOCKLIST |
Pembuatan token dihentikan karena konten berisi istilah yang dilarang. |
PROHIBITED_CONTENT |
Pembuatan token dihentikan karena berpotensi berisi konten yang dilarang. |
SPII |
Pembuatan token dihentikan karena konten berpotensi berisi Informasi Identitas Pribadi (SPII) yang Sensitif. |
MALFORMED_FUNCTION_CALL |
Panggilan fungsi yang dihasilkan oleh model tidak valid. |
GroundingAttribution
Atribusi untuk sumber yang berkontribusi pada jawaban.
sourceId
object (AttributionSourceId
)
Hanya output. ID untuk sumber yang berkontribusi pada atribusi ini.
content
object (Content
)
Konten sumber dasar yang membentuk atribusi ini.
Representasi JSON |
---|
{ "sourceId": { object ( |
AttributionSourceId
ID untuk sumber yang berkontribusi pada atribusi ini.
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.
Representasi JSON |
---|
{ // Union field |
GroundingPassageId
ID untuk bagian dalam GroundingPassage
.
passageId
string
Hanya output. ID bagian yang cocok dengan GroundingPassage.id
GenerateAnswerRequest
.
partIndex
integer
Hanya output. Indeks bagian dalam GroundingPassage.content
GenerateAnswerRequest
.
Representasi JSON |
---|
{ "passageId": string, "partIndex": integer } |
SemanticRetrieverChunk
ID untuk Chunk
yang diambil melalui Pengambil Semantik yang ditentukan di GenerateAnswerRequest
menggunakan SemanticRetrieverConfig
.
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
Representasi JSON |
---|
{ "source": string, "chunk": string } |
CitationMetadata
Kumpulan atribusi sumber untuk suatu konten.
citationSources[]
object (CitationSource
)
Kutipan ke sumber untuk respons tertentu.
Representasi JSON |
---|
{
"citationSources": [
{
object ( |
CitationSource
Kutipan ke sumber untuk bagian respons tertentu.
startIndex
integer
Opsional. Awal segmen respons yang diatribusikan ke sumber ini.
Indeks menunjukkan awal segmen, yang 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.
Representasi JSON |
---|
{ "startIndex": integer, "endIndex": integer, "uri": string, "license": string } |
GenerationConfig
Opsi konfigurasi untuk pembuatan dan output model. Tidak semua parameter dapat dikonfigurasi untuk setiap model.
stopSequences[]
string
Opsional. Kumpulan urutan karakter (hingga 5) yang akan menghentikan pembuatan output. Jika ditentukan, API akan berhenti saat kemunculan pertama stop_sequence
. Urutan perhentian tidak akan disertakan sebagai bagian dari respons.
responseMimeType
string
Opsional. Jenis MIME dari teks kandidat yang dihasilkan. Jenis MIME yang didukung adalah: text/plain
: (default) Output teks. application/json
: Respons JSON dalam kandidat respons. Lihat dokumen untuk mengetahui daftar semua jenis MIME teks yang didukung.
responseSchema
object (Schema
)
Opsional. Skema output dari teks kandidat yang dihasilkan. Skema harus merupakan subset dari skema OpenAPI dan dapat berupa objek, primitif, atau array.
Jika disetel, responseMimeType
yang kompatibel juga harus ditetapkan. Jenis MIME yang kompatibel: application/json
: Skema untuk respons JSON. Lihat panduan pembuatan teks JSON untuk detail selengkapnya.
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 respons.
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
.
Nilainya dapat berkisar dari [0.0, 2.0].
topP
number
Opsional. Probabilitas kumulatif maksimum token yang perlu dipertimbangkan saat pengambilan sampel.
Model ini menggunakan kombinasi pengambilan sampel Top-k dan Top-p (nukleus).
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
dan ditentukan oleh atribut Model.top_p
yang ditampilkan dari fungsi getModel
. Atribut topK
kosong menunjukkan bahwa model tidak menerapkan pengambilan sampel top-k dan tidak mengizinkan penetapan topK
pada permintaan.
topK
integer
Opsional. Jumlah maksimum token yang perlu dipertimbangkan saat diambil sampelnya.
Model Gemini menggunakan sampling Top-p (nucleus) atau kombinasi pengambilan sampel Top-k dan nucleus. 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
dan ditentukan oleh atribut Model.top_p
yang ditampilkan dari fungsi getModel
. Atribut topK
kosong menunjukkan bahwa model tidak menerapkan pengambilan sampel top-k dan tidak mengizinkan penetapan topK
pada permintaan.
Representasi JSON |
---|
{
"stopSequences": [
string
],
"responseMimeType": string,
"responseSchema": {
object ( |
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.
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?
Representasi JSON |
---|
{ "category": enum ( |
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.
category
enum (HarmCategory
)
Wajib. Kategori untuk setelan ini.
threshold
enum (HarmBlockThreshold
)
Wajib. Mengontrol nilai minimum probabilitas untuk memblokir bahaya.
Representasi JSON |
---|
{ "category": enum ( |
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. |