Vertex AI API untuk Gemini memungkinkan Anda membuat aplikasi dengan model Gemini. Gunakan perintah tersebut untuk membuat permintaan lalu menerima respons untuk membantu membuat aplikasi untuk kasus penggunaan Anda. Topik berikut mencakup beberapa contoh kasus penggunaan untuk model Gemini:
- Kasus penggunaan Flash (Pratinjau) Gemini 1.5 Pro (Pratinjau) dan Gemini 1.5
- Kasus penggunaan Gemini 1.0 Pro Vision
- Kasus penggunaan Gemini 1.0 Pro
Buat akun Google Cloud untuk memulai
Untuk mulai menggunakan Vertex AI Model API untuk Gemini, buat akun Google Cloud.
Setelah membuat akun, gunakan dokumen ini untuk meninjau isi permintaan, parameter model, isi respons model Gemini, serta beberapa contoh permintaan dan respons.
Jika Anda sudah siap, lihat panduan memulai Vertex AI API untuk Gemini untuk mempelajari cara mengirim permintaan ke Vertex AI Gemini API menggunakan SDK bahasa pemrograman atau REST API.
Mengirim permintaan HTTP
Tab berikut menunjukkan cara mengirim permintaan HTTP dengan setiap model Gemini:
Gemini 1.5 Pro
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.5-pro:streamGenerateContent
Gemini 1.0 Pro
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.0-pro:streamGenerateContent
Gemini 1.0 Pro Vision
POST https://{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/locations/{REGION}/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent
Untuk mengirim permintaan aliran data ke model, lihat metode streamGenerateContent
untuk mengetahui informasi selengkapnya.
Untuk mengirim permintaan non-streaming ke model, gunakan
metode
generateContent
.
Untuk daftar region yang didukung, lihat Lokasi yang tersedia.
Versi model
Untuk menggunakan versi yang diperbarui otomatis, tentukan nama model tanpa nomor versi di akhir, misalnya gemini-1.0-pro
, bukan gemini-1.0-pro-001
.
Untuk mengetahui informasi selengkapnya, lihat versi dan siklus proses model Gemini.
Isi permintaan
Isi permintaan memuat data dengan struktur berikut:
{ "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 } } } ] } ], "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, "stopSequences": [ string ], "responseMimeType": string } }
Parameter model Gemini
Anda dapat menggunakan parameter berikut dalam isi permintaan:
Parameter | Deskripsi |
---|---|
role |
Peran dalam percakapan yang terkait dengan konten. Penentuan peran diperlukan bahkan dalam
kasus penggunaan satu giliran.
Nilai yang dapat diterima mencakup:
|
parts |
Bagian yang diurutkan yang membentuk input. Bagian-bagian mungkin memiliki jenis MIME yang berbeda.
Untuk gemini-1.0-pro , hanya kolom text yang valid.
Batas token adalah 32.760.
Untuk gemini-1.0-pro-vision , Anda dapat menentukan teks saja,
teks, dan maksimal 16 gambar, atau teks dan 1 klip video. Batas token adalah 16.384.
Untuk gemini-1.5-pro , Anda dapat menentukan kombinasi dan
jumlah file teks, gambar, video, dan audio. Batas token adalah 1.000.000.
Untuk menghitung jumlah token dalam permintaan Anda, lihat Mendapatkan jumlah token. |
text |
Petunjuk teks atau dialog chat yang akan disertakan dalam perintah. |
inlineData |
Data byte berseri dari gambar, klip audio, atau klip video.
Untuk gemini-1.0-pro-vision , Anda dapat menentukan maksimal 1 gambar
dengan inlineData . Untuk menentukan hingga 16 gambar, gunakan
fileData .
|
mimeType |
Jenis media gambar, PDF, atau video yang ditentukan dalam kolom data atau
fileUri . Nilai yang dapat diterima mencakup:
Klik untuk meluaskan jenis MIME
Untuk gemini-1.0-pro-vision , durasi video maksimum adalah 2
menit.
Untuk Gemini 1.5 Pro , panjang maksimum file audio adalah 8,4 jam dan panjang maksimum file video (tanpa audio) adalah satu jam. Untuk mengetahui informasi selengkapnya, lihat
Persyaratan media Gemini 1.5 Pro.
File teks harus berenkode UTF-8. Konten file teks dihitung dalam batas token. Tidak ada batas untuk resolusi gambar. |
data |
Encoding base64 gambar, PDF, atau video
yang akan disertakan secara inline dalam perintah. Saat menyertakan media inline, Anda juga harus menentukan MIMETYPE.
batas ukuran: 20 MB |
fileUri |
URI Cloud Storage gambar atau video yang akan disertakan dalam perintah. Bucket yang menyimpan file harus berada di project Google Cloud yang sama dengan yang mengirim permintaan. Anda juga harus menentukan
MIMETYPE.
Untuk gemini-1.5-pro , batas ukurannya adalah 2 GB.
Untuk gemini-1.0-pro-vision , batas ukurannya adalah 20 MB.
|
videoMetadata |
Opsional. Untuk input video, offset awal dan akhir video dalam format
Durasi. Misalnya, untuk menentukan klip 10 detik yang dimulai pada 1.00, tetapkan
"start_offset": { "seconds": 60 } dan
"end_offset": { "seconds": 70 } .
|
systemInstruction (Pratinjau)
|
Opsional. Tersedia untuk gemini-1.5-pro dan gemini-1.0-pro-002 .
Petunjuk bagi model untuk mengarahkannya agar menghasilkan performa yang lebih baik. Misalnya, "Jawab sesingkat mungkin" atau "Jangan gunakan istilah teknis dalam respons Anda". String text diperhitungkan dalam batas token.
Kolom role dari systemInstruction diabaikan dan tidak memengaruhi performa model.
|
tools |
Potongan kode yang memungkinkan sistem berinteraksi dengan sistem eksternal untuk melakukan suatu tindakan, atau serangkaian tindakan, di luar pengetahuan dan cakupan model. |
functionDeclarations |
Satu atau beberapa deklarasi fungsi. Setiap deklarasi fungsi berisi
informasi tentang satu fungsi yang menyertakan hal berikut:
Untuk informasi selengkapnya, lihat Panggilan fungsi. |
category |
Kategori keamanan yang akan dikonfigurasi batasnya. Nilai yang dapat diterima mencakup:
Klik untuk memperluas kategori keamanan
|
threshold |
Ambang batas untuk memblokir respons yang dapat termasuk dalam kategori keamanan yang ditentukan berdasarkan probabilitas.
|
temperature |
Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP
dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token.
Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan
suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0
berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan
tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.
Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan respons penggantian, coba tingkatkan suhu.
|
maxOutputTokens |
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 pendek dan nilai yang lebih tinggi untuk respons yang berpotensi lebih lama. Rentang untuk gemini-1.5-pro: 1-8192 (default: 8192 )
Rentang untuk gemini-1.0-pro: 1-8192 (default: 8192 )
Rentang untuk gemini-1.0-pro-vision: 1-2048 (default: 2048 )
|
topK |
Top-K mengubah cara model memilih token untuk output. -K teratas dari 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding serakah), sementara K teratas dari 3 berarti bahwa token berikutnya dipilih dari antara tiga token yang paling mungkin dengan menggunakan suhu.
Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian, token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan sampling suhu. Tentukan nilai yang lebih rendah untuk respons yang lebih sedikit acak dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Rentang: 1-40
gemini-1.0-pro dan gemini-1.5-pro tidak mendukung topK
Default untuk gemini-1.0-pro-vision: 32
|
topP |
Top-P mengubah cara model memilih token untuk output. Token dipilih dari yang paling banyak (lihat top-K) hingga paling tidak probabilitas hingga jumlah probabilitasnya sama dengan nilai top-P. Misalnya, jika token A, B, dan C memiliki probabilitas 0,3, 0,2, dan 0,1 serta nilai top-P adalah 0.5 , model akan memilih A atau B sebagai token berikutnya dengan menggunakan suhu dan mengecualikan C sebagai kandidat.
Tentukan nilai yang lebih rendah untuk respons yang lebih sedikit acak dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Rentang: 0.0 - 1.0
gemini-1.5-pro: 0.94
Default untuk gemini-1.0-pro: 1
Default untuk gemini-1.0-pro-vision: 1
|
candidateCount |
Jumlah variasi respons yang akan ditampilkan.
Nilai ini harus 1. |
stopSequences |
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.
Misalnya, jika berikut adalah respons yang ditampilkan ketika stopSequences tidak ditentukan:
public
static string reverse(string myString)
Kemudian, respons yang ditampilkan dengan stopSequences ditetapkan ke ["Str",
"reverse"] adalah:
public static string
Maksimum 5 item dalam daftar. |
responseMimeType (Pratinjau)
|
Opsional. Tersedia untuk gemini-1.5-pro .
Format output dari teks kandidat yang dihasilkan. Jenis MIME yang didukung:
|
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 } } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } }
Elemen respons | Deskripsi |
---|---|
text |
Teks yang dihasilkan. |
finishReason |
Alasan model berhenti menghasilkan token. Jika kosong, model belum berhenti menghasilkan token. Karena responsnya menggunakan perintah untuk konteks, perilaku cara model berhenti menghasilkan token tidak dapat diubah.
|
category |
Kategori keamanan yang akan dikonfigurasi batasnya. Nilai yang dapat diterima mencakup:
Klik untuk memperluas 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 konten. |
endIndex |
Bilangan bulat yang menentukan tempat kutipan diakhiri dalam content .
|
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 .
|
promptTokenCount |
Jumlah token dalam permintaan. |
candidatesTokenCount |
Jumlah token dalam respons. |
totalTokenCount |
Jumlah token dalam permintaan dan respons. |
Contoh permintaan
Teks
REST
Untuk menguji perintah teks menggunakan Vertex AI API dengan Peristiwa yang dikirim server (SSE)
yang diaktifkan, kirim permintaan POST ke endpoint model penayang dengan
?alt=sse
di akhir URL.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse
Isi JSON permintaan:
{ "contents": { "role": "user", "parts": { "text": "Give me a recipe for banana bread." } }, "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.2, "topP": 0.8, "topK": 40 } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip seperti contoh respons.
Chat
Lihat juga Mengirim permintaan perintah chat (Gemini).
REST
Untuk menguji prompt chat menggunakan Vertex AI API dengan Peristiwa terkirim server (SSE)
yang diaktifkan, kirim permintaan POST ke endpoint model penayang dengan
?alt=sse
di akhir URL.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse
Isi JSON permintaan:
{ "contents": [ { "role": "USER", "parts": { "text": "Hello!" } }, { "role": "MODEL", "parts": { "text": "Argh! What brings ye to my ship?" } }, { "role": "USER", "parts": { "text": "Wow! You are a real-life priate!" } } ], "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.2, "topP": 0.8, "topK": 40, "maxOutputTokens": 200, } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent?alt=sse" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip seperti contoh respons.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Multimodal
Lihat juga Mengirim permintaan perintah multimodal.
REST
Untuk menguji prompt multimodal menggunakan Vertex AI API, kirim permintaan POST ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent
Isi JSON permintaan:
{ "contents": { "role": "user", "parts": [ { "fileData": { "mimeType": "image/jpeg", "fileUri": "gs://cloud-samples-data/ai-platform/flowers/daisy/10559679065_50d2b16f6d.jpg" } }, { "text": "Describe this picture." } ] }, "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.4, "topP": 1.0, "topK": 32, "maxOutputTokens": 2048 } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro-vision:streamGenerateContent" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip seperti contoh respons.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Go Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API C# Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Fungsi
Lihat juga Panggilan fungsi.
REST
Untuk menguji prompt fungsi menggunakan Vertex AI API, kirim permintaan POST ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent
Isi JSON permintaan:
{ "contents": { "role": "user", "parts": { "text": "Which theaters in Mountain View show Barbie movie?" } }, "tools": [ { "function_declarations": [ { "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "string", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": [ "description" ] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which are is currently playing in theaters", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" } }, "required": [ "location" ] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" }, "theater": { "type": "string", "description": "Name of the theater" }, "date": { "type": "string", "description": "Date for requested showtime" } }, "required": [ "location", "movie", "theater", "date" ] } } ] } ] }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip seperti contoh respons.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Contoh jawaban
Teks
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Ingredients:\n\n- 3 ripe bananas, mashed\n- 1 cup sugar"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "\n- 1/2 cup (1 stick) unsalted butter, softened\n"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "- 2 large eggs\n- 2 cups all-purpose flour\n- 1 teaspoon baking soda\n- 1/2 teaspoon salt\n- "}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "1/2 cup chopped walnuts (optional)\n\nInstructions:\n\n1. Preheat oven to 350 degrees F (175 degrees C). Grease"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " and flour a 9x5 inch loaf pan.\n2. In a large bowl, cream together the butter and sugar until light and fluffy. Beat in the eggs one at a time, then stir in the mashed bananas.\n3"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 322,"endIndex": 451,"uri": "https://discover.texasrealfood.com/texas-home-cooking/whats-in-season-plums-exploring-health-benefits-varieties-and-recipes"}]}}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": ". In a separate bowl, whisk together the flour, baking soda, and salt. Gradually add the dry ingredients to the wet ingredients, mixing until just combined. Fold in the walnuts, if desired.\n4. Pour the batter into the"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 472,"endIndex": 614,"uri": "https://commandame.com/urban-cookhouse-half-baked-cookie-recipe/"}]}}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " prepared loaf pan and bake for 50-60 minutes, or until a toothpick inserted into the center comes out clean.\n5. Let the bread cool in the pan for 10 minutes before turning it out onto a wire rack to cool completely."}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}],"citationMetadata": {"citations": [{"startIndex": 666,"endIndex": 796,"uri": "https://dessertdonelight.com/healthy-hawaiian-banana-bread/"},{"startIndex": 728,"endIndex": 851,"uri": "https://earlsgrocery.com/gluten-free-bread/gluten-free-yeast-free-bread-healthy-and-nutition"}]}}],"usageMetadata": {"promptTokenCount": 8,"candidatesTokenCount": 245,"totalTokenCount": 253}}
Chat
data: {"candidates": [{"content": {"role": "model","parts": [{"text": "Avast there, landlubber! Ye be mistaken. I be but a"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "LOW"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": " humble pirate of the seven seas, brought to life by the magic of artificial intelligence"}]},"safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}]}
data: {"candidates": [{"content": {"role": "model","parts": [{"text": ". I be no real-life pirate, but I be mighty good at pretendin'!"}]},"finishReason": "STOP","safetyRatings": [{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"usageMetadata": {"promptTokenCount": 23,"candidatesTokenCount": 50,"totalTokenCount": 73}}
Multimodal
[{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": " A daisy is growing up through a pile of brown and yellow fall leaves"
}
]
},
"finishReason": "STOP",
"safetyRatings": [
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
],
"usageMetadata": {
"promptTokenCount": 262,
"candidatesTokenCount": 14,
"totalTokenCount": 276
}
}]
Fungsi
[{
"candidates": [
{
"content": {
"parts": [
{
"functionCall": {
"name": "find_theaters",
"args": {
"movie": "Barbie",
"location": "Mountain View, CA"
}
}
}
]
},
"finishReason": "STOP",
"safetyRatings": [
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
],
"usageMetadata": {
"promptTokenCount": 9,
"totalTokenCount": 9
}
}]
Langkah selanjutnya
Pelajari cara menggunakan Vertex AI API untuk Gemini:
- Pelajari cara mengirim permintaan perintah chat.
- Pelajari cara mengirim permintaan perintah multimodal.
- Pelajari cara memanggil fungsi.
- Pelajari cara mendapatkan jumlah token.
- Pelajari cara mengonfigurasi atribut keamanan.