Gunakan generateContent
atau streamGenerateContent
untuk membuat konten dengan Gemini.
Serangkaian model Gemini mencakup model yang berfungsi dengan permintaan perintah multimodal. Istilah multimodal menunjukkan bahwa Anda dapat menggunakan lebih dari satu modalitas, atau jenis input, dalam perintah. Model yang tidak multimodal hanya menerima perintah dengan teks. Modalitas dapat mencakup teks, audio, video, dan lainnya.
Buat akun Google Cloud untuk memulai
Untuk mulai menggunakan Gemini API di Vertex AI, buat Google Cloud akun.
Setelah membuat akun, gunakan dokumen ini untuk meninjau isi permintaan model Gemini, parameter model, isi respons, dan beberapa permintaan contoh.
Jika sudah siap, lihat Panduan memulai Gemini API di Vertex AI untuk mempelajari cara mengirim permintaan ke Gemini API di Vertex AI menggunakan SDK bahasa pemrograman atau REST API.
Model yang didukung
Semua model Gemini mendukung pembuatan konten.
Daftar parameter
Lihat contoh untuk mengetahui detail implementasi.
Isi permintaan
{ "cachedContent": string, "contents": [ { "role": string, "parts": [ { // Union field data can be only one of the following: "text": string, "inlineData": { "mimeType": string, "data": string }, "fileData": { "mimeType": string, "fileUri": string }, // End of list of possible types for union field data. "videoMetadata": { "startOffset": { "seconds": integer, "nanos": integer }, "endOffset": { "seconds": integer, "nanos": integer }, "fps": double } } ] } ], "systemInstruction": { "role": string, "parts": [ { "text": string } ] }, "tools": [ { "functionDeclarations": [ { "name": string, "description": string, "parameters": { object (OpenAPI Object Schema) } } ] } ], "safetySettings": [ { "category": enum (HarmCategory), "threshold": enum (HarmBlockThreshold) } ], "generationConfig": { "temperature": number, "topP": number, "topK": number, "candidateCount": integer, "maxOutputTokens": integer, "presencePenalty": float, "frequencyPenalty": float, "stopSequences": [ string ], "responseMimeType": string, "responseSchema": schema, "seed": integer, "responseLogprobs": boolean, "logprobs": integer, "audioTimestamp": boolean }, "labels": { string: string } }
Isi permintaan berisi data dengan parameter berikut:
Parameter | |
---|---|
| Opsional: Nama konten yang di-cache yang digunakan sebagai konteks untuk menayangkan prediksi. Format: |
| Wajib: Konten percakapan saat ini dengan model. Untuk kueri sekali putaran, ini adalah satu instance. Untuk kueri multi-turn, ini adalah kolom berulang yang berisi histori percakapan dan permintaan terbaru. |
| Opsional: Tersedia untuk Petunjuk untuk model agar mengarahkannya ke performa yang lebih baik. Misalnya, "Jawab sesingkat mungkin" atau "Jangan gunakan istilah teknis dalam respons Anda". String Kolom |
| Opsional. Potongan kode yang memungkinkan sistem berinteraksi dengan sistem eksternal untuk melakukan tindakan, atau serangkaian tindakan, di luar pengetahuan dan cakupan model. Lihat Pemanggilan fungsi. |
| Opsional. Lihat Pemanggilan fungsi. |
| Opsional: Setelan per permintaan untuk memblokir konten tidak aman. Diberlakukan pada |
| Opsional: Setelan konfigurasi pembuatan. |
| Opsional: Metadata yang dapat Anda tambahkan ke panggilan API dalam format key-value pair. |
contents
Jenis data terstruktur dasar yang berisi konten multi-bagian dari pesan.
Class ini terdiri dari dua properti utama: role
dan parts
. Properti role
menunjukkan individu yang membuat konten, sedangkan properti parts
berisi beberapa elemen, yang masing-masing merepresentasikan segmen data dalam pesan.
Parameter | |
---|---|
|
Identitas entitas yang membuat pesan. Nilai-nilai berikut didukung:
Nilai |
|
Daftar bagian yang diurutkan yang membentuk satu pesan. Bagian yang berbeda mungkin memiliki jenis MIME IANA yang berbeda. Untuk mengetahui batas pada input, seperti jumlah maksimum token atau jumlah gambar, lihat spesifikasi model di halaman Model Google. Untuk menghitung jumlah token dalam permintaan Anda, lihat Mendapatkan jumlah token. |
parts
Jenis data yang berisi media yang merupakan bagian dari pesan Content
multi-bagian.
Parameter | |
---|---|
| Opsional: Perintah teks atau cuplikan kode. |
| Opsional: Data inline dalam byte mentah. Untuk |
| Opsional: Data yang disimpan dalam file. |
| Opsional: Objek ini berisi string yang merepresentasikan kolom Lihat Pemanggilan fungsi. |
| Opsional: Output hasil Lihat Pemanggilan fungsi. |
| Opsional: Untuk input video, selisih waktu mulai dan berakhir video dalam format Durasi, dan kecepatan frame video . Misalnya, untuk menentukan klip 10 detik yang dimulai pada 1:00 dengan kecepatan frame 10 frame per detik, tetapkan hal berikut:
Metadata hanya boleh ditentukan saat data video ditampilkan di |
blob
Blob konten. Jika memungkinkan, kirim sebagai teks, bukan byte mentah.
Parameter | |
---|---|
|
data atau fileUri . Nilai yang dapat diterima mencakup hal berikut: Klik untuk meluaskan jenis MIME
Untuk File teks harus berenkode UTF-8. Isi file teks dihitung dalam batas token. Tidak ada batasan pada resolusi gambar. |
|
Encoding base64 gambar, PDF, atau video untuk disertakan secara inline dalam perintah. Saat menyertakan media secara inline, Anda juga harus menentukan jenis media ( Batas ukuran: 20 MB |
FileData
Data URI atau web-URL.
Parameter | |
---|---|
|
Jenis MIME IANA data. |
|
URI atau URL file yang akan disertakan dalam perintah. Nilai yang dapat diterima mencakup hal berikut:
Saat menentukan |
functionCall
functionCall
yang diprediksi dan ditampilkan dari model yang berisi string yang merepresentasikan functionDeclaration.name
dan objek JSON terstruktur yang berisi parameter dan nilainya.
Parameter | |
---|---|
|
Nama fungsi yang akan dipanggil. |
|
Parameter dan nilai fungsi dalam format objek JSON. Lihat Panggilan fungsi untuk mengetahui detail parameter. |
functionResponse
Output yang dihasilkan dari FunctionCall
yang berisi string yang merepresentasikan FunctionDeclaration.name
. Juga berisi objek JSON terstruktur dengan output dari fungsi (dan menggunakannya sebagai konteks untuk model). Kolom ini harus berisi hasil FunctionCall
yang dibuat berdasarkan prediksi model.
Parameter | |
---|---|
|
Nama fungsi yang akan dipanggil. |
|
Respons fungsi dalam format objek JSON. |
videoMetadata
Metadata yang mendeskripsikan konten video input.
Parameter | |
---|---|
| Opsional: Offset awal video. |
| Opsional: Offset akhir video. |
| Opsional: Kecepatan frame video yang dikirim ke model. Nilai defaultnya adalah |
safetySetting
Setelan keamanan.
Parameter | |
---|---|
| Opsional: Kategori keamanan untuk mengonfigurasi batas. Nilai yang dapat diterima mencakup hal berikut: Klik untuk meluaskan kategori keamanan
|
| Opsional: Nilai minimum untuk memblokir respons yang mungkin termasuk dalam kategori keamanan yang ditentukan berdasarkan probabilitas.
|
| Opsional: Tentukan apakah nilai minimum digunakan untuk skor probabilitas atau keparahan. Jika tidak ditentukan, nilai minimum digunakan untuk skor probabilitas. |
harmCategory
Kategori bahaya yang memblokir konten.
Parameter | |
---|---|
| Kategori bahaya tidak ditentukan. |
| Kategori bahaya adalah ujaran kebencian. |
| Kategori bahayanya adalah konten berbahaya. |
| Kategori bahaya adalah pelecehan. |
| Kategori bahayanya adalah konten seksual vulgar. |
harmBlockThreshold
Tingkat nilai minimum probabilitas yang digunakan untuk memblokir respons.
Parameter | |
---|---|
| Batas blokir bahaya tidak ditentukan. |
| Blokir batas rendah dan lebih tinggi (yaitu, blokir lebih banyak). |
| Blokir konten dengan batas sedang dan lebih tinggi. |
| Ambang batas Block only high (yaitu, blokir lebih sedikit). |
| Tidak memblokir apa pun. |
| Menonaktifkan keamanan jika semua kategori dinonaktifkan |
harmBlockMethod
Nilai minimum probabilitas yang memblokir respons berdasarkan kombinasi probabilitas dan tingkat keparahan.
Parameter | |
---|---|
| Metode pemblokiran bahaya tidak ditentukan. |
| Metode pemblokiran bahaya menggunakan skor probabilitas dan tingkat keparahan. |
| Metode pemblokiran bahaya menggunakan skor probabilitas. |
generationConfig
Setelan konfigurasi yang digunakan saat membuat perintah.
Parameter | |
---|---|
| Opsional: Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons pengganti, coba tingkatkan suhunya.
Untuk mengetahui informasi selengkapnya, lihat Parameter pembuatan konten. |
| Opsional: Jika ditentukan, pengambilan sampel inti akan digunakan. Top-P mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat top-K) hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Misalnya, jika token A, B, dan C memiliki probabilitas 0,3, 0,2, dan 0,1 dengan nilai top-P Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.
|
| Opsional: Jumlah variasi respons yang akan ditampilkan. Untuk setiap permintaan, Anda dikenai biaya untuk token output semua kandidat, tetapi hanya dikenai biaya satu kali untuk token input. Menentukan beberapa kandidat adalah fitur Pratinjau yang berfungsi dengan
|
| Opsional: int Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang. Untuk mengetahui informasi selengkapnya, lihat Parameter pembuatan konten. |
| Opsional: Menentukan daftar string yang memberi tahu model untuk berhenti menghasilkan teks jika salah satu string ditemukan dalam respons. Jika string muncul beberapa kali dalam respons, respons akan dipotong di tempatnya pertama kali ditemukan. String peka huruf besar/kecil. Maksimum 5 item dalam daftar. Untuk mengetahui informasi selengkapnya, lihat Parameter pembuatan konten. |
| Opsional: Penalti positif. Nilai positif menghukum token yang sudah muncul dalam teks yang dihasilkan, sehingga meningkatkan probabilitas pembuatan konten yang lebih beragam. Nilai maksimum untuk |
| Opsional: Nilai positif menghukum token yang berulang kali muncul dalam teks yang dihasilkan, sehingga mengurangi kemungkinan pengulangan konten. Nilai maksimum untuk |
| Opsional: Jenis MIME respons output dari teks kandidat yang dihasilkan. Jenis MIME berikut didukung:
Tentukan jenis respons yang sesuai untuk menghindari perilaku yang tidak diinginkan. Misalnya, jika Anda memerlukan respons berformat JSON, tentukan text/plain tidak didukung untuk digunakan dengan responseSchema . |
| Opsional: schema Skema yang menghasilkan teks kandidat harus diikuti. Untuk mengetahui informasi selengkapnya, lihat Mengontrol output yang dihasilkan. Untuk menggunakan parameter ini, Anda harus menentukan jenis MIME yang didukung selain |
| Opsional: Jika seed ditetapkan ke nilai tertentu, model akan berupaya sebaik mungkin untuk memberikan respons yang sama untuk permintaan berulang. Output deterministik tidak dijamin. Selain itu, mengubah setelan model atau parameter, seperti suhu, dapat menyebabkan variasi dalam respons meskipun Anda menggunakan nilai awal yang sama. Secara default, nilai awal acak akan digunakan. |
| Opsional: Jika benar, menampilkan probabilitas log token yang dipilih oleh model di setiap langkah. Secara default, parameter ini ditetapkan ke |
| Opsional: Menampilkan probabilitas log token kandidat teratas di setiap langkah pembuatan. Token yang dipilih model mungkin tidak sama dengan token kandidat teratas di setiap langkah. Tentukan jumlah kandidat yang akan ditampilkan dengan menggunakan nilai bilangan bulat dalam rentang Anda harus mengaktifkan |
| Opsional: Tersedia untuk model berikut:
Mengaktifkan pemahaman stempel waktu untuk file khusus audio. Ini adalah fitur pratinjau. |
Isi respons
{ "candidates": [ { "content": { "parts": [ { "text": string } ] }, "finishReason": enum (FinishReason), "safetyRatings": [ { "category": enum (HarmCategory), "probability": enum (HarmProbability), "blocked": boolean } ], "citationMetadata": { "citations": [ { "startIndex": integer, "endIndex": integer, "uri": string, "title": string, "license": string, "publicationDate": { "year": integer, "month": integer, "day": integer } } ] }, "avgLogprobs": double, "logprobsResult": { "topCandidates": [ { "candidates": [ { "token": string, "logProbability": float } ] } ], "chosenCandidates": [ { "token": string, "logProbability": float } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer }, "modelVersion": string }
Elemen respons | Deskripsi |
---|---|
modelVersion | Model dan versi yang digunakan untuk pembuatan. Contoh: gemini-2.0-flash-lite-001 . |
text | Teks yang dihasilkan. |
finishReason | Alasan model berhenti menghasilkan token. Jika kosong, model belum berhenti menghasilkan token. Karena respons menggunakan perintah untuk konteks, perilaku cara model berhenti membuat token tidak dapat diubah.
|
category | Kategori keamanan untuk mengonfigurasi batas. Nilai yang dapat diterima mencakup hal berikut: Klik untuk meluaskan kategori keamanan
|
probability | Tingkat probabilitas bahaya dalam konten.
|
blocked | Flag boolean yang terkait dengan atribut keamanan yang menunjukkan apakah input atau output model diblokir. |
startIndex | Bilangan bulat yang menentukan tempat kutipan dimulai dalam content . startIndex dalam byte dan dihitung dari respons yang dienkode dalam UTF-8. |
endIndex | Bilangan bulat yang menentukan tempat kutipan diakhiri dalam content . endIndex dalam byte dan dihitung dari respons yang dienkode dalam UTF-8. |
url | URL sumber kutipan. Contoh sumber URL dapat berupa situs berita atau repositori GitHub. |
title | Judul sumber kutipan. Contoh judul sumber mungkin dari artikel berita atau buku. |
license | Lisensi yang terkait dengan kutipan. |
publicationDate | Tanggal penerbitan kutipan. Formatnya yang valid adalah YYYY , YYYY-MM , dan YYYY-MM-DD . |
avgLogprobs | Probabilitas log rata-rata kandidat. |
logprobsResult | Menampilkan token kandidat teratas (topCandidates ) dan token yang sebenarnya dipilih (chosenCandidates ) di setiap langkah. |
token | Model AI generatif menguraikan data teks menjadi token untuk diproses, yang dapat berupa karakter, kata, atau frasa. |
logProbability | Nilai probabilitas log yang menunjukkan keyakinan model untuk token tertentu. |
promptTokenCount | Jumlah token dalam permintaan. |
candidatesTokenCount | Jumlah token dalam respons. |
totalTokenCount | Jumlah token dalam permintaan dan respons. |
Contoh
Pembuatan Teks
Menghasilkan respons teks dari input teks.
Gen AI SDK untuk Python
Python (OpenAI)
Anda dapat memanggil Inference API menggunakan library OpenAI. Untuk mengetahui informasi selengkapnya, lihat Memanggil model Vertex AI menggunakan library OpenAI.
Go
Menggunakan perintah multimodal
Membuat respons teks dari input multimodal, seperti teks dan gambar.
Gen AI SDK untuk Python
Python (OpenAI)
Anda dapat memanggil Inference API menggunakan library OpenAI. Untuk mengetahui informasi selengkapnya, lihat Memanggil model Vertex AI menggunakan library OpenAI.
Go
Respons teks streaming
Menghasilkan respons model streaming dari input teks.
Gen AI SDK untuk Python
Python (OpenAI)
Anda dapat memanggil Inference API menggunakan library OpenAI. Untuk mengetahui informasi selengkapnya, lihat Memanggil model Vertex AI menggunakan library OpenAI.
Go
Versi model
Untuk menggunakan versi yang diupdate otomatis, tentukan nama model tanpa nomor versi di belakang, misalnya gemini-2.0-flash
, bukan gemini-2.0-flash-001
.
Untuk mengetahui informasi selengkapnya, lihat Versi dan siklus proses model Gemini.
Langkah berikutnya
- Pelajari lebih lanjut Gemini API di Vertex AI.
- Pelajari lebih lanjut pemanggilan Function.
- Pelajari lebih lanjut Respons perujukan untuk model Gemini.