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.

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ıt akışı sağlamak 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)
  }
}

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 modeli ve isteğe bağlı olarak bir konum nasıl seçeceğinizi öğrenin.

Başka neler yapabilirsiniz?

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.

Desteklenen modeller hakkında daha fazla bilgi

Çeşitli kullanım alanları için kullanılabilen modeller, kotaları ve fiyatlandırmaları hakkında bilgi edinin.


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