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. Çok modlu istemler, resimler, PDF'ler, düz metin dosyaları, video ve ses gibi birden fazla mod (veya giriş türü) içerebilir.
Her çok modlu isteğinde her zaman aşağıdakileri sağlamanız gerekir:
Dosyanın adı
mimeType
. Her giriş dosyasının desteklenen MIME türleri hakkında bilgi edinin.Dosya. Dosyayı satır içi veri olarak (bu sayfada gösterildiği gibi) veya URL'sini ya da URI'sini kullanarak sağlayabilirsiniz.
Ç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:
Blaze fiyatlandırma planını kullanma ve gerekli API'leri etkinleştirme dahil olmak üzere yeni veya mevcut bir Firebase projesi oluşturun.
Uygulamanızı kaydettirme ve Firebase yapılandırmanızı uygulamanıza ekleme dahil olmak üzere uygulamanızı Firebase'e bağlayın.
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:
Resim:
gs://cloud-samples-data/generative-ai/image/scones.jpg
image/jpeg
MIME türüne sahip.
Bu resmi görüntüleyin veya indirin.PDF:
gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf
application/pdf
MIME türüne sahip.
Bu PDF'yi görüntüleyin veya indirin.Video:
video/mp4
MIME türüne sahipgs://cloud-samples-data/video/animals.mp4
.
Bu videoyu görüntüleyin veya indirin.Ses:
gs://cloud-samples-data/generative-ai/audio/pixel.mp3
audio/mp3
MIME türüne sahip.
Bu sesi dinleyebilir veya indirebilirsiniz.
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 (ör. Gemini 1.5 Flash) 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.
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, metin ve tek bir resim içeren çok formatlı istem isteğinden oluşturulan metni aktarmak için generateContentStream()
ö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
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-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)
}
}
Akış olmadan
Alternatif olarak, aktarmak yerine sonucun tamamını bekleyebilirsiniz. Sonuç yalnızca model tüm oluşturma işlemini 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()
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
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-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 Gemini modeli ve isteğe bağlı olarak bir konum seçmeyi öğ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 (ör. Gemini 1.5 Flash) 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.
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, 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
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-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)
}
}
Akış olmadan
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
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-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 Gemini modeli ve isteğe bağlı olarak bir konum seçmeyi öğ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 (ör. Gemini 1.5 Flash) 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.
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, 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
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-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)
}
}
Akış olmadan
Alternatif olarak, aktarmak yerine sonucun tamamını bekleyebilirsiniz. Sonuç yalnızca model tüm oluşturma işlemini 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
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-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 Gemini modeli ve isteğe bağlı olarak bir konum seçmeyi öğ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?
- 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
- Çoklu katılımlı görüşmeler (sohbet) oluşturabilirsiniz.
- Yalnızca metin istemlerinden metin oluşturma
- Hem metin hem de çoklu modal istemlerden yapılandırılmış çıkış (JSON gibi) oluşturabilirsiniz.
- Üretken modelleri harici sistemlere ve bilgilere bağlamak için işlev çağırma özelliğini kullanın.
İçerik oluşturmayı nasıl kontrol edeceğinizi öğrenin
- En iyi uygulamalar, stratejiler ve örnek istemler dahil olmak üzere istem tasarımını anlama
- Sıcaklık ve maksimum çıkış jetonu gibi model parametrelerini yapılandırın.
- Zararlı olarak değerlendirilebilecek yanıt alma olasılığını ayarlamak için güvenlik ayarlarını kullanın.
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 verin