Vertex AI in Firebase SDK टूल का इस्तेमाल करके, अपने ऐप्लिकेशन से Gemini API को कॉल करते समय, Gemini मॉडल को कई तरह के इनपुट के आधार पर टेक्स्ट जनरेट करने के लिए कहा जा सकता है. मल्टीमोडल प्रॉम्प्ट में कई मोड (या इनपुट के टाइप) शामिल हो सकते हैं. जैसे, इमेज के साथ टेक्स्ट, PDF, प्लैन-टेक्स्ट फ़ाइलें, वीडियो, और ऑडियो.
हर मल्टीमोडल अनुरोध में, आपको हमेशा यह जानकारी देनी होगी:
फ़ाइल का
mimeType
. इनपुट फ़ाइल के काम करने वाले MIME टाइप के बारे में जानें.फ़ाइल. फ़ाइल को इनलाइन डेटा के तौर पर (जैसा कि इस पेज पर दिखाया गया है) या उसके यूआरएल या यूआरआई का इस्तेमाल करके दिया जा सकता है.
हमारा सुझाव है कि कई मोड वाले प्रॉम्प्ट को टेस्ट करने और उनमें बदलाव करने के लिए, Vertex AI Studio का इस्तेमाल करें.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो Vertex AI in Firebase SDK टूल के लिए शुरुआती गाइड देखें. पक्का करें कि आपने ये सभी काम कर लिए हैं:
नया या मौजूदा Firebase प्रोजेक्ट सेट अप करें. इसमें, ब्लेज़ कीमत वाले प्लान का इस्तेमाल करना और ज़रूरी एपीआई चालू करना शामिल है.
अपने ऐप्लिकेशन को Firebase से कनेक्ट करें. इसमें, अपने ऐप्लिकेशन को रजिस्टर करना और अपने ऐप्लिकेशन में Firebase कॉन्फ़िगरेशन जोड़ना शामिल है.
SDK टूल जोड़ें और अपने ऐप्लिकेशन में Vertex AI सेवा और जनरेटिव मॉडल को शुरू करें.
अपने ऐप्लिकेशन को Firebase से कनेक्ट करने, SDK टूल जोड़ने, और Vertex AI सेवा और जनरेटिव मॉडल को शुरू करने के बाद, Gemini API को कॉल किया जा सकता है.
टेक्स्ट और एक इमेज से टेक्स्ट जनरेट करना टेक्स्ट और कई इमेज से टेक्स्ट जनरेट करना टेक्स्ट और वीडियो से टेक्स्ट जनरेट करना
मीडिया फ़ाइलों के सैंपल
अगर आपके पास पहले से मीडिया फ़ाइलें नहीं हैं, तो सार्वजनिक तौर पर उपलब्ध इन फ़ाइलों का इस्तेमाल किया जा सकता है:
इमेज:
gs://cloud-samples-data/generative-ai/image/scones.jpg
image/jpeg
MIME टाइप वाली.
यह इमेज देखें या डाउनलोड करें.PDF:
gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf
application/pdf
MIME टाइप के साथ.
यह PDF देखें या डाउनलोड करें.वीडियो:
gs://cloud-samples-data/video/animals.mp4
video/mp4
MIME टाइप वाला.
यह वीडियो देखें या डाउनलोड करें.ऑडियो:
gs://cloud-samples-data/generative-ai/audio/pixel.mp3
audio/mp3
MIME टाइप वाला.
इस ऑडियो को सुनें या डाउनलोड करें.
टेक्स्ट और एक इमेज से टेक्स्ट जनरेट करना
इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का शुरू करने से पहले वाला सेक्शन पूरा कर लिया हो.
Gemini API को मल्टीमोडल प्रॉम्प्ट के साथ कॉल किया जा सकता है. इन प्रॉम्प्ट में टेक्स्ट और एक फ़ाइल (जैसे, इस उदाहरण में दिखाई गई इमेज) दोनों शामिल होते हैं. इन कॉल के लिए, आपको ऐसे मॉडल का इस्तेमाल करना होगा जो प्रॉम्प्ट में मीडिया का इस्तेमाल कर सकता हो. जैसे, Gemini 1.5 Flash.
इनपुट फ़ाइलों के लिए ज़रूरी शर्तें और सुझाव ज़रूर देखें.
चुनें कि आपको जवाब स्ट्रीम करना है (generateContentStream
) या पूरा नतीजा जनरेट होने तक जवाब का इंतज़ार करना है (generateContent
).
स्ट्रीमिंग
मॉडल जनरेशन के पूरे नतीजे का इंतज़ार किए बिना, तेज़ी से इंटरैक्शन हासिल किए जा सकते हैं. इसके बजाय, कुछ नतीजों को मैनेज करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
इस उदाहरण में, मल्टीमोडल प्रॉम्प्ट अनुरोध से जनरेट किए गए टेक्स्ट को स्ट्रीम करने के लिए, generateContentStream()
का इस्तेमाल करने का तरीका बताया गया है. इस अनुरोध में टेक्स्ट और एक इमेज शामिल है:
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)
}
}
स्ट्रीमिंग के बिना
इसके अलावा, स्ट्रीम करने के बजाय पूरे नतीजे के लिए इंतज़ार किया जा सकता है. नतीजा, मॉडल के जनरेट करने की पूरी प्रोसेस पूरी होने के बाद ही दिखता है.
इस उदाहरण में, टेक्स्ट और एक इमेज वाले मल्टीमोडल प्रॉम्प्ट अनुरोध से टेक्स्ट जनरेट करने के लिए, generateContent()
का इस्तेमाल करने का तरीका बताया गया है:
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.")
अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से, Gemini का कोई मॉडल और जगह चुनने का तरीका जानें.
टेक्स्ट और कई इमेज से टेक्स्ट जनरेट करना
इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का शुरू करने से पहले वाला सेक्शन पूरा कर लिया हो.
Gemini API को मल्टीमोडल प्रॉम्प्ट के साथ कॉल किया जा सकता है. इन प्रॉम्प्ट में टेक्स्ट और कई फ़ाइलें, जैसे कि इमेज (जैसा कि इस उदाहरण में दिखाया गया है) शामिल होती हैं. इन कॉल के लिए, आपको ऐसे मॉडल का इस्तेमाल करना होगा जो प्रॉम्प्ट में मीडिया का इस्तेमाल कर सकता हो. जैसे, Gemini 1.5 Flash.
इनपुट फ़ाइलों के लिए ज़रूरी शर्तें और सुझाव ज़रूर पढ़ें.
चुनें कि आपको जवाब स्ट्रीम करना है (generateContentStream
) या पूरा नतीजा जनरेट होने तक जवाब का इंतज़ार करना है (generateContent
).
स्ट्रीमिंग
मॉडल जनरेशन के पूरे नतीजे का इंतज़ार किए बिना, तेज़ी से इंटरैक्शन हासिल किए जा सकते हैं. इसके बजाय, कुछ नतीजों को मैनेज करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
इस उदाहरण में, टेक्स्ट और कई इमेज वाले मल्टीमोडल प्रॉम्प्ट अनुरोध से जनरेट किए गए टेक्स्ट को स्ट्रीम करने के लिए, generateContentStream()
का इस्तेमाल करने का तरीका बताया गया है:
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)
}
}
स्ट्रीमिंग के बिना
इसके अलावा, स्ट्रीमिंग के बजाय पूरे नतीजे के लिए इंतज़ार किया जा सकता है. नतीजा सिर्फ़ तब दिखता है, जब मॉडल पूरी जनरेशन प्रोसेस पूरी कर लेता है.
इस उदाहरण में, टेक्स्ट और कई इमेज वाले मल्टीमोडल प्रॉम्प्ट अनुरोध से टेक्स्ट जनरेट करने के लिए, generateContent()
का इस्तेमाल करने का तरीका बताया गया है:
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.")
अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से, Gemini का कोई मॉडल और जगह चुनने का तरीका जानें.
टेक्स्ट और वीडियो से टेक्स्ट जनरेट करना
इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का शुरू करने से पहले वाला सेक्शन पूरा कर लिया हो.
Gemini API को ऐसे मल्टीमोडल प्रॉम्प्ट के साथ कॉल किया जा सकता है जिनमें टेक्स्ट और वीडियो फ़ाइल, दोनों शामिल हों (जैसा कि इस उदाहरण में दिखाया गया है). इन कॉल के लिए, आपको ऐसे मॉडल का इस्तेमाल करना होगा जो प्रॉम्प्ट में मीडिया का इस्तेमाल कर सकता हो. जैसे, Gemini 1.5 Flash.
इनपुट फ़ाइलों के लिए ज़रूरी शर्तें और सुझाव ज़रूर पढ़ें.
चुनें कि आपको जवाब स्ट्रीम करना है (generateContentStream
) या पूरा नतीजा जनरेट होने तक जवाब का इंतज़ार करना है (generateContent
).
स्ट्रीमिंग
मॉडल जनरेशन के पूरे नतीजे का इंतज़ार किए बिना, तेज़ी से इंटरैक्शन हासिल किए जा सकते हैं. इसके बजाय, कुछ नतीजों को मैनेज करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
इस उदाहरण में, मल्टीमोडल प्रॉम्प्ट अनुरोध से जनरेट किए गए टेक्स्ट को स्ट्रीम करने के लिए, generateContentStream()
का इस्तेमाल करने का तरीका बताया गया है. इस अनुरोध में टेक्स्ट और एक वीडियो शामिल है:
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)
}
}
स्ट्रीमिंग के बिना
इसके अलावा, स्ट्रीम करने के बजाय पूरे नतीजे के लिए इंतज़ार किया जा सकता है. नतीजा, मॉडल के जनरेट करने की पूरी प्रोसेस पूरी होने के बाद ही दिखता है.
इस उदाहरण में, टेक्स्ट और एक वीडियो वाले मल्टीमोडल प्रॉम्प्ट अनुरोध से टेक्स्ट जनरेट करने के लिए, generateContent()
का इस्तेमाल करने का तरीका बताया गया है:
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.")
अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से, Gemini का कोई मॉडल और जगह चुनने का तरीका जानें.
इनपुट फ़ाइलों के लिए ज़रूरी शर्तें और सुझाव
इनके बारे में जानने के लिए, Vertex AI Gemini API के लिए इस्तेमाल की जा सकने वाली इनपुट फ़ाइलें और ज़रूरी शर्तें देखें:
- अनुरोध में फ़ाइल देने के अलग-अलग विकल्प
- समर्थित फ़ाइल प्रकार
- इस्तेमाल किए जा सकने वाले MIME टाइप और उन्हें बताने का तरीका
- फ़ाइलों और अलग-अलग तरीकों से किए जाने वाले अनुरोधों के लिए ज़रूरी शर्तें और सबसे सही तरीके
तुम और क्या कर सकती हो?
- मॉडल को लंबे प्रॉम्प्ट भेजने से पहले, टोकन की गिनती करने का तरीका जानें.
- Cloud Storage for Firebase को सेट अप करें, ताकि आप अपने कई मोड वाले अनुरोधों में बड़ी फ़ाइलें शामिल कर सकें. साथ ही, प्रॉम्प्ट में फ़ाइलें उपलब्ध कराने के लिए, बेहतर तरीके से मैनेज किया जा सके. फ़ाइलों में इमेज, PDF, वीडियो, और ऑडियो शामिल हो सकते हैं.
- प्रोडक्शन के लिए तैयारी करना शुरू करें. इसमें, Gemini API को बिना अनुमति वाले क्लाइंट के गलत इस्तेमाल से बचाने के लिए, Firebase App Check सेट अप करना भी शामिल है.
Gemini API की अन्य सुविधाएं आज़माएं
- कई बार बातचीत करने की सुविधा (चैट) बनाएं.
- सिर्फ़ टेक्स्ट वाले प्रॉम्प्ट से टेक्स्ट जनरेट करें.
- टेक्स्ट और मल्टीमोडल प्रॉम्प्ट, दोनों से स्ट्रक्चर्ड आउटपुट (जैसे कि JSON) जनरेट करें.
- जनरेटिव मॉडल को बाहरी सिस्टम और जानकारी से कनेक्ट करने के लिए, फ़ंक्शन कॉल का इस्तेमाल करें.
कॉन्टेंट जनरेशन को कंट्रोल करने का तरीका जानें
- प्रॉम्प्ट के डिज़ाइन को समझना. इसमें, सबसे सही तरीके, रणनीतियां, और प्रॉम्प्ट के उदाहरण शामिल हैं.
- मॉडल पैरामीटर कॉन्फ़िगर करें, जैसे कि तापमान और ज़्यादा से ज़्यादा आउटपुट टोकन.
- सुरक्षा सेटिंग का इस्तेमाल करें, ताकि आपको ऐसे जवाब न मिलें जिन्हें नुकसान पहुंचाने वाला माना जा सकता है.
Gemini मॉडल के बारे में ज़्यादा जानें
अलग-अलग इस्तेमाल के उदाहरणों के लिए उपलब्ध मॉडल और उनके कोटा और कीमत के बारे में जानें.Vertex AI in Firebase के इस्तेमाल के अपने अनुभव के बारे में सुझाव/राय देना या शिकायत करना