Panduan ini menunjukkan cara menggunakan metode generateContent
dan streamGenerateContent
Gemini API di Vertex AI untuk membuat konten. Halaman ini membahas beberapa topik berikut:
- Mulai: Menjelaskan cara membuat akun Google Cloud untuk menggunakan API.
- Daftar parameter: Menjelaskan parameter isi permintaan yang dapat Anda gunakan untuk mengontrol output pembuatan.
- Isi respons: Menjelaskan struktur dan elemen respons yang Anda terima dari model.
- Contoh: Menyediakan contoh kode untuk berbagai tugas pembuatan, termasuk teks, multimodal, dan streaming.
Diagram berikut merangkum alur kerja keseluruhan untuk membuat konten:
Gunakan generateContent
atau streamGenerateContent
untuk membuat konten dengan
Gemini.
Metode | Deskripsi | Kasus Penggunaan |
---|---|---|
generateContent (Unary) |
Mengirim satu permintaan ke model dan menerima seluruh respons yang dihasilkan sekaligus setelah selesai. | Paling cocok untuk tugas yang tidak memerlukan masukan langsung dan respons lengkap diperlukan sebelum pemrosesan, seperti membuat dokumen atau meringkas teks. |
streamGenerateContent (Streaming) |
Mengirim permintaan dan menerima respons dalam potongan yang lebih kecil saat respons tersebut dibuat. | Ideal untuk aplikasi interaktif seperti chatbot atau untuk menampilkan hasil secara progresif, sehingga memberikan pengalaman pengguna yang lebih responsif. |
Serangkaian model Gemini mencakup model yang mendukung permintaan perintah multimodal. Perintah multimodal dapat mencakup lebih dari satu jenis input, atau modalitas, seperti teks, audio, dan video. Sebaliknya, model non-multimodal hanya menerima perintah teks.
Buat akun Google Cloud untuk memulai
Untuk menggunakan Gemini API di Vertex AI, Anda harus membuat akun Google Cloud terlebih dahulu.
Setelah membuat akun, Anda dapat menggunakan dokumen ini untuk mempelajari isi permintaan, parameter model, isi respons, dan contoh permintaan model Gemini.
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.
Menambahkan banyak gambar ke satu permintaan dapat meningkatkan latensi respons.
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 untuk 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
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. Anda dapat memberikan data media ke model dengan salah satu dari dua cara: dengan meneruskan byte mentah data secara langsung dalam permintaan, atau dengan mereferensikan file yang disimpan di Cloud Storage.
Opsi | Deskripsi | Kelebihan | Kekurangan / Batasan |
---|---|---|---|
inlineData |
Menyematkan byte mentah media berenkode base64 secara langsung dalam isi permintaan JSON. | Sederhana untuk file yang lebih kecil; tidak memerlukan penyimpanan eksternal. | Meningkatkan ukuran payload permintaan. Dibatasi hingga 20 MB per bagian permintaan. |
fileData |
Menyediakan URI Cloud Storage (gs://... ) yang mengarah ke file media. Model mengambil file langsung dari bucket. |
Ideal untuk file besar. Mempertahankan payload permintaan tetap kecil. | Memerlukan file untuk diupload ke Cloud Storage. Akun layanan yang digunakan harus memiliki izin untuk membaca file. |
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
Mewakili blob konten. Jika memungkinkan, kirim data 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
|
|
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-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
Contoh berikut menunjukkan cara mengirim permintaan ke model menggunakan Gen AI SDK for Python bawaan atau library OpenAI, yang dapat dikonfigurasi untuk bekerja dengan endpoint Vertex AI.
Library | Deskripsi | Kasus Penggunaan |
---|---|---|
Gen AI SDK untuk Python | Library resmi Google untuk berinteraksi dengan model Gemini. SDK ini terintegrasi sepenuhnya dengan layanan Google Cloud dan menyediakan akses ke semua fitur terbaru. | Direkomendasikan untuk project baru dan developer yang ingin memanfaatkan kemampuan penuh Vertex AI. |
Library OpenAI | Library pihak ketiga yang populer untuk berinteraksi dengan model bahasa besar. Anda dapat mengonfigurasinya untuk mengirim permintaan ke endpoint Vertex AI. | Berguna bagi developer yang memigrasikan aplikasi yang ada dari platform OpenAI atau lebih memilih menggunakan struktur OpenAI API. |
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.