Gemini API'yi kullanarak metin oluşturma

Gemini API, giriş olarak metin, resim, video ve ses sağlandığında metin çıkışı oluşturabilir.

Bu kılavuzda, generateContent ve streamGenerateContent yöntemleri kullanılarak metnin nasıl oluşturulacağı gösterilmektedir. Gemini'nin görüntü ve ses özellikleriyle çalışma hakkında bilgi edinmek için Görüntü ve Ses kılavuzlarına bakın.

Başlamadan önce: Projenizi ve API anahtarınızı oluşturun

Gemini API'yi çağırmadan önce projenizi oluşturmanız ve API anahtarınızı yapılandırmanız gerekir.

Yalnızca metin girişinden metin oluşturma

Gemini API'yi kullanarak metin oluşturmanın en basit yolu, modele bu örnekte gösterildiği gibi tek bir yalnızca metin girişi sağlamaktır:

import google.generativeai as genai

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

Bu durumda istem ("Sihirli bir sırt çantasıyla ilgili bir hikaye yaz"), çıkış örnekleri, sistem talimatları veya biçimlendirme bilgileri içermez. Bu, sıfır görevli bir yaklaşımdır. Bazı kullanım alanları için tek atış veya birkaç atış istemi, kullanıcı beklentilerine daha uygun bir sonuç verebilir. Bazı durumlarda, modelin görevi anlamasına veya belirli yönergeleri uygulamasına yardımcı olmak için sistem talimatları da sağlayabilirsiniz.

Metin ve resim girişinden metin oluşturma

Gemini API, metni medya dosyalarıyla birleştiren çok formatlı girişleri destekler. Aşağıdaki örnekte, metin ve resim girişinden nasıl metin oluşturulacağı gösterilmektedir:

import google.generativeai as genai

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)

Yalnızca metin istemlerinde olduğu gibi, çoklu modal istemler de çeşitli yaklaşımlar ve ayrıntılar içerebilir. Bu örnekteki çıktıya bağlı olarak isteminize adımlar ekleyebilir veya talimatlarınızda daha net olabilirsiniz. Daha fazla bilgi edinmek için Dosya istemi stratejileri başlıklı makaleyi inceleyin.

Metin akışı oluşturma

Varsayılan olarak model, metin oluşturma sürecinin tamamını tamamladıktan sonra bir yanıt döndürür. Sonucun tamamını beklemek yerine kısmi sonuçları işlemek için akış özelliğini kullanarak daha hızlı etkileşimler elde edebilirsiniz.

Aşağıdaki örnekte, yalnızca metin içeren bir giriş isteminden metin oluşturmak için streamGenerateContent yöntemini kullanarak akışın nasıl uygulanacağı gösterilmektedir.

import google.generativeai as genai

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)

Etkileşimli sohbet oluşturma

Kullanıcılarınız için etkileşimli sohbet deneyimleri oluşturmak üzere Gemini API'yi kullanabilirsiniz. API'nin sohbet özelliğini kullanarak birden fazla soru ve yanıt toplarsınız. Böylece kullanıcılar, yanıtlara adım adım yaklaşabilir veya birden fazla bölümden oluşan sorunlarla ilgili yardım alabilir. Bu özellik, chatbot'lar, etkileşimli eğitmenler veya müşteri desteği asistanları gibi sürekli iletişim gerektiren uygulamalar için idealdir.

Aşağıdaki kod örneğinde temel bir sohbet uygulaması gösterilmektedir:

import google.generativeai as genai

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)

Sohbet aktarımını etkinleştirme

Aşağıdaki örnekte gösterildiği gibi, canlı yayını sohbet ile de kullanabilirsiniz:

import google.generativeai as genai

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)

Metin oluşturmayı yapılandırma

Modele gönderdiğiniz her istem, modelin yanıtları nasıl oluşturduğunu kontrol eden parametreler içerir. Bu parametreleri yapılandırmak için GenerationConfig kullanabilirsiniz. Parametreleri yapılandırmazsanız model, modele göre değişiklik gösterebilen varsayılan seçenekleri kullanır.

Aşağıdaki örnekte, mevcut seçeneklerden birkaçının nasıl yapılandırılacağı gösterilmektedir.

import google.generativeai as genai

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, döndürülecek oluşturulmuş yanıtların sayısını belirtir. Bu değer şu anda yalnızca 1 olarak ayarlanabilir. Ayarlanmadan bırakılırsa varsayılan olarak 1 olur.

stopSequences, çıkış oluşturmayı durduracak karakter dizisi grubunu (en fazla 5) belirtir. Belirtiliyse API, stop_sequence karakterinin ilk göründüğü yerde durur. Durdurma sırası, yanıtın bir parçası olarak dahil edilmez.

maxOutputTokens, bir adayda eklenecek maksimum jeton sayısını belirler.

temperature, çıktının rastgeleliğini kontrol eder. Daha yaratıcı yanıtlar için daha yüksek, daha kesin yanıtlar için daha düşük değerler kullanın. Değerler [0,0; 2,0] aralığında olabilir.

generateContent için ayrı ayrı aramalar da yapılandırabilirsiniz:

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

Tekil çağrıda ayarlanan tüm değerler, model oluşturucudaki değerleri geçersiz kılar.

Sırada ne var?

Gemini API'nin temel özelliklerini incelediğinize göre şunları deneyebilirsiniz:

  • Görsel yorumlama: Görüntüleri ve videoları işlemek için Gemini'nin yerel görsel yorumlamasını nasıl kullanacağınızı öğrenin.
  • Sistem talimatları: Sistem talimatları, modelin davranışını belirli ihtiyaçlarınıza ve kullanım alanlarınıza göre yönlendirmenize olanak tanır.
  • Ses anlama: Ses dosyalarını işlemek için Gemini'nin doğal ses anlama özelliğini nasıl kullanacağınızı öğrenin.