Halaman ini menunjukkan cara mengirim perintah chat ke model Gemini 1.0 Pro (gemini-1.0-pro
) menggunakan Konsol Google Cloud, REST API, dan SDK yang didukung. Gemini 1.0 Pro
mendukung perintah dengan input hanya teks, termasuk tugas natural language,
chat teks dan kode multi-giliran, serta pembuatan kode. Dapat menghasilkan teks dan kode.
Model dasar Gemini 1.0 Pro adalah model bahasa besar yang mahir dalam memahami dan menghasilkan bahasa. Anda dapat berinteraksi dengan Gemini Pro menggunakan perintah dan respons satu giliran atau chat dengannya dalam percakapan multi-giliran dan berkelanjutan, bahkan untuk memahami dan membuat kode.
Untuk daftar bahasa yang didukung oleh Gemini 1.0 Pro, lihat informasi model Dukungan bahasa.
Untuk menjelajahi model ini di konsol, pilih kartu model gemini-1.0-pro
di Model Garden.
Jika Anda mencari cara untuk menggunakan Gemini langsung dari aplikasi seluler dan web, lihat Google AI SDK untuk Android, Swift, dan web.
Kirim perintah chat
Untuk menguji dan melakukan iterasi pada perintah chat, sebaiknya gunakan Konsol Google Cloud. Untuk mengirim perintah secara terprogram ke model, Anda dapat menggunakan REST API, Vertex AI SDK untuk Python, atau salah satu library dan SDK yang didukung lainnya yang ditampilkan di tab berikut.
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 yang di-streaming atau respons non-stream. 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 mengirim prompt chat dengan menggunakan Vertex AI API untuk mengirimkan 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-002
gemini-1.0-pro-vision-001
gemini-1.5-pro-preview-0409
- 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.MODEL
: Menentukan respons model.
- TEXT: Teks petunjuk yang akan disertakan dalam perintah.
- 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. - SYSTEM_INSTRUCTION: (Opsional)
Tersedia untuk
gemini-1.0-pro-002
dangemini-1.5-pro-preview-0409
. Petunjuk bagi model untuk mengarahkannya agar menghasilkan performa yang lebih baik. Misalnya, "Jawab sesingkat mungkin" atau "Cetak hasil dalam format JSON". - 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 https://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": { "text": "TEXT" } }, "system_instruction": { "parts": [ { "text": "SYSTEM_INSTRUCTION" } ] }, "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 \
"https://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 "https://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"
PROJECT_ID="test-project"
GENERATE_RESPONSE_METHOD="generateContent"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": [
{
"role": "user",
"parts": { "text": "Hello!" }
},
{
"role": "model",
"parts": { "text": "Argh! What brings ye to my ship?" }
},
{
"role": "user",
"parts": { "text": "Wow! You are a real-life pirate!" }
}
],
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.9,
"topP": 1,
"candidateCount": 1,
"maxOutputTokens": 2048
}
}'
Konsol
Untuk menggunakan Vertex AI Studio guna mengirim prompt chat di Konsol Google Cloud, lakukan hal berikut:
- Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Language di Vertex AI Studio.
- Klik Chat teks.
Konfigurasi model dan parameter:
- Region: Pilih region yang ingin Anda gunakan.
- Model: Pilih Gemini Pro.
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:
Klik untuk meluaskan konfigurasi lanjutan
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.
- 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
Gunakan petunjuk sistem
Petunjuk sistem memungkinkan pengguna mengatur perilaku model berdasarkan kebutuhan dan kasus penggunaan spesifik mereka. Saat menyetel petunjuk sistem, Anda memberikan konteks tambahan kepada model untuk memahami tugas, memberikan respons yang lebih disesuaikan, dan mematuhi panduan khusus terkait interaksi pengguna secara penuh dengan model. Untuk developer, perilaku tingkat produk dapat ditentukan dalam petunjuk sistem, terpisah dari perintah yang diberikan oleh pengguna akhir.
Anda dapat menggunakan petunjuk sistem dengan berbagai cara, termasuk:
- Menentukan persona atau peran (misalnya, untuk chatbot)
- Menentukan format output (Markdown, YAML, dll.)
- Menentukan gaya dan nuansa output (misalnya panjang, formalitas, dan tingkat bacaan target)
- Menentukan sasaran atau aturan tugas (misalnya, menampilkan cuplikan kode tanpa penjelasan lebih lanjut)
- Memberikan konteks tambahan untuk perintah (misalnya, batas pengetahuan)
Jika ditetapkan, petunjuk sistem akan berlaku untuk seluruh permintaan. Ini berfungsi di beberapa putaran pengguna dan model saat disertakan dalam perintah.
Contoh kode petunjuk sistem
Berikut adalah contoh penetapan petunjuk sistem sederhana dalam menggunakan Vertex AI Python SDK.
from vertexai.generative_models import GenerativeModel
model = GenerativeModel(
"gemini-1.0-pro-002",
system_instruction=[
"Don't use technical terms in your response",
],
)
print(model.generate_content("Explain gravity"))
Berikut adalah contoh penyertaan petunjuk sistem sederhana dalam perintah curl.
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-002"
PROJECT_ID="test-project"
GENERATE_RESPONSE_METHOD="generateContent"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models:generateContent" -d \
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "randomly select 10 words from a history book"
}
]
}
],
"system_instruction":
{
"parts": [
{
"text": "please print the results in json format."
}
]
},
"generation_config": {
"maxOutputTokens": 2048,
"temperature": 0.4,
"topP": 1,
"topK": 32
}
}
Contoh petunjuk sistem
Berikut adalah contoh perintah sistem yang menentukan perilaku model yang diharapkan. Yang pertama adalah perintah sistem untuk pembuatan kode front-end, yang kedua adalah contoh kasus penggunaan analisis sentimen pasar, dan yang ketiga adalah chatbot konsumen.
Pembuatan kode
- Sistem: Anda adalah pakar coding yang mengkhususkan diri dalam merender kode untuk antarmuka frontend. Ketika saya menjelaskan komponen situs web yang ingin saya buat, harap tampilkan HTML dan CSS yang dibutuhkan untuk melakukannya. Jangan berikan penjelasan tentang kode ini. Juga tawarkan beberapa saran desain UI.
- Pengguna: Buat kotak di tengah halaman yang berisi pilihan gambar yang berputar, masing-masing disertai teks. Gambar di tengah halaman harus memiliki bayangan di belakangnya agar menonjol. Tautan juga harus tertaut ke halaman lain dari situs. Kosongkan URL agar saya dapat mengisinya.
Analisis sentimen pasar
Sistem: Anda adalah seorang analis pasar saham yang menganalisis sentimen pasar dengan sebuah cuplikan berita. Berdasarkan cuplikan berita, Anda mengekstrak pernyataan yang memengaruhi sentimen investor.
Berikan respons dalam format JSON dan untuk setiap pernyataan:
- Berikan skor 1 - 10 untuk memberi tahu apakah sentimen itu negatif atau positif (1 berarti paling negatif, 10 paling positif, 5 berarti netral).
- Ulangi pernyataan tersebut.
- Berikan penjelasan dalam satu kalimat.
Pengguna: Mobileye melaporkan tumpukan kelebihan inventaris oleh pelanggan tingkat atas mengikuti kendala supply-chain dalam beberapa tahun terakhir. Pendapatan untuk kuartal pertama diperkirakan turun sekitar 50% dari $458 juta yang dihasilkan setahun sebelumnya, sebelum melakukan normalisasi selama sisa tahun 2024, ujar Mobileye. Mobileye memperkirakan pendapatan untuk setahun penuh 2024 antara $1,83 miliar dan $1,96 miliar, turun dari sekitar $2,08 miliar yang diharapkan pada tahun 2023.
Chatbot musik
- Sistem: Anda akan menanggapi sebagai sejarawan musik, yang menunjukkan pengetahuan komprehensif di seluruh genre musik yang beragam, dan memberikan contoh yang relevan. Suasana Anda akan penuh semangat dan antusias, yang menyebarkan kegembiraan musik. Jika pertanyaan tidak terkait dengan musik, responsnya seharusnya, "Itu di luar pengetahuan saya".
- Pengguna: Jika seseorang lahir pada tahun enam puluhan, apa genre musik yang paling populer yang pernah dimainkan? Cantumkan lima lagu berdasarkan poin-poin.
Langkah selanjutnya
- Pelajari cara mengirim permintaan perintah multimodal.
- Pelajari praktik terbaik responsible AI dan filter keamanan Vertex AI.