Gemini {7}API'sini kullanarak çok modlu istemlerden metin oluşturun


Vertex AI in Firebase SDK'sını kullanarak uygulamanızdan Gemini API'ü çağırırken Gemini modelinden çok modlu girişe dayalı metin oluşturmasını isteyebilirsiniz. Çoklu modalite istemleri, resimler, PDF'ler, düz metin dosyaları, video ve ses gibi birden fazla modalite (veya giriş türü) içerebilir.

Her çok modlu istekte her zaman aşağıdakileri sağlamanız gerekir:

Çoklu modal istemleri test etmek ve üzerinde iterasyon yapmak için Vertex AI Studio kullanmanızı öneririz.

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.

Metin ve tek bir resimden metin oluşturma Metin ve birden fazla resimden metin oluşturma Metin ve videodan metin oluşturma

Örnek medya dosyaları

Medya dosyanız yoksa herkese açık olarak sunulan aşağıdaki dosyaları kullanabilirsiniz. Bu dosyalar Firebase projenizde olmayan paketlerde depolandığından URL için https://storage.googleapis.com/BUCKET_NAME/PATH/TO/FILE biçimini kullanmanız gerekir.

Metin ve tek bir resimden metin oluşturma

Bu örneği denemeden önce bu kılavuzun Başlamadan önce bölümünü tamamladığınızdan emin olun.

Gemini API işlevini hem metin hem de tek bir dosya (bu örnekte gösterildiği gibi resim gibi) içeren çoklu modalite istemleriyle çağırabilirsiniz. Bu aramalar için istemlerde medyayı destekleyen bir model (Gemini 2.0 Flash gibi) kullanmanız gerekir.

Giriş dosyaları ile ilgili koşulları ve önerileri inceleyin.

Yanıtı akış şeklinde mi (generateContentStream) yoksa sonucun tamamı oluşturulana kadar mı (generateContent) 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, metin ve tek bir resim içeren çok formatlı istem isteğinden oluşturulan metni aktarmak için generateContentStream() işlevinin 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")

guard let image = UIImage(systemName: "bicycle") else { fatalError() }

// Provide a text prompt to include with the image
let prompt = "What's in this picture?"

// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image, prompt)
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, metin ve tek bir resim içeren çok modlu istem isteğinden metin oluşturmak için generateContent() özelliğinin 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")

guard let image = UIImage(systemName: "bicycle") else { fatalError() }

// Provide a text prompt to include with the image
let prompt = "What's in this picture?"

// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image, prompt)
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.

Metin ve birden fazla resimden metin oluşturma

Bu örneği denemeden önce bu kılavuzun Başlamadan önce bölümünü tamamladığınızdan emin olun.

Gemini API işlevini hem metin hem de birden fazla dosya (bu örnekte gösterildiği gibi resimler gibi) içeren çok modaliteli istemlerle çağırabilirsiniz. Bu aramalar için istemlerde medyayı destekleyen bir model (Gemini 2.0 Flash gibi) kullanmanız gerekir.

Giriş dosyaları ile ilgili koşulları ve önerileri inceleyin.

Yanıtı akış şeklinde mi (generateContentStream) yoksa sonucun tamamı oluşturulana kadar mı (generateContent) 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, metin ve birden fazla resim içeren çok modlu istem isteğinden oluşturulan metni aktarmak için generateContentStream() işlevinin 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")

guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }

// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"

// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image1, image2, prompt)
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

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

Bu örnekte, metin ve birden fazla resim içeren çok modlu istem isteğinden metin oluşturmak için generateContent() işlevinin 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")

guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }

// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"

// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image1, image2, prompt)
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.

Metin ve videodan metin oluşturma

Bu örneği denemeden önce bu kılavuzun Başlamadan önce bölümünü tamamladığınızdan emin olun.

Gemini API'ü, hem metin hem de video dosyaları içeren çoklu modal istemlerle (bu örnekte gösterildiği gibi) çağırabilirsiniz. Bu aramalar için istemlerde medyayı destekleyen bir model (Gemini 2.0 Flash gibi) kullanmanız gerekir.

Giriş dosyaları ile ilgili koşulları ve önerileri inceleyin.

Yanıtı akış şeklinde mi (generateContentStream) yoksa sonucun tamamı oluşturulana kadar mı (generateContent) 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, metin ve tek bir video içeren çoklu formatlı istem isteğinde oluşturulan metni aktarmak için generateContentStream() işlevinin 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")

// Provide the video as `Data` with the appropriate MIME type
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")

// Provide a text prompt to include with the video
let prompt = "What is in the video?"

// To stream generated text output, call generateContentStream with the text and video
let contentStream = try model.generateContentStream(video, prompt)
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, metin ve tek bir video içeren çok formatlı istem isteğinden metin oluşturmak için generateContent() işlevinin 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")

// Provide the video as `Data` with the appropriate MIME type.
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")

// Provide a text prompt to include with the video
let prompt = "What is in the video?"

// To generate text output, call generateContent with the text and video
let response = try await model.generateContent(video, prompt)
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.

Giriş dosyaları için koşullar ve öneriler

Aşağıdakiler hakkında bilgi edinmek için Vertex AI Gemini API için desteklenen giriş dosyaları ve gereksinimler başlıklı makaleyi inceleyin:

  • İstekte dosya sağlamayla ilgili farklı seçenekler
  • Desteklenen dosya türleri
  • Desteklenen MIME türleri ve bunların nasıl belirtileceği
  • Dosyalar ve çok modlu istekler için şartlar ve en iyi uygulamalar

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