Gemini API'yi kullanarak metin oluşturma

Gemini API, şunlar da dahil olmak üzere çeşitli giriş türlerinden metin çıkışı oluşturabilir: metin, resim, video ve ses. Metin oluşturma işlevini kullanarak Aşağıdakiler dahil:

  • Yaratıcı Yazarlık
  • Medya öğelerini açıklama veya yorumlama
  • Metin tamamlama
  • Serbest biçimli metinleri özetleme
  • Diller arasında çeviri
  • Chatbots
  • Özgün kullanım alanlarınız

Bu kılavuzda, generateContent ve streamGenerateContent API'ler ve seçtiğiniz sunucu tarafı SDK'sı. Odak noktası, yalnızca metin ile metin ve resim girişi kullanılabilir. Çok modlu istem hakkında daha fazla bilgi edinmek için dosyaları ve ses dosyalarını kullanabilirsiniz. Medya dosyalarıyla istem kullanma.

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

Gemini API'yi çağırmadan önce projenizi ayarlamanız ve API anahtarınız.

Yalnızca metin girişinden metin oluştur

Gemini API'yi kullanarak metin oluşturmanın en basit yolu, modeli aşağıdaki örnekte gösterildiği gibi tek bir yalnızca metin girişiyle:

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

Bu durumda, "Sihirli sırt çantası hakkında bir hikaye yaz" istemi çıkış örneklerini, sistem talimatlarını veya biçimlendirme bilgilerini içermelidir. Sıfır atış bahsedeceğiz. Bazı kullanım alanlarında tek seferlik veya birkaç çekim istemi kullanıcı beklentileriyle daha uyumlu çıktılar üretebilir. Bazı durumlarda, potansiyel riskleri ele almak için modele yardımcı olmak için sistem talimatlarını anlamanıza yardımcı olur.

Metin ve resim girişinden metin oluştur

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

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 içeren istemde olduğu gibi, çok modlu istemde de çeşitli yaklaşımlar kullanılabilir. emin olmanız gerekir. Bu örnekteki çıktıya bağlı olarak isteme adım ekleyin veya talimatlarınızda daha açık olun. Daha fazla bilgi edinmek için Dosya istemi stratejileri bölümünü inceleyin.

Metin akışı oluştur

Varsayılan olarak model, metnin tamamını tamamladıktan sonra yanıt döndürür. oluşturma sürecidir. ve kısmi sonuçları işlemek için akış yöntemini kullanabilirsiniz.

Aşağıdaki örnekte, streamGenerateContent yöntemini kullanarak yalnızca metin giriş isteminden metin oluşturma.

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ıza etkileşimli sohbet deneyimleri sunmak için Gemini API'yi kullanabilirsiniz. API'nin sohbet özelliğini kullanmak, birkaç tur soru toplamanıza olanak tanır. ve yanıt vererek kullanıcıların adım adım yanıt almasına veya yardım almasına olanak tanır. çok parçalı problemlerde yapılır. Bu özellik, ek bilgi gerektiren uygulamalar chatbot'lar, etkileşimli eğitmenler veya müşteri desteği gibi sürekli iletişim yardımcı olur.

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

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)

Metin oluşturmayı yapılandırma

Modele gönderdiğiniz her istem parametrelerini modelin yanıtları nasıl oluşturacağını kontrol edin. Tekliflerinizi otomatikleştirmek ve optimize etmek için GenerationConfig - yapılandırmalısınız. Parametreleri yapılandırmazsanız model modele göre farklılık gösterebilen varsayılan seçenekleri kullanır.

Aşağıdaki örnekte, kullanılabilir seçeneklerden bazılarının nasıl yapılandırılacağı gösterilmektedir.

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şturulan yanıtların sayısını belirtir. Şu anda bu değer yalnızca 1 olarak ayarlanabilir. Politika ayarlanmadan bırakılırsa varsayılan olarak 1 değerine ayarlanır.

stopSequences, karakter dizileri kümesini (en fazla 5) Çıktı üretmeyi durdurun. Belirtilirse API ilk görünümde durur. bir stop_sequence. Durdurma sırası, tıklayın.

maxOutputTokens, bir adaya dahil edilecek maksimum jeton sayısını belirler.

temperature, çıkışın rastgeleliğini kontrol eder. Daha fazla öğe için daha yüksek değerler kullanın yaratıcı yanıtlara, daha deterministik yanıtlar için ise daha düşük değerlere sahiptir. Değerler [0,0, 2,0] arasında olabilir.

Ayrıca generateContent çağrıları ayrı ayrı yapılandırılabilir:

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

Model oluşturucudaki bağımsız çağrı geçersiz kılma değerlerinde ayarlanan tüm değerler.

Sırada ne var?

Bu kılavuzda, generateContent ve streamGenerateContent yalnızca metin ile metin ve resim girişlerinden metin çıkışları oluşturun. Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

  • Medya dosyalarıyla istem kullanma: Gemini API, istemlerin yanı sıra metin, resim, ses ve video verilerini de çok modlu istem olarak adlandırılır.
  • Sistem talimatları: Sistem talimatlar, modelin davranışını verilerinize göre yönlendirmenizi sağlar. kullanım alanlarını ele aldık.
  • Güvenlik rehberliği: Bazen üretken yapay zeka modeller, hatalı çıkışlar gibi beklenmedik çıkışlar üretir. veya rahatsız edici tavırlar ortaya koyar. Değerlendirme süreci, proje yöneticileri için bu tür çıkışların zarar verme riskini azaltır.