Anda dapat menambahkan gambar ke permintaan Gemini untuk melakukan tugas yang melibatkan memahami isi dari gambar-gambar yang disertakan. Halaman ini menunjukkan cara menambahkan gambar ke permintaan Anda ke Gemini di Vertex AI menggunakan Konsol Google Cloud dan Vertex AI API.
Model yang didukung
Tabel berikut mencantumkan model yang mendukung pemahaman gambar:
Model | Detail modalitas gambar |
---|---|
Flash Gemini 1.5 Buka kartu model Flash Gemini 1.5 |
Gambar maksimum per perintah: 3.000 |
Gemini 1.5 Pro Buka kartu model Gemini 1.5 Pro |
Gambar maksimum per perintah: 3.000 |
Gemini 1.0 Pro Vision Buka kartu model Gemini 1.0 Pro Vision |
Gambar maksimum per perintah: 16 |
Untuk daftar bahasa yang didukung oleh model Gemini, lihat informasi model Model Google. Untuk mempelajari selengkapnya tentang cara mendesain prompt multimodal. Mendesain prompt multimodal. Jika Anda mencari cara untuk menggunakan Gemini langsung dari perangkat seluler Anda dan aplikasi web, lihat Vertex AI di Firebase SDK untuk Aplikasi Android, Swift, web, dan Flutter.
Menambahkan gambar ke permintaan
Anda dapat menambahkan satu atau beberapa gambar dalam permintaan Anda ke Gemini.
Satu gambar
Kode contoh di setiap tab berikut menunjukkan cara berbeda untuk mengidentifikasi apa yang ada dalam gambar. Contoh ini berfungsi dengan semua model multimodal Gemini.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Vertex AI SDK untuk Python dokumentasi referensi API.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan parameter stream
di
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Untuk respons non-streaming, hapus parameter, atau setel parameter ke
False
.
Kode contoh
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Dokumentasi referensi Java SDK untuk Gemini.
Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
Untuk respons non-streaming, gunakan metode
generateContent
.
public GenerateContentResponse generateContent(Content content)
Kode contoh
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di halaman AI Generatif panduan memulai menggunakan Node.js SDK. Untuk informasi selengkapnya, lihat referensi Node.js SDK untuk Gemini dokumentasi tambahan.
Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Untuk respons non-streaming, gunakan metode
generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Kode contoh
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Go SDK untuk dokumentasi referensi Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan
GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Untuk respons non-streaming, gunakan metode GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Kode contoh
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Dokumentasi referensi C#.
Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Untuk respons non-streaming, gunakan metode
GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Untuk informasi selengkapnya tentang cara server dapat menstreaming respons, lihat RPC Streaming.
Kode contoh
REST
Setelah Anda menyiapkan lingkungan Anda, Anda dapat menggunakan REST untuk menguji prompt teks. Contoh berikut mengirim permintaan ke penayang endpoint model Google Cloud.
Anda dapat menyertakan gambar yang disimpan di Cloud Storage atau menggunakan gambar berenkode base64.Gambar di Cloud Storage
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
LOCATION
: Region untuk memproses permintaan. Masukkan wilayah yang didukung. Untuk mengetahui daftar lengkap wilayah yang didukung, lihat Lokasi yang tersedia.Klik untuk meluaskan daftar sebagian wilayah yang tersedia
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: Project ID Anda.FILE_URI
: URI Cloud Storage file yang akan disertakan dalam perintah. Objek bucket harus berupa dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan yang mengirim permintaan. Anda juga harus tentukan jenis media (mimeType
) file.Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia untuk publik:
gs://cloud-samples-data/generative-ai/image/scones.jpg
dengan jenis mimeimage/jpeg
. Untuk melihat gambar ini, buka gambar contoh .MIME_TYPE
: Jenis media file yang ditentukan dalamdata
ataufileUri
kolom. Nilai yang dapat diterima mencakup:Klik untuk meluaskan jenis MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: Petunjuk teks yang harus disertakan dalam perintah. Misalnya,What is shown in this image?
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
.
Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
Simpan isi permintaan dalam file bernama request.json
.
Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan berikut ini.
Data gambar base64
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
LOCATION
: Region untuk memproses permintaan. Masukkan wilayah yang didukung. Untuk mengetahui daftar lengkap wilayah yang didukung, lihat Lokasi yang tersedia.Klik untuk meluaskan daftar sebagian wilayah yang tersedia
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: Project ID Anda. Encoding base64 untuk gambar, PDF, atau video untuk disertakan dalam prompt. Saat menyertakan media secara inline, Anda juga harus menentukan media (B64_BASE_IMAGE
mimeType
) jenis data.MIME_TYPE
: Jenis media file yang ditentukan dalamdata
ataufileUri
kolom. Nilai yang dapat diterima mencakup:Klik untuk meluaskan jenis MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: Petunjuk teks yang harus disertakan dalam perintah. Misalnya,What is shown in this image?
.
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
.
Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "B64_BASE_IMAGE", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
Simpan isi permintaan dalam file bernama request.json
.
Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:
@' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "B64_BASE_IMAGE", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan berikut ini.
- Gunakan
generateContent
untuk meminta agar respons ditampilkan setelah dibuat sepenuhnya. Untuk mengurangi persepsi latensi kepada audiens manusia, streaming respons secara langsung yang dibuat dengan menggunakanstreamGenerateContent
. - ID model multimodal terletak di akhir URL sebelum metode
(misalnya,
gemini-1.5-flash
ataugemini-1.0-pro-vision
). Contoh ini dapat mendukung seperti model AI generatif.
Konsol
Untuk mengirim prompt multimodal menggunakan Konsol Google Cloud, lakukan berikut ini:
- Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Studio.
- Di bagian Prompt design (single turn), klik Open.
Opsional: Konfigurasi model dan parameter:
- Model: Pilih model.
- Region: Pilih wilayah yang ingin Anda gunakan.
Suhu: Gunakan penggeser atau kotak teks untuk memasukkan nilai suhu.
Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saattopP
dantopK
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. Suhu0
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 fallback respons, coba tingkatkan suhunya.
Batas token output: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk {i>max output limit<i}.
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 respons yang berpotensi lebih lama yang dihasilkan.
- Tambahkan urutan perhentian: Opsional. Masukkan urutan perhentian, yang merupakan serangkaian karakter yang menyertakan spasi. Jika model menemukan urutan perhentian, pembuatan respons akan berhenti. Urutan perhentian tidak disertakan dalam respons, dan Anda dapat menambahkan hingga lima urutan perhentian.
- Opsional: Untuk mengonfigurasi parameter lanjutan, klik Lanjutan dan konfigurasikan sebagai berikut:
Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K. (tidak didukung untuk Gemini 1.5).
Top-K mengubah cara model memilih token untuk output. Top-K1
berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K3
berarti token berikutnya dipilih di 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 pengambilan sampel suhu.
Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.
- Top-P: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-P.
Token dipilih dari yang paling mungkin hingga yang paling kecil hingga jumlah
probabilitasnya sama
dengan nilai top-P. Untuk hasil yang paling sedikit variabel,
setel top-P ke
0
. - Aktifkan Grounding: Grounding tidak didukung untuk multimodal prompt.
- Untuk mengupload media, seperti file PNG, lakukan berikut ini:
- Klik Sisipkan Media, lalu pilih sumber.
Jika Anda memilih Google Drive sebagai sumber, Anda harus memilih akun dan memberikan izin untuk Vertex AI Studio akan mengakses akun Anda saat pertama kali pilih opsi ini. Anda dapat mengupload beberapa file media yang memiliki berukuran hingga 10 MB. Satu file tidak boleh melebihi 7 MB.
- Klik file yang ingin ditambahkan.
- Klik Pilih.
Thumbnail file akan ditampilkan di panel Prompt. Jumlah total token juga akan ditampilkan. Jika data perintah Anda melebihi batas token, token akan dipotong dan tidak disertakan dalam pemrosesan data Anda.
- Opsional: Untuk menampilkan jumlah token yang dihitung dalam gambar Anda dan jumlah semua token, klik Lihat token.
Perlu waktu hingga 15 detik untuk menghitung jumlah token untuk file media. Tampilan ID Token ke teks dan ID Token tidak menampilkan output yang berharga, karena token media tidak didukung.
Untuk menutup panel alat tokenizer, klik X, atau klik di luar panel.
- Masukkan perintah teks Anda di panel Prompt. Model ini menggunakan pesan sebelumnya sebagai konteks untuk respons baru.
- Opsional: Untuk menampilkan jumlah token yang dihitung dalam gambar Anda dan jumlah semua token, klik Lihat token. Anda dapat melihat token atau ID token dari perintah teks Anda.
- Untuk melihat token dalam perintah teks yang ditandai dengan warna berbeda yang menandai batas setiap ID token, klik Token ID to text. Token media tidak didukung.
- Untuk melihat ID token, klik ID Token.
Untuk menutup panel alat tokenizer, klik X, atau klik di luar panel.
- Klik Kirim.
- Opsional: Untuk menyimpan perintah Anda ke Perintah saya, klik Simpan.
- Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Dapatkan kode.
- Opsional: Untuk menghapus semua pesan sebelumnya, klik Hapus percakapan.
Klik untuk meluaskan konfigurasi lanjutan
Beberapa gambar
Masing-masing tab berikut menunjukkan cara yang berbeda untuk menyertakan beberapa gambar dalam permintaan prompt. Setiap sampel mengambil dua set input berikut:
- Gambar bangunan terkenal kota yang populer
- Jenis media gambar
- Teks yang menunjukkan kota dan tempat terkenal pada gambar
Contoh juga mengambil gambar ketiga dan jenis media, tetapi tanpa teks. Contoh menampilkan respons teks yang menunjukkan kota dan tempat terkenal pada gambar ketiga.
Contoh gambar ini berfungsi dengan semua model multimodal Gemini.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Vertex AI SDK untuk Python dokumentasi referensi API.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan parameter stream
di
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Untuk respons non-streaming, hapus parameter, atau setel parameter ke
False
.
Kode contoh
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Dokumentasi referensi Java SDK untuk Gemini.
Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
Untuk respons non-streaming, gunakan metode
generateContent
.
public GenerateContentResponse generateContent(Content content)
Kode contoh
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di halaman AI Generatif panduan memulai menggunakan Node.js SDK. Untuk informasi selengkapnya, lihat referensi Node.js SDK untuk Gemini dokumentasi tambahan.
Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Untuk respons non-streaming, gunakan metode
generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Kode contoh
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Go SDK untuk dokumentasi referensi Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan
GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Untuk respons non-streaming, gunakan metode GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Kode contoh
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Vertex AI panduan memulai. Untuk informasi lebih lanjut, lihat Vertex AI Dokumentasi referensi C#.
Untuk mengautentikasi ke Vertex AI, siapkan Application Default Kredensial. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau non-streaming. Untuk respons bertahap, Anda menerima setiap respons segera setelah token output-nya dibuat. Untuk respons non-streaming, Anda menerima semua respons setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Untuk respons non-streaming, gunakan metode
GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Untuk informasi selengkapnya tentang cara server dapat menstreaming respons, lihat RPC Streaming.
Kode contoh
REST
Setelah Anda menyiapkan lingkungan Anda, Anda dapat menggunakan REST untuk menguji prompt teks. Contoh berikut mengirim permintaan ke penayang endpoint model Google Cloud.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
LOCATION
: Region untuk memproses permintaan. Masukkan wilayah yang didukung. Untuk mengetahui daftar lengkap wilayah yang didukung, lihat Lokasi yang tersedia.Klik untuk meluaskan daftar sebagian wilayah yang tersedia
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: Project ID Anda.FILE_URI1
: URI Cloud Storage file yang akan disertakan dalam perintah. Objek bucket harus berupa dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan yang mengirim permintaan. Anda juga harus tentukan jenis media (mimeType
) file.Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia untuk publik:
gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png
dengan jenis mimeimage/png
. Untuk melihat gambar ini, buka gambar contoh .MIME_TYPE
: Jenis media file yang ditentukan dalamdata
ataufileUri
kolom. Nilai yang dapat diterima mencakup:Klik untuk meluaskan jenis MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT1
: Petunjuk teks yang harus disertakan dalam perintah. Misalnya,city: Rome, Landmark: the Colosseum
FILE_URI2
: URI Cloud Storage file yang akan disertakan dalam perintah. Objek bucket harus berupa dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan yang mengirim permintaan. Anda juga harus tentukan jenis media (mimeType
) file.Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia untuk publik:
gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png
dengan jenis mimeimage/png
. Untuk melihat gambar ini, buka gambar contoh .TEXT2
: Petunjuk teks yang harus disertakan dalam perintah. Misalnya,city: Beijing, Landmark: Forbidden City
FILE_URI3
: URI Cloud Storage file yang akan disertakan dalam perintah. Objek bucket harus berupa dapat dibaca secara publik atau berada di project Google Cloud yang sama dengan yang mengirim permintaan. Anda juga harus tentukan jenis media (mimeType
) file.Jika tidak memiliki file gambar di Cloud Storage, Anda dapat menggunakan file yang tersedia untuk umum:
gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png
dengan jenis mimeimage/png
. Untuk melihat gambar ini, buka gambar contoh .
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
.
Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE" } }, { "text": "TEXT1" }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE" } }, { "text": "TEXT2" }, { "fileData": { "fileUri": "FILE_URI3", "mimeType": "MIME_TYPE" } } ] } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
Simpan isi permintaan dalam file bernama request.json
.
Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE" } }, { "text": "TEXT1" }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE" } }, { "text": "TEXT2" }, { "fileData": { "fileUri": "FILE_URI3", "mimeType": "MIME_TYPE" } } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
$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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan berikut ini.
Perhatikan hal berikut dalam URL untuk contoh ini:- Gunakan
generateContent
untuk meminta agar respons ditampilkan setelah dibuat sepenuhnya. Untuk mengurangi persepsi latensi kepada audiens manusia, streaming respons secara langsung yang dibuat dengan menggunakanstreamGenerateContent
. - ID model multimodal terletak di akhir URL sebelum metode
(misalnya,
gemini-1.5-flash
ataugemini-1.0-pro-vision
). Contoh ini dapat mendukung model dasar juga.
Konsol
Untuk mengirim prompt multimodal menggunakan Konsol Google Cloud, lakukan berikut ini:
- Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Studio.
- Di bagian Prompt design (single turn), klik Open.
Opsional: Konfigurasi model dan parameter:
- Model: Pilih model.
- Region: Pilih wilayah yang ingin Anda gunakan.
Suhu: Gunakan penggeser atau kotak teks untuk memasukkan nilai suhu.
Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saattopP
dantopK
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. Suhu0
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 fallback respons, coba tingkatkan suhunya.
Batas token output: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk {i>max output limit<i}.
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 respons yang berpotensi lebih lama yang dihasilkan.
- Tambahkan urutan perhentian: Opsional. Masukkan urutan perhentian, yang merupakan serangkaian karakter yang menyertakan spasi. Jika model menemukan urutan perhentian, pembuatan respons akan berhenti. Urutan perhentian tidak disertakan dalam respons, dan Anda dapat menambahkan hingga lima urutan perhentian.
- Opsional: Untuk mengonfigurasi parameter lanjutan, klik Lanjutan dan konfigurasikan sebagai berikut:
Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K. (tidak didukung untuk Gemini 1.5).
Top-K mengubah cara model memilih token untuk output. Top-K1
berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K3
berarti token berikutnya dipilih di 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 pengambilan sampel suhu.
Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.
- Top-P: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-P.
Token dipilih dari yang paling mungkin hingga yang paling kecil hingga jumlah
probabilitasnya sama
dengan nilai top-P. Untuk hasil yang paling sedikit variabel,
setel top-P ke
0
. - Aktifkan Grounding: Grounding tidak didukung untuk multimodal prompt.
- Untuk mengupload media, seperti file PNG, lakukan berikut ini:
- Klik Sisipkan Media, lalu pilih sumber.
Jika Anda memilih Google Drive sebagai sumber, Anda harus memilih akun dan memberikan izin untuk Vertex AI Studio akan mengakses akun Anda saat pertama kali pilih opsi ini. Anda dapat mengupload beberapa file media yang memiliki berukuran hingga 10 MB. Satu file tidak boleh melebihi 7 MB.
- Klik file yang ingin ditambahkan.
- Klik Pilih.
Thumbnail file akan ditampilkan di panel Prompt. Jumlah total token juga akan ditampilkan. Jika data perintah Anda melebihi batas token, token akan dipotong dan tidak disertakan dalam pemrosesan data Anda.
- Opsional: Untuk menampilkan jumlah token yang dihitung dalam gambar Anda dan jumlah semua token, klik Lihat token.
Perlu waktu hingga 15 detik untuk menghitung jumlah token untuk file media. Tampilan ID Token ke teks dan ID Token tidak menampilkan output yang berharga, karena token media tidak didukung.
Untuk menutup panel alat tokenizer, klik X, atau klik di luar panel.
- Masukkan perintah teks Anda di panel Prompt. Model ini menggunakan pesan sebelumnya sebagai konteks untuk respons baru.
- Opsional: Untuk menampilkan jumlah token yang dihitung dalam gambar Anda dan jumlah semua token, klik Lihat token. Anda dapat melihat token atau ID token dari perintah teks Anda.
- Untuk melihat token dalam perintah teks yang ditandai dengan warna berbeda yang menandai batas setiap ID token, klik Token ID to text. Token media tidak didukung.
- Untuk melihat ID token, klik ID Token.
Untuk menutup panel alat tokenizer, klik X, atau klik di luar panel.
- Klik Kirim.
- Opsional: Untuk menyimpan perintah Anda ke Perintah saya, klik Simpan.
- Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Dapatkan kode.
- Opsional: Untuk menghapus semua pesan sebelumnya, klik Hapus percakapan.
Klik untuk meluaskan konfigurasi lanjutan
Menetapkan parameter model
Parameter model berikut dapat ditetapkan pada model multimodal:
Top-P
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 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 acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.
Top-K
Top-K mengubah cara model memilih token untuk output. Top-K
1
berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua
token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K
3
berarti token berikutnya dipilih di 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 pengambilan sampel suhu.
Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.
Temperature (suhu)
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 fallback respons, coba tingkatkan suhunya.
Parameter value yang valid
Parameter | Gemini 1.0 Pro Vision | Gemini 1.5 Pro | Flash Gemini 1.5 |
---|---|---|---|
Top-K | 1 - 40 (default 32) | Tidak didukung | Tidak didukung |
Top-P | 0 - 1.0 (default 1.0) | 0 - 1.0 (default 0.95) | 0 - 1.0 (default 0.95) |
Temperature (suhu) | 0 - 1.0 (default 0.4) | 0 - 2.0 (default 1.0) | 0 - 2.0 (default 1.0) |
Persyaratan gambar
Model multimodal Gemini mendukung jenis MIME gambar berikut:
Jenis MIME gambar | Flash Gemini 1.5 | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PNG - image/png |
|||
JPEG - image/jpeg |
Tidak ada batas khusus untuk jumlah piksel dalam sebuah gambar. Namun, gambar yang lebih besar akan diperkecil dan diberi padding agar sesuai dengan resolusi maksimum 3072 x 3072 dengan tetap mempertahankan rasio aspek aslinya.
Berikut adalah jumlah maksimum file gambar yang diizinkan dalam permintaan perintah:
- Gemini 1.0 Pro Vision: 16 gambar
- Gemini 1.5 Flash dan Gemini 1.5 Pro: 3000 gambar
Berikut cara token dihitung untuk gambar:
- Gemini 1.0 Pro Vision: Setiap akun gambar untuk 258 token.
- Gemini 1.5 Flash dan
Gemini 1.5 Pro:
- Jika dimensi gambar kurang dari atau sama dengan 384 piksel, maka 258 token digunakan.
- Jika satu dimensi gambar lebih besar dari 384 piksel, maka akan dipangkas menjadi ubin. Setiap ukuran ubin ditetapkan secara {i>default<i} ke ukuran terkecil dimensi (lebar atau tinggi) dibagi 1,5. Jika perlu, setiap ubin disesuaikan sehingga tidak lebih kecil dari 256 {i>pixel<i} dan tidak lebih dari 768 piksel. Setiap ubin kemudian diubah ukurannya menjadi 768x768 dan menggunakan 258 token.
Praktik terbaik
Saat menggunakan gambar, gunakan praktik terbaik dan informasi berikut untuk hasil terbaik:
- Jika Anda ingin mendeteksi teks dalam gambar, gunakan perintah dengan satu gambar untuk memberikan hasil yang lebih baik daripada prompt dengan banyak gambar.
- Jika perintah Anda berisi satu gambar, tempatkan gambar sebelum teks dalam permintaan Anda.
- Jika perintah Anda berisi beberapa gambar, dan Anda ingin merujuk ke gambar tersebut
selanjutnya di perintah Anda atau meminta model merujuknya
dalam respons model,
akan membantu untuk memberikan indeks pada
setiap gambar sebelum gambar. Gunakan
ataua
b
c
untuk indeks Anda. Berikut adalah contoh penggunaan gambar yang diindeks dalam perintah:image 1
image 2
image 3
image 1
image 2 image 3 Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3. - Menggunakan gambar dengan resolusi lebih tinggi; hasil yang lebih baik.
- Sertakan beberapa contoh dalam perintah.
- Putar gambar ke orientasi yang sesuai sebelum menambahkannya ke .
- Hindari gambar yang buram.
Batasan
Meskipun model multimodal Gemini sangat canggih dalam banyak penggunaan multimodal kasus tersebut, penting untuk memahami keterbatasan model tersebut:
- Moderasi konten: Model menolak memberikan jawaban pada gambar yang melanggar kebijakan keamanan kami.
- Penalaran spasial: Model ini tidak tepat dalam menemukan lokasi teks atau objek dalam gambar. Mereka mungkin hanya mengembalikan perkiraan jumlah objek terstruktur dalam jumlah besar.
- Penggunaan medis: Model ini tidak sesuai untuk ditafsirkan gambar medis (misalnya, sinar-x dan CT scan) atau memberikan keuangan, atau profesional lainnya.
- Pengenalan orang: Model ini tidak dimaksudkan untuk digunakan mengidentifikasi orang yang bukan selebritas dalam foto.
- Akurasi: Model mungkin berhalusinasi atau membuat kesalahan saat menafsirkan gambar berkualitas rendah, diputar, atau beresolusi sangat rendah. Model itu mungkin juga berhalusinasi saat menafsirkan teks tulisan tangan di dokumen gambar.
Langkah selanjutnya
- Mulailah membangun solusi dengan model multimodal Gemini. Pelanggan baru mendapatkan kredit Google Cloud gratis senilai $300 untuk mempelajari berbagai hal yang dapat mereka lakukan dengan Gemini.
- Pelajari cara mengirim permintaan perintah chat.
- Pelajari praktik terbaik responsible AI dan filter keamanan Vertex AI.