Gemini API dapat menghasilkan output teks saat teks, gambar, video, dan audio diberikan sebagai input.
Panduan ini menunjukkan cara membuat teks menggunakan metode
generateContent
dan
streamGenerateContent
. Untuk mempelajari cara menggunakan kemampuan audio dan visi Gemini,
lihat panduan Vision dan Audio.
Membuat teks dari input khusus teks
Cara termudah untuk membuat teks menggunakan Gemini API adalah dengan memberikan satu input khusus teks kepada model, seperti yang ditunjukkan dalam contoh ini:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "Write a story about a magic backpack."}]
}]
}' 2> /dev/null
Dalam hal ini, perintah ("Jelaskan cara kerja AI") tidak menyertakan contoh output, petunjuk sistem, atau informasi pemformatan. Ini adalah pendekatan zero-shot. Untuk beberapa kasus penggunaan, perintah one-shot atau few-shot mungkin menghasilkan output yang lebih selaras dengan ekspektasi pengguna. Dalam beberapa kasus, Anda mungkin juga ingin memberikan petunjuk sistem untuk membantu model memahami tugas atau mengikuti panduan tertentu.
Membuat teks dari input teks dan gambar
Gemini API mendukung input multimodal yang menggabungkan teks dengan file media. Contoh berikut menunjukkan cara membuat teks dari input teks dan gambar:
# Use a temporary file to hold the base64 encoded image data
TEMP_B64=$(mktemp)
trap 'rm -f "$TEMP_B64"' EXIT
base64 $B64FLAGS $IMG_PATH > "$TEMP_B64"
# Use a temporary file to hold the JSON payload
TEMP_JSON=$(mktemp)
trap 'rm -f "$TEMP_JSON"' EXIT
cat > "$TEMP_JSON" << EOF
{
"contents": [{
"parts":[
{"text": "Tell me about this instrument"},
{
"inline_data": {
"mime_type":"image/jpeg",
"data": "$(cat "$TEMP_B64")"
}
}
]
}]
}
EOF
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d "@$TEMP_JSON" 2> /dev/null
Seperti prompt teks saja, prompt multimodal dapat melibatkan berbagai pendekatan dan peningkatan. Bergantung pada output dari contoh ini, sebaiknya Anda menambahkan langkah ke perintah atau lebih spesifik dalam petunjuk Anda. Untuk mempelajari lebih lanjut, lihat Strategi perintah file.
Membuat streaming teks
Secara default, model menampilkan respons setelah menyelesaikan seluruh proses pembuatan teks. Anda dapat mencapai interaksi yang lebih cepat dengan tidak menunggu seluruh hasil, dan sebagai gantinya menggunakan streaming untuk menangani hasil sebagian.
Contoh berikut menunjukkan cara menerapkan streaming menggunakan
metode streamGenerateContent
untuk
membuat teks dari perintah input khusus teks.
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:streamGenerateContent?alt=sse&key=${GOOGLE_API_KEY}" \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{ "contents":[{"parts":[{"text": "Write a story about a magic backpack."}]}]}'
Membuat chat interaktif
Gemini SDK memungkinkan Anda mengumpulkan beberapa putaran pertanyaan
dan respons, sehingga pengguna dapat melangkah secara bertahap menuju jawaban atau mendapatkan bantuan
untuk masalah multibagian. Fitur SDK ini menyediakan antarmuka untuk melacak histori percakapan, tetapi di balik layar menggunakan metode generateContent
yang sama untuk membuat respons.
Contoh kode berikut menunjukkan implementasi chat dasar:
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{"role":"user",
"parts":[{
"text": "Hello"}]},
{"role": "model",
"parts":[{
"text": "Great to meet you. What would you like to know?"}]},
{"role":"user",
"parts":[{
"text": "I have two dogs in my house. How many paws are in my house?"}]},
]
}' 2> /dev/null | grep "text"
Mengaktifkan streaming chat
Anda juga dapat menggunakan streaming dengan chat, seperti yang ditunjukkan pada contoh berikut:
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:streamGenerateContent?alt=sse&key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{"role":"user",
"parts":[{
"text": "Hello"}]},
{"role": "model",
"parts":[{
"text": "Great to meet you. What would you like to know?"}]},
{"role":"user",
"parts":[{
"text": "I have two dogs in my house. How many paws are in my house?"}]},
]
}' 2> /dev/null | grep "text"
Mengonfigurasi pembuatan teks
Setiap perintah yang Anda kirim ke model menyertakan parameter yang mengontrol cara model menghasilkan respons. Anda dapat menggunakan
GenerationConfig
untuk
mengonfigurasi parameter ini. Jika Anda tidak mengonfigurasi parameter, model akan menggunakan opsi default, yang dapat bervariasi menurut model.
Contoh berikut menunjukkan cara mengonfigurasi beberapa opsi yang tersedia.
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"text": "Write a story about a magic backpack."}
]
}],
"safetySettings": [
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_ONLY_HIGH"
}
],
"generationConfig": {
"stopSequences": [
"Title"
],
"temperature": 1.0,
"maxOutputTokens": 800,
"topP": 0.8,
"topK": 10
}
}' 2> /dev/null | grep "text"
stopSequences
menentukan kumpulan urutan karakter (maksimal 5) yang akan menghentikan pembuatan output. Jika ditentukan, API akan berhenti saat stop_sequence
pertama kali muncul. Urutan perhentian tidak akan disertakan sebagai bagian dari
respons.
temperature
mengontrol keacakan output. Gunakan nilai yang lebih tinggi untuk respons yang lebih
kreatif, dan nilai yang lebih rendah untuk respons yang lebih deterministik. Nilai
dapat berkisar dari [0,0, 2,0].
maxOutputTokens
menetapkan jumlah maksimum token yang akan disertakan dalam kandidat.
topP
mengubah cara model memilih token untuk output. Token dipilih dari
yang paling mungkin hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan
nilai topP
. Nilai topP
default adalah 0,95.
topK
mengubah cara model memilih token untuk output. topK
1 berarti
token yang dipilih adalah yang paling mungkin di antara semua token dalam kosakata
model, sedangkan topK
3 berarti token berikutnya dipilih dari antara
3 token yang paling mungkin menggunakan suhu. Token
difilter lebih lanjut berdasarkan topP
dengan token akhir dipilih menggunakan sampling
suhu.
Menambahkan petunjuk sistem
Petunjuk sistem memungkinkan Anda mengarahkan perilaku model berdasarkan kebutuhan dan kasus penggunaan tertentu.
Dengan memberikan petunjuk sistem model, Anda memberikan konteks tambahan ke model untuk memahami tugas, menghasilkan respons yang lebih disesuaikan, dan mematuhi pedoman tertentu selama interaksi pengguna penuh dengan model. Anda juga dapat menentukan perilaku tingkat produk dengan menetapkan petunjuk sistem, terpisah dari perintah yang diberikan oleh pengguna akhir.
Anda dapat menetapkan petunjuk sistem saat melakukan inisialisasi model:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "system_instruction": {
"parts":
{ "text": "You are a cat. Your name is Neko."}},
"contents": {
"parts": {
"text": "Hello there"}}}'
Untuk contoh menyeluruh interaktif tentang penggunaan petunjuk sistem, lihat petunjuk sistem Colab.
Langkah berikutnya
Setelah menjelajahi dasar-dasar Gemini API, Anda dapat mencoba:
- Pemahaman visi: Pelajari cara menggunakan pemahaman visi native Gemini untuk memproses gambar dan video.
- Pemahaman audio: Pelajari cara menggunakan pemahaman audio native Gemini untuk memproses file audio.