Membuat teks menggunakan Gemini API

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 Visi dan Audio.

Sebelum memulai: Menyiapkan project dan kunci API

Sebelum memanggil Gemini API, Anda perlu menyiapkan project dan mengonfigurasi kunci API.

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:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

Dalam hal ini, perintah ("Tulis cerita tentang ransel ajaib") 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:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

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 aliran 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.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

Membuat chat interaktif

Anda dapat menggunakan Gemini API untuk membuat pengalaman chat interaktif bagi pengguna. Dengan menggunakan fitur chat API, Anda dapat mengumpulkan beberapa putaran pertanyaan dan respons, sehingga pengguna dapat secara bertahap memberikan jawaban atau mendapatkan bantuan terkait masalah multibagian. Fitur ini ideal untuk aplikasi yang memerlukan komunikasi berkelanjutan, seperti chatbot, tutor interaktif, atau asisten dukungan pelanggan.

Contoh kode berikut menunjukkan implementasi chat dasar:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

Aktifkan streaming chat

Anda juga dapat menggunakan streaming dengan chat, seperti yang ditunjukkan pada contoh berikut:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)
response = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

print(chat.history)

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.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount menentukan jumlah respons yang dihasilkan untuk ditampilkan. Saat ini, nilai ini hanya dapat ditetapkan ke 1. Jika tidak ditetapkan, setelan defaultnya adalah 1.

stopSequences menentukan kumpulan urutan karakter (maksimal 5) yang akan menghentikan pembuatan output. Jika ditentukan, API akan berhenti pada tampilan pertama stop_sequence. Urutan perhentian tidak akan disertakan sebagai bagian dari respons.

maxOutputTokens menetapkan jumlah maksimum token yang akan disertakan dalam kandidat.

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].

Anda juga dapat mengonfigurasi setiap panggilan ke generateContent:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

Setiap nilai yang ditetapkan pada setiap panggilan akan mengganti nilai pada konstruktor model.

Langkah berikutnya

Setelah mempelajari dasar-dasar Gemini API, sebaiknya Anda mencoba:

  • Pemahaman visi: Pelajari cara menggunakan pemahaman visi native Gemini untuk memproses gambar dan video.
  • Petunjuk sistem: Petunjuk sistem memungkinkan Anda mengarahkan perilaku model berdasarkan kebutuhan dan kasus penggunaan tertentu.
  • Pemahaman audio: Pelajari cara menggunakan pemahaman audio native Gemini untuk memproses file audio.