Kelompok model Gemini mencakup model yang dapat digunakan dengan permintaan perintah multimodal. Istilah multimodal menunjukkan bahwa Anda dapat menggunakan lebih dari satu modalitas, atau jenis input, dalam sebuah perintah. Model yang bukan permintaan multimodal hanya menerima teks dengan teks. Modalitas dapat mencakup teks, audio, video, dan lainnya.
Ada beberapa cara untuk mengimplementasikan solusi multimodal menggunakan Gemini API, termasuk Python, Node.js, Java, dan Go SDK, konsol Google Cloud, serta REST API. Contoh kode nanti dalam dokumen ini menunjukkan cara membuat solusi multimodal menggunakan opsi ini.
Model multimodal Gemini adalah:
- Gemini 1.0 Pro Vision
- Gemini 1.5 Pro (Pratinjau)
Tabel berikut menunjukkan modalitas yang digunakan oleh setiap Gemini API multimodal dalam permintaan prompt.
Model | Teks | Kode | Gambar | Audio | Video | Video/audio | |
---|---|---|---|---|---|---|---|
Gemini 1.0 Pro | |||||||
Gemini 1.0 Pro Vision | |||||||
Gemini 1.5 Pro (Pratinjau) |
Untuk menjelajahi model multimodal di Konsol Google Cloud, pilih kartu model gemini-1.0-pro-vision
atau gemini-1.5-pro
di Model Garden.
Untuk mengetahui daftar bahasa yang didukung oleh model Gemini, lihat informasi model Dukungan bahasa. Untuk mempelajari cara mendesain perintah multimodal lebih lanjut, lihat Mendesain perintah multimodal. Jika Anda mencari cara untuk menggunakan Gemini langsung dari aplikasi seluler dan web, lihat Google AI SDK untuk Android, Swift, dan web.
Perbedaan model multimodal
Perbedaan antara model multimodal Gemini dijelaskan dalam tabel berikut. Anda dapat menggunakan informasi ini untuk membantu memutuskan model mana yang terbaik untuk Anda.
Text
Berikut adalah beberapa perbedaan modalitas teks antara model multimodal Gemini:
Model | Detail modalitas teks |
---|---|
Gemini 1.0 Pro Vision | Jumlah maksimum token adalah 16.384,atau sekitar 128 buku halaman, dengan asumsi 250 kata per halaman. Jumlah maksimum ini mencakup token input dan output. Jumlah maksimum token output adalah 2.048. |
Gemini 1.5 Pro (Pratinjau) | Panjang konteksnya adalah 1 juta token yang setara dengan sekitar 4.000 halaman buku. Hal ini memungkinkan model menghasilkan teks berformat panjang, seperti buku, banyak PDF, atau panduan pengguna. |
Code
Berikut adalah beberapa perbedaan antara model multimodal Gemini saat menangani kode:
Model | Detail modalitas kode |
---|---|
Gemini 1.0 Pro Vision | Jumlah maksimum token adalah 16.384,atau sekitar 128 buku halaman, dengan asumsi 250 kata per halaman. Jumlah maksimum ini mencakup token input dan output. Jumlah maksimum token output adalah 2.048. |
Gemini 1.5 Pro (Pratinjau) | Panjang konteksnya adalah 1 juta token yang memungkinkan model berfungsi dengan seluruh codebase atau seluruh codebase aplikasi. |
Gambar
Berikut adalah beberapa perbedaan modalitas gambar antara model multimodal Gemini:
Model | Detail modalitas gambar |
---|---|
Gemini 1.0 Pro Vision | Jumlah maksimum gambar per perintah adalah 16. |
Gemini 1.5 Pro (Pratinjau) | Jumlah maksimum gambar per perintah adalah 3.000. |
Audio (hanya ucapan)
Berikut adalah beberapa perbedaan modalitas audio antara model multimodal Gemini:
Model | Detail modalitas audio |
---|---|
Gemini 1.0 Pro Vision | Audio tidak didukung. |
Gemini 1.5 Pro (Pratinjau) | Jumlah jam audio maksimum per perintah adalah sekitar 8,4 jam, atau hingga 1 juta token. Ucapan dapat dipahami untuk ringkasan, transkripsi, dan terjemahan audio. |
Video
Berikut adalah beberapa perbedaan modalitas video antara model multimodal Gemini:
Model | Detail modalitas video |
---|---|
Gemini 1.0 Pro Vision | Durasi video maksimum adalah 2 menit. Jumlah maksimum video per perintah adalah 1. Audio dalam video diabaikan. |
Gemini 1.5 Pro (Pratinjau) | Durasi video maksimum saat menyertakan audio adalah sekitar 50 menit. Durasi video maksimum untuk video tanpa audio adalah 1 jam. Video maksimum per perintah adalah 10. Model ini dapat menggunakan data video dan audio untuk menjawab perintah tersebut. Misalnya, rangkum video menggunakan konten visual dan ucapan dalam video. |
Berikut adalah beberapa perbedaan modalitas PDF antara model multimodal Gemini:
Model | Detail modalitas PDF |
---|---|
Gemini 1.0 Pro Vision | Jumlah maksimum halaman per perintah adalah 16. Ukuran file maksimum untuk PDF adalah 50 MB. |
Gemini 1.5 Pro (Pratinjau) | Jumlah maksimum halaman per perintah adalah 300. Ukuran file maksimum untuk PDF adalah 50 MB. |
Panduan memulai
Gunakan contoh kode berikut untuk mulai menggunakan Gemini API. Setiap contoh kode menunjukkan cara bekerja dengan modalitas yang berbeda. Beberapa contoh kode dalam dokumen ini berfungsi dengan semua model multimodal Gemini, dan beberapa contoh hanya berfungsi dengan Gemini 1.5 Pro (Pratinjau). Setiap contoh kode menentukan model yang akan digunakan.
Untuk menguji dan iterasi pada prompt multimodal, sebaiknya gunakan Konsol Google Cloud. Untuk mengirim prompt multimodal secara terprogram ke model, Anda dapat menggunakan REST API, Vertex AI SDK untuk Python, atau salah satu library dan SDK lain yang didukung yang ditampilkan di tab berikut.
Satu gambar
Kode contoh pada setiap tab berikut menunjukkan cara yang berbeda untuk mengidentifikasi isi yang ada di 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI SDK untuk Python API.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah saat dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim 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 tetapkan parameter ke False
.
Kode contoh
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai AI Generatif menggunakan Node.js SDK. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Node.js SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Untuk respons non-streaming, gunakan metode generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Kode contoh
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI Java SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Untuk respons non-streaming, gunakan metode
generateContent
.
public GenerateContentResponse generateContent(Content content)
Kode contoh
REST
Anda dapat menggunakan REST untuk menguji perintah teks menggunakan Vertex AI API untuk mengirim permintaan POST ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- GENERATE_RESPONSE_METHOD: Jenis respons yang Anda inginkan untuk dibuat oleh model.
Pilih metode yang menghasilkan cara menampilkan respons model yang Anda inginkan:
streamGenerateContent
: Respons di-streaming saat dihasilkan untuk mengurangi persepsi latensi kepada audiens manusia.generateContent
: Respons ditampilkan setelah dibuat sepenuhnya.
- LOCATION: Region untuk memproses permintaan. Opsi
yang tersedia mencakup hal berikut:
Klik untuk meluaskan wilayah yang tersedia
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: Project ID Anda.
- MODEL_ID: ID model dari model multimodal
yang ingin Anda gunakan. Opsinya adalah:
gemini-1.0-pro-vision
- ROLE:
Peran dalam percakapan yang terkait dengan konten. Penentuan peran diperlukan bahkan dalam
kasus penggunaan satu giliran.
Nilai yang dapat diterima mencakup:
USER
: Menentukan konten yang Anda kirimkan.
- TEXT: Teks petunjuk yang akan disertakan dalam perintah.
- B64_BASE: Encoding base64 gambar, PDF, atau video yang akan disertakan secara inline dalam perintah. Saat menyertakan media inline, Anda juga harus menentukan MIMETYPE.
- FILE_URI: 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.
- MIME_TYPE:
Jenis media gambar, PDF, atau video yang ditentukan dalam kolom
data
ataufileUri
. 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
- SAFETY_CATEGORY:
Kategori keamanan yang batasnya akan dikonfigurasi. Nilai yang dapat diterima mencakup:
Klik untuk memperluas kategori keamanan
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
Nilai minimum untuk respons pemblokiran yang dapat termasuk dalam kategori keamanan yang ditentukan berdasarkan
probabilitas. Nilai yang dapat diterima mencakup:
Klik untuk memperluas nilai minimum pemblokiran
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(default)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
memblokir paling banyak, sedangkanBLOCK_ONLY_HIGH
memblokir paling sedikit. - TEMPERATURE: Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat
topP
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 respons penggantian, coba tingkatkan suhu.
- 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 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 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 dari
1
berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan nilai top-K dari3
berarti token berikutnya dipilih di antara tiga token yang paling mungkin 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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
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 ketikastopSequences
tidak ditentukan:
public static string reverse(string myString)
Kemudian, respons yang ditampilkan denganstopSequences
ditetapkan ke["Str", "reverse"]
adalah:
public static string
Metode HTTP dan URL:
POST http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Isi JSON permintaan:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
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 \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
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 "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Contoh perintah curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
http://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
PDF tunggal
Tab berikut menunjukkan cara menyertakan PDF dalam permintaan prompt menggunakan Python SDK. Contoh PDF ini dapat digunakan 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI SDK untuk Python API.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah saat dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim 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 tetapkan parameter ke False
.
Kode contoh
Video tunggal
Setiap tab berikut menunjukkan cara yang berbeda untuk menyertakan video dalam permintaan perintah. Contoh PDF 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI SDK untuk Python API.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah saat dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim 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 tetapkan parameter ke False
.
Kode contoh
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai AI Generatif menggunakan Node.js SDK. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Node.js SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Untuk respons non-streaming, gunakan metode generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Kode contoh
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI Java SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Untuk respons non-streaming, gunakan metode
generateContent
.
public GenerateContentResponse generateContent(Content content)
Kode contoh
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di panduan memulai Vertex AI. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI Go SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
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
REST
Anda dapat menggunakan REST untuk menguji perintah teks menggunakan Vertex AI API untuk mengirim permintaan POST ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- GENERATE_RESPONSE_METHOD: Jenis respons yang Anda inginkan untuk dibuat oleh model.
Pilih metode yang menghasilkan cara menampilkan respons model yang Anda inginkan:
streamGenerateContent
: Respons di-streaming saat dihasilkan untuk mengurangi persepsi latensi kepada audiens manusia.generateContent
: Respons ditampilkan setelah dibuat sepenuhnya.
- LOCATION: Region untuk memproses permintaan. Opsi
yang tersedia mencakup hal berikut:
Klik untuk meluaskan wilayah yang tersedia
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: Project ID Anda.
- MODEL_ID: ID model dari model multimodal
yang ingin Anda gunakan. Opsinya adalah:
gemini-1.0-pro-vision
- ROLE:
Peran dalam percakapan yang terkait dengan konten. Penentuan peran diperlukan bahkan dalam
kasus penggunaan satu giliran.
Nilai yang dapat diterima mencakup:
USER
: Menentukan konten yang Anda kirimkan.
- TEXT: Teks petunjuk yang akan disertakan dalam perintah.
- B64_BASE: Encoding base64 gambar, PDF, atau video yang akan disertakan secara inline dalam perintah. Saat menyertakan media inline, Anda juga harus menentukan MIMETYPE.
- FILE_URI: 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.
- MIME_TYPE:
Jenis media gambar, PDF, atau video yang ditentukan dalam kolom
data
ataufileUri
. 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
- SAFETY_CATEGORY:
Kategori keamanan yang batasnya akan dikonfigurasi. Nilai yang dapat diterima mencakup:
Klik untuk memperluas kategori keamanan
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
Nilai minimum untuk respons pemblokiran yang dapat termasuk dalam kategori keamanan yang ditentukan berdasarkan
probabilitas. Nilai yang dapat diterima mencakup:
Klik untuk memperluas nilai minimum pemblokiran
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(default)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
memblokir paling banyak, sedangkanBLOCK_ONLY_HIGH
memblokir paling sedikit. - TEMPERATURE: Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat
topP
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 respons penggantian, coba tingkatkan suhu.
- 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 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 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 dari
1
berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan nilai top-K dari3
berarti token berikutnya dipilih di antara tiga token yang paling mungkin 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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
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 ketikastopSequences
tidak ditentukan:
public static string reverse(string myString)
Kemudian, respons yang ditampilkan denganstopSequences
ditetapkan ke["Str", "reverse"]
adalah:
public static string
Metode HTTP dan URL:
POST http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Isi JSON permintaan:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
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 \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
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 "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Contoh perintah curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
http://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Konsol
Untuk mengirim prompt multimodal menggunakan Konsol Google Cloud, lakukan hal berikut:
- Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Studio.
- Di bagian Prompt design (single turn), klik Open.
Konfigurasi model dan parameter:
- Region: Pilih region yang ingin Anda gunakan.
- Model: Pilih Gemini Pro Vision.
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 respons penggantian, coba tingkatkan suhu.
Batas token: Gunakan penggeser atau kotak teks untuk memasukkan nilai batas output maksimum.
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.
- Menambahkan urutan perhentian: Masukkan urutan perhentian, yang merupakan serangkaian karakter (termasuk spasi) yang menghentikan pembuatan respons jika model menemuinya. Urutan tidak disertakan sebagai bagian dari respons. Anda dapat menambahkan hingga lima urutan perhentian.
- Opsional: Untuk mengonfigurasi parameter lanjutan, klik Advanced, lalu konfigurasikan sebagai berikut:
Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K.
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 ke yang terkecil hingga jumlah probabilitasnya sama dengan nilai top-P. Untuk hasil variabel terkecil,
tetapkan top-P ke
0
. Konsol Google Cloud hanya mendukung streaming, yang melibatkan penerimaan respons terhadap perintah saat dibuat. Anda siap memasukkan pesan di kotak pesan untuk memulai percakapan dengan model.
Model ini menggunakan pesan sebelumnya sebagai konteks untuk respons baru. Untuk menyertakan gambar, PDF, atau video dalam perintah, klik ikon
.Untuk mempelajari prompt multimodal, lihat Mendesain prompt multimodal.
- Opsional: Untuk menyimpan perintah ke Perintah saya, klik Simpan.
- Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Get code.
- Opsional: Untuk menghapus semua pesan sebelumnya, klik Hapus percakapan
Klik untuk meluaskan konfigurasi lanjutan
Audio tunggal
Berikut ini cara menggunakan file audio untuk meringkas podcast. Contoh ini hanya berfungsi dengan Gemini 1.5 Pro (Pratinjau).
import vertexai
from vertexai.generative_models import GenerativeModel, Part
# TODO(developer): Update and un-comment below line
# project_id = "PROJECT_ID"
vertexai.init(project=project_id, location="us-central1")
model = GenerativeModel("gemini-1.5-pro-preview-0409")
prompt = """
Please provide a summary for the audio.
Provide chapter titles with timestamps, be concise and short, no need to provide chapter summaries.
Do not make up any information that is not part of the audio and do not be verbose.
"""
audio_file_uri = "gs://cloud-samples-data/generative-ai/audio/pixel.mp3"
audio_file = Part.from_uri(audio_file_uri, mime_type="audio/mpeg")
contents = [audio_file, prompt]
response = model.generate_content(contents)
print(response.text)
Contoh lanjutan
Contoh berikut lebih kompleks daripada contoh sebelumnya.
Beberapa gambar
Setiap tab berikut menunjukkan cara yang berbeda untuk menyertakan beberapa gambar dalam permintaan perintah. 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI SDK untuk Python API.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah saat dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim 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 tetapkan parameter ke False
.
Kode contoh
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai AI Generatif menggunakan Node.js SDK. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Node.js SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Untuk respons non-streaming, gunakan metode generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Kode contoh
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI Java SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Untuk respons non-streaming, gunakan metode
generateContent
.
public GenerateContentResponse generateContent(Content content)
Kode contoh
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di panduan memulai Vertex AI. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vertex AI Go SDK untuk Gemini.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Respons streaming dan non-streaming
Anda dapat memilih apakah model akan menghasilkan respons streaming atau respons non-streaming. Streaming melibatkan penerimaan respons terhadap perintah setelah dihasilkan. Artinya, segera setelah model menghasilkan token output, token output akan dikirim. Respons non-streaming terhadap perintah hanya dikirim setelah semua token output dibuat.
Untuk respons streaming, gunakan metode
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
REST
Anda dapat menggunakan REST untuk menguji perintah teks menggunakan Vertex AI API untuk mengirim permintaan POST ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- GENERATE_RESPONSE_METHOD: Jenis respons yang Anda inginkan untuk dibuat oleh model.
Pilih metode yang menghasilkan cara menampilkan respons model yang Anda inginkan:
streamGenerateContent
: Respons di-streaming saat dihasilkan untuk mengurangi persepsi latensi kepada audiens manusia.generateContent
: Respons ditampilkan setelah dibuat sepenuhnya.
- LOCATION: Region untuk memproses permintaan. Opsi
yang tersedia mencakup hal berikut:
Klik untuk meluaskan wilayah yang tersedia
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: Project ID Anda.
- MODEL_ID: ID model dari model multimodal
yang ingin Anda gunakan. Opsinya adalah:
gemini-1.0-pro-vision
- ROLE:
Peran dalam percakapan yang terkait dengan konten. Penentuan peran diperlukan bahkan dalam
kasus penggunaan satu giliran.
Nilai yang dapat diterima mencakup:
USER
: Menentukan konten yang Anda kirimkan.
- TEXT: Teks petunjuk yang akan disertakan dalam perintah.
- B64_BASE: Encoding base64 gambar, PDF, atau video yang akan disertakan secara inline dalam perintah. Saat menyertakan media inline, Anda juga harus menentukan MIMETYPE.
- FILE_URI: 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.
- MIME_TYPE:
Jenis media gambar, PDF, atau video yang ditentukan dalam kolom
data
ataufileUri
. 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
- SAFETY_CATEGORY:
Kategori keamanan yang batasnya akan dikonfigurasi. Nilai yang dapat diterima mencakup:
Klik untuk memperluas kategori keamanan
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
Nilai minimum untuk respons pemblokiran yang dapat termasuk dalam kategori keamanan yang ditentukan berdasarkan
probabilitas. Nilai yang dapat diterima mencakup:
Klik untuk memperluas nilai minimum pemblokiran
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(default)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
memblokir paling banyak, sedangkanBLOCK_ONLY_HIGH
memblokir paling sedikit. - TEMPERATURE: Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat
topP
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 respons penggantian, coba tingkatkan suhu.
- 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 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 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 dari
1
berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan nilai top-K dari3
berarti token berikutnya dipilih di antara tiga token yang paling mungkin 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.
- MAX_OUTPUT_TOKENS:
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.
- STOP_SEQUENCES:
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 ketikastopSequences
tidak ditentukan:
public static string reverse(string myString)
Kemudian, respons yang ditampilkan denganstopSequences
ditetapkan ke["Str", "reverse"]
adalah:
public static string
Metode HTTP dan URL:
POST http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Isi JSON permintaan:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
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 \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
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 "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Contoh perintah curl
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
http://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Konsol
Untuk mengirim prompt multimodal menggunakan Konsol Google Cloud, lakukan hal berikut:
- Di bagian Vertex AI pada Konsol Google Cloud, buka halaman Vertex AI Studio.
- Di bagian Prompt design (single turn), klik Open.
Konfigurasi model dan parameter:
- Region: Pilih region yang ingin Anda gunakan.
- Model: Pilih Gemini Pro Vision.
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 respons penggantian, coba tingkatkan suhu.
Batas token: Gunakan penggeser atau kotak teks untuk memasukkan nilai batas output maksimum.
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.
- Menambahkan urutan perhentian: Masukkan urutan perhentian, yang merupakan serangkaian karakter (termasuk spasi) yang menghentikan pembuatan respons jika model menemuinya. Urutan tidak disertakan sebagai bagian dari respons. Anda dapat menambahkan hingga lima urutan perhentian.
- Opsional: Untuk mengonfigurasi parameter lanjutan, klik Advanced, lalu konfigurasikan sebagai berikut:
Top-K: Gunakan penggeser atau kotak teks untuk memasukkan nilai untuk top-K.
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 ke yang terkecil hingga jumlah probabilitasnya sama dengan nilai top-P. Untuk hasil variabel terkecil,
tetapkan top-P ke
0
. Konsol Google Cloud hanya mendukung streaming, yang melibatkan penerimaan respons terhadap perintah saat dibuat. Anda siap memasukkan pesan di kotak pesan untuk memulai percakapan dengan model.
Model ini menggunakan pesan sebelumnya sebagai konteks untuk respons baru. Untuk menyertakan gambar, PDF, atau video dalam perintah, klik ikon
.Untuk mempelajari prompt multimodal, lihat Mendesain prompt multimodal.
- Opsional: Untuk menyimpan perintah ke Perintah saya, klik Simpan.
- Opsional: Untuk mendapatkan kode Python atau perintah curl untuk perintah Anda, klik Get code.
- Opsional: Untuk menghapus semua pesan sebelumnya, klik Hapus percakapan
Klik untuk meluaskan konfigurasi lanjutan
Audio dengan stempel waktu
Berikut ini cara menggunakan file audio untuk membuat transkripsi podcast dengan stempel waktu. Contoh ini hanya berfungsi dengan Gemini 1.5 Pro (Pratinjau).
import vertexai
from vertexai.generative_models import GenerativeModel, Part
# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
vertexai.init(project=project_id, location="us-central1")
model = GenerativeModel("gemini-1.5-pro-preview-0409")
prompt = """
Can you transcribe this interview, in the format of timecode, speaker, caption.
Use speaker A, speaker B, etc. to identify the speakers.
"""
audio_file_uri = "gs://cloud-samples-data/generative-ai/audio/pixel.mp3"
audio_file = Part.from_uri(audio_file_uri, mime_type="audio/mpeg")
contents = [audio_file, prompt]
response = model.generate_content(contents)
print(response.text)
Video dengan audio
Berikut ini cara meringkas file video dengan audio dan menampilkan segmen dengan stempel waktu. Contoh ini hanya berfungsi dengan Gemini 1.5 Pro (Pratinjau).
import vertexai
from vertexai.generative_models import GenerativeModel, Part
# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
vertexai.init(project=project_id, location="us-central1")
model = GenerativeModel("gemini-1.5-pro-preview-0409")
prompt = """
Provide a description of the video.
The description should also contain anything important which people say in the video.
"""
video_file_uri = "gs://cloud-samples-data/generative-ai/video/pixel8.mp4"
video_file = Part.from_uri(video_file_uri, mime_type="video/mp4")
contents = [video_file, prompt]
response = model.generate_content(contents)
print(response.text)
Semua modalitas
Berikut ini cara memproses gambar, video, audio, dan teks secara bersamaan. Contoh ini hanya berfungsi dengan Gemini 1.5 Pro (Pratinjau).
import vertexai
from vertexai.generative_models import GenerativeModel, Part
# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
vertexai.init(project=project_id, location="us-central1")
model = GenerativeModel("gemini-1.5-pro-preview-0409")
video_file_uri = "gs://cloud-samples-data/generative-ai/video/behind_the_scenes_pixel.mp4"
video_file = Part.from_uri(video_file_uri, mime_type="video/mp4")
image_file_uri = "gs://cloud-samples-data/generative-ai/image/a-man-and-a-dog.png"
image_file = Part.from_uri(image_file_uri, mime_type="image/png")
prompt = """
Watch each frame in the video carefully and answer the questions.
Only base your answers strictly on what information is available in the video attached.
Do not make up any information that is not part of the video and do not be too
verbose, be to the point.
Questions:
- When is the moment in the image happening in the video? Provide a timestamp.
- What is the context of the moment and what does the narrator say about it?
"""
contents = [
video_file,
image_file,
prompt,
]
response = model.generate_content(contents)
print(response.text)
Menetapkan parameter model
Parameter model berikut dapat disetel 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 respons penggantian, coba tingkatkan suhu.
Parameter value yang valid
Parameter | Gemini 1.0 Pro Vision | Gemini 1.5 Pro (Pratinjau) |
---|---|---|
Top-K | 1 - 40 (default 32) | Tidak didukung |
Top-P | 0 - 1.0 (default 1.0) | 0 - 1,0 (default 0,95) |
Temperature (suhu) | 0 - 1,0 (default 0,4) | 0 - 2.0 (default 1.0) |
Persyaratan media
Saat Anda menggunakan file media dalam permintaan perintah, pastikan file tersebut memenuhi persyaratan berikut:
Persyaratan gambar
Tidak ada batasan khusus jumlah {i>pixel<i} dalam sebuah gambar. Namun, gambar yang lebih besar akan diperkecil dan diberi padding agar sesuai dengan resolusi maksimum 3072x3072 dengan tetap mempertahankan rasio aspek aslinya.
Untuk Gemini 1.0 Pro Vision, setiap gambar menyumbang 258 token.
Untuk Gemini 1.5 Pro (Pratinjau):
- Gambar dengan rasio aspek lebih kecil dari 1,2 atau dengan dimensi yang lebih panjang lebih kecil dari 768, masing-masing memperhitungkan 258 token.
- Gambar dengan dimensi lebih panjang dari 768 dan rasio aspek yang lebih besar dari 1,2 akan ditampilkan oleh kartu persegi yang berjarak sama di sepanjang dimensi yang lebih panjang. Kartu digunakan dengan gambar asli untuk mewakili gambar dalam Gemini. Setiap kartu menyumbang 258 token. Misalnya, untuk gambar dengan resolusi 1.000x2.000, token 258 x 3 = 774 digunakan (1 untuk gambar asli, dan 2 untuk ubin persegi 1000x1000)
Jumlah maksimum gambar yang dapat ada dalam permintaan dialog adalah:
- 16 untuk Gemini 1.0 Pro Vision
- 3.000 untuk Gemini 1.5 Pro (Pratinjau)
Persyaratan audio
Gemini 1.5 Pro (Pratinjau) mendukung jenis MIME audio berikut. Gemini 1.0 Pro Vision tidak mendukung audio.
audio/mp3
audio/wav
Persyaratan video
Video diambil sampelnya pada kecepatan 1 fps. Setiap frame video menyumbang 258 token.
Khusus untuk Gemini 1.5 Pro (Pratinjau), trek audio dienkode dengan frame video. Trek audio juga dipecah menjadi trunk 1 detik yang masing-masing memperhitungkan 32 token. Frame video dan token audio disisipkan bersama dengan stempel waktunya. Stempel waktu direpresentasikan sebagai 7 token.
Model multimodal Gemini mendukung jenis MIME video berikut:
Jenis MIME video | Gemini 1.0 Pro Vision | Gemini 1.5 Pro (Pratinjau) |
---|---|---|
MOV - video/mov |
||
MPEG - video/mpeg |
||
MP4 - video/mp4 |
||
MPG - video/mpg |
||
AVI - video/avi |
||
WMV - video/wmv |
||
MPEGPS - video/mpegps |
||
FLS - video/flv |
Persyaratan PDF
Jenis MIME yang diperlukan untuk PDF adalah application/pdf
.
Praktik terbaik
Bagian ini mencakup praktik terbaik untuk berbagai modalitas.
Praktik terbaik gambar
Saat menggunakan gambar, gunakan praktik terbaik dan informasi berikut untuk mendapatkan hasil terbaik.
- Gunakan perintah dengan satu gambar untuk memberikan hasil yang lebih baik daripada perintah dengan beberapa gambar saat Anda ingin mendeteksi teks dalam gambar.
- Jika perintah Anda berisi satu gambar, tempatkan gambar tersebut sebelum prompt teks.
Jika ada beberapa gambar dalam perintah, dan Anda ingin merujuknya nanti dalam perintah atau meminta model merujuk ke gambar tersebut dalam respons model, sebaiknya berikan indeks pada setiap gambar sebelum gambar. Gunakan
a
b
c
, atauimage 1
image 2
image 3
untuk indeks Anda. Berikut adalah contoh penggunaan gambar yang diindeks dalam perintah:image 1 <piano_recital.jpeg> image 2 <family_dinner.jpeg> image 3 <coffee_shop.jpeg> Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3.
Gambar dengan resolusi lebih tinggi akan memberikan hasil yang lebih baik.
Sertakan beberapa contoh dalam perintah.
Putar gambar ke orientasi yang tepat sebelum menambahkannya ke perintah.
Hindari gambar yang buram.
Praktik terbaik video
Saat menggunakan video, gunakan praktik terbaik dan informasi berikut untuk mendapatkan hasil terbaik:
- Jangan gunakan lebih dari satu video per perintah.
- Jika perintah Anda berisi satu video, tempatkan video tersebut sebelum prompt teks.
- Jika Anda menggunakan Gemini 1.0 Pro Vision, model akan memproses video sebagai frame gambar yang tidak berdekatan dari video. Audio tidak disertakan. Jika Anda melihat model tidak memiliki beberapa konten dari video, coba persingkat video tersebut agar model dapat menangkap sebagian besar konten video.
- Jika Anda menggunakan Gemini 1.0 Pro Vision, hanya informasi dalam dua menit pertama yang akan diproses.
- Jika Anda menggunakan Gemini 1.0 Pro Vision, tidak ada informasi audio atau metadata stempel waktu yang dianalisis. Akibatnya, model mungkin tidak berfungsi dengan baik dalam kasus penggunaan yang memerlukan input audio, seperti pemberian teks pada audio, atau informasi terkait waktu, seperti kecepatan atau ritme.
- Jika pelokalan stempel waktu dalam video dengan audio diperlukan, minta model untuk
membuat stempel waktu dalam format
MM:SS
dengan dua digit pertama mewakili menit dan dua digit terakhir mewakili detik. Gunakan format yang sama untuk pertanyaan yang menanyakan tentang stempel waktu.
Praktik terbaik PDF
Saat menggunakan PDF, gunakan praktik terbaik dan informasi berikut untuk mendapatkan hasil terbaik:
- PDF diperlakukan sebagai gambar, sehingga satu halaman PDF diperlakukan sebagai satu
gambar.
- Jumlah halaman yang didukung terbatas pada jumlah gambar yang dapat didukung model. Untuk Gemini 1.0 Pro Vision, batasnya adalah 16. Untuk Gemini 1.5 Pro, batasnya adalah 300. Jika Anda memiliki dokumen yang panjang, sebaiknya bagi menjadi beberapa PDF untuk memprosesnya.
- Saat menggunakan PDF sebagai input, biayanya mengikuti harga gambar Gemini. Misalnya, jika Anda menyertakan PDF dua halaman dalam panggilan API Gemini, Anda akan dikenai biaya input untuk pemrosesan dua gambar.
- Jika perintah Anda berisi satu PDF, tempatkan PDF sebelum prompt teks.
- Gunakan PDF yang dibuat dengan teks yang dirender sebagai teks, bukan menggunakan teks dalam gambar yang dipindai. Format ini memastikan teks dapat dibaca mesin sehingga lebih mudah bagi model untuk diedit, ditelusuri, dan dimanipulasi dibandingkan dengan gambar PDF yang dipindai. Praktik ini memberikan hasil optimal saat mengerjakan dokumen yang sarat teks seperti kontrak.
Untuk tips terkait perintah multimodal lainnya, lihat Mendesain perintah multimodal.
Batasan multimodal
Meskipun model multimodal Gemini sangat berguna dalam banyak kasus pengguna multimodal, penting untuk memahami batasan model:
- Penalaran spasial: Model ini tidak secara akurat menemukan teks atau objek dalam gambar dan PDF. Fungsi ini mungkin hanya menampilkan perkiraan jumlah objek.
- Penggunaan medis: Model ini tidak cocok untuk menafsirkan gambar medis (misalnya, sinar-x dan CT pemindaian) atau memberikan saran medis.
- Pengenalan orang: Model ini tidak dimaksudkan untuk mengidentifikasi orang yang bukan selebritas dalam gambar.
- Moderasi konten: Model ini menolak memberikan jawaban tentang gambar atau video yang melanggar kebijakan keamanan kami.
- Akurasi: Model mungkin berhalusinasi atau membuat kesalahan saat menafsirkan gambar yang berkualitas rendah, dirotasi, atau yang memiliki resolusi sangat rendah. Model tersebut mungkin juga berhalusinasi saat menafsirkan teks tulisan tangan dalam gambar atau dokumen PDF.
- Pengenalan suara non-suara: Model yang mendukung audio mungkin membuat kesalahan mengenali suara yang bukan ucapan.
- Gerakan kecepatan tinggi: Karena frekuensi pengambilan sampel 1 frame per detik (fps) tetap, model dapat membuat kesalahan saat memahami gerakan kecepatan tinggi dalam video.
Langkah selanjutnya
- Pelajari cara mengirim permintaan perintah chat.
- Pelajari praktik terbaik responsible AI dan filter keamanan Vertex AI.