Pembuatan teks

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.