Gemini API ile çoklu katılımlı sohbetler (sohbet) oluşturma


Gemini API simgesini kullanarak birden fazla katılımcının yer aldığı serbest biçimli görüşmeler oluşturabilirsiniz. Vertex AI in Firebase SDK'sı, sohbetin durumunu yöneterek süreci basitleştirir. Bu nedenle, generateContentStream() veya generateContent()'den farklı olarak sohbet geçmişini kendiniz saklamanıza gerek yoktur.

Başlamadan önce

Henüz yapmadıysanız Vertex AI in Firebase SDK'ları için başlangıç kılavuzunu tamamlayın. Aşağıdakilerin tümünü yaptığınızdan emin olun:

  1. Blaze fiyatlandırma planını kullanma ve gerekli API'leri etkinleştirme dahil olmak üzere yeni veya mevcut bir Firebase projesi oluşturun.

  2. Uygulamanızı kaydettirme ve Firebase yapılandırmanızı uygulamanıza ekleme dahil olmak üzere uygulamanızı Firebase'e bağlayın.

  3. SDK'yı ekleyin ve uygulamanızda Vertex AI hizmetini ve üretken modeli başlatın.

Uygulamanızı Firebase'e bağladıktan, SDK'yı ekledikten ve Vertex AI hizmetini ile üretken modeli başlattıktan sonra Gemini API işlevini çağırmaya hazırsınız.

Sohbet istemi isteği gönderme

Çok turlu bir görüşme (sohbet gibi) oluşturmak için startChat() işlevini çağırarak sohbeti başlatın. Ardından, yeni bir kullanıcı mesajı göndermek için sendMessageStream() (veya sendMessage()) simgesini kullanın. Bu işlem, mesajı ve yanıtı sohbet geçmişine de ekler.

Sohbetteki içerikle ilişkili role için iki olası seçenek vardır:

  • user: İstemleri sağlayan rol. Bu değer, sendMessageStream() (veya sendMessage()) çağrıları için varsayılan değerdir ve farklı bir rol iletilirse işlev bir istisna oluşturur.

  • model: Yanıtları sağlayan rol. Bu rol, mevcut history ile startChat()'ü çağırırken kullanılabilir.

Yanıtı akış şeklinde mi (sendMessageStream) yoksa sonucun tamamı oluşturulana kadar mı (sendMessage) beklemek istediğinizi seçin.

Akış

Model oluşturma işleminin sonucunun tamamını beklemek yerine kısmi sonuçları işlemek için akış özelliğini kullanarak daha hızlı etkileşimler elde edebilirsiniz.

Bu örnekte, modelden yanıtları aktarmak için startChat() ve sendMessageStream() işlevlerinin nasıl kullanılacağı gösterilmektedir:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

// Optionally specify existing chat history
let history = [
  ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
  ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]

// Initialize the chat with optional chat history
let chat = model.startChat(history: history)

// To stream generated text output, call sendMessageStream and pass in the message
let contentStream = try chat.sendMessageStream("How many paws are in my house?")
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

Akış olmadan

Alternatif olarak, aktarmak yerine sonucun tamamını bekleyebilirsiniz. Sonuç yalnızca model tüm oluşturma sürecini tamamladıktan sonra döndürülür.

Bu örnekte, yeni bir kullanıcı mesajı göndermek için startChat() ve sendMessage() işlevlerinin nasıl kullanılacağı gösterilmektedir:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")

// Optionally specify existing chat history
let history = [
  ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
  ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]

// Initialize the chat with optional chat history
let chat = model.startChat(history: history)

// To generate text output, call sendMessage and pass in the message
let response = try await chat.sendMessage("How many paws are in my house?")
print(response.text ?? "No text in response.")

Kullanım alanınıza ve uygulamanıza uygun bir Gemini modeli ve isteğe bağlı olarak bir konum seçmeyi öğrenin.

Başka neler yapabilirsiniz?

  • Modele uzun istemler göndermeden önce jetonları nasıl sayacağınızı öğrenin.
  • Çok modlu isteklerinize büyük dosyalar ekleyebilmeniz ve istemlerde dosya sağlamak için daha yönetilebilir bir çözüme sahip olabilmeniz amacıyla Cloud Storage for Firebase'i ayarlayın. Dosyalar resim, PDF, video ve ses içerebilir.
  • Gemini API'ı yetkisiz istemciler tarafından kötüye kullanıma karşı korumak için Firebase App Check oluşturma da dahil olmak üzere üretime hazırlanmaya başlayın.

Gemini API'ün diğer özelliklerini deneyin

İçerik oluşturmayı nasıl kontrol edeceğinizi öğrenin

Vertex AI Studio'i kullanarak istemler ve model yapılandırmalarıyla da denemeler yapabilirsiniz.

Gemini modelleri hakkında daha fazla bilgi

Çeşitli kullanım alanları için kullanılabilen modeller ve bunların kotaları ile fiyatlandırması hakkında bilgi edinin.


Vertex AI in Firebase ile ilgili deneyiminiz hakkında geri bildirim verme