Gemini API का इस्तेमाल करके, कई चरणों में फ़्रीफ़ॉर्म बातचीत बनाई जा सकती है. Vertex AI in Firebase SDK, बातचीत की स्थिति को मैनेज करके इस प्रोसेस को आसान बनाता है. इसलिए, generateContentStream()
या generateContent()
के उलट, आपको बातचीत का इतिहास खुद से सेव करने की ज़रूरत नहीं है.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो Vertex AI in Firebase SDK टूल के लिए शुरुआती गाइड को पूरा करें. पक्का करें कि आपने ये सभी काम कर लिए हैं:
नया या मौजूदा Firebase प्रोजेक्ट सेट अप करें. इसमें, ब्लेज़ कीमत वाले प्लान का इस्तेमाल करना और ज़रूरी एपीआई चालू करना शामिल है.
अपने ऐप्लिकेशन को Firebase से कनेक्ट करें. इसमें, अपने ऐप्लिकेशन को रजिस्टर करना और अपने ऐप्लिकेशन में Firebase कॉन्फ़िगरेशन जोड़ना शामिल है.
SDK टूल जोड़ें और अपने ऐप्लिकेशन में Vertex AI सेवा और जनरेटिव मॉडल को शुरू करें.
अपने ऐप्लिकेशन को Firebase से कनेक्ट करने, SDK टूल जोड़ने, और Vertex AI सेवा और जनरेटिव मॉडल को शुरू करने के बाद, Gemini API को कॉल किया जा सकता है.
चैट प्रॉम्प्ट का अनुरोध भेजना
चैट जैसी कई बारी वाली बातचीत बनाने के लिए, startChat()
को कॉल करके चैट शुरू करें. इसके बाद, उपयोगकर्ता को नया मैसेज भेजने के लिए, sendMessageStream()
(या sendMessage()
) का इस्तेमाल करें. इससे मैसेज और जवाब, चैट के इतिहास में जुड़ जाएंगे.
बातचीत में मौजूद कॉन्टेंट से जुड़े role
के लिए, ये दो विकल्प होते हैं:
user
: वह भूमिका जो प्रॉम्प्ट देती है. यह वैल्यू,sendMessageStream()
(याsendMessage()
) को कॉल करने के लिए डिफ़ॉल्ट है. अगर कोई दूसरी भूमिका पास की जाती है, तो फ़ंक्शन एक अपवाद दिखाता है.model
: वह भूमिका जो जवाब देती है. इस भूमिका का इस्तेमाल,history
के साथstartChat()
को कॉल करते समय किया जा सकता है.
चुनें कि आपको जवाब स्ट्रीम करना है (sendMessageStream
) या पूरा नतीजा जनरेट होने तक जवाब का इंतज़ार करना है (sendMessage
).
स्ट्रीमिंग
मॉडल जनरेशन के पूरे नतीजे का इंतज़ार किए बिना, तेज़ी से इंटरैक्शन हासिल किए जा सकते हैं. इसके बजाय, कुछ नतीजों को मैनेज करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
इस उदाहरण में, मॉडल से रिस्पॉन्स स्ट्रीम करने के लिए,
startChat()
और
sendMessageStream()
का इस्तेमाल करने का तरीका बताया गया है:
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)
}
}
स्ट्रीमिंग के बिना
इसके अलावा, स्ट्रीम करने के बजाय पूरे नतीजे के लिए इंतज़ार किया जा सकता है. नतीजा सिर्फ़ तब दिखता है, जब मॉडल, जनरेट करने की पूरी प्रोसेस पूरी कर लेता है.
इस उदाहरण में, नए उपयोगकर्ता को मैसेज भेजने के लिए,
startChat()
और
sendMessage()
का इस्तेमाल करने का तरीका बताया गया है:
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.")
अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से, Gemini का कोई मॉडल और जगह चुनने का तरीका जानें.
तुम और क्या कर सकती हो?
- मॉडल को लंबे प्रॉम्प्ट भेजने से पहले, टोकन की गिनती करने का तरीका जानें.
- Cloud Storage for Firebase को सेट अप करें, ताकि आप अपने कई मोड वाले अनुरोधों में बड़ी फ़ाइलें शामिल कर सकें. साथ ही, प्रॉम्प्ट में फ़ाइलें उपलब्ध कराने के लिए, बेहतर तरीके से मैनेज किया जा सके. फ़ाइलों में इमेज, PDF, वीडियो, और ऑडियो शामिल हो सकते हैं.
- प्रोडक्शन के लिए तैयारी करना शुरू करें. इसमें, Gemini API को बिना अनुमति वाले क्लाइंट के गलत इस्तेमाल से बचाने के लिए, Firebase App Check सेट अप करना भी शामिल है.
Gemini API की अन्य सुविधाएं आज़माएं
- सिर्फ़ टेक्स्ट वाले प्रॉम्प्ट से टेक्स्ट जनरेट करें.
- मल्टीमोडल प्रॉम्प्ट (जैसे, टेक्स्ट, इमेज, PDF, वीडियो, और ऑडियो) से टेक्स्ट जनरेट करें.
- टेक्स्ट और मल्टीमोडल प्रॉम्प्ट, दोनों से स्ट्रक्चर्ड आउटपुट (जैसे कि JSON) जनरेट करें.
- जनरेटिव मॉडल को बाहरी सिस्टम और जानकारी से कनेक्ट करने के लिए, फ़ंक्शन कॉल का इस्तेमाल करें.
कॉन्टेंट जनरेशन को कंट्रोल करने का तरीका जानें
- प्रॉम्प्ट के डिज़ाइन को समझना. इसमें, सबसे सही तरीके, रणनीतियां, और प्रॉम्प्ट के उदाहरण शामिल हैं.
- मॉडल पैरामीटर कॉन्फ़िगर करें, जैसे कि तापमान और ज़्यादा से ज़्यादा आउटपुट टोकन.
- सुरक्षा सेटिंग का इस्तेमाल करें, ताकि आपको ऐसे जवाब न मिलें जो नुकसान पहुंचा सकते हैं.
Gemini मॉडल के बारे में ज़्यादा जानें
अलग-अलग कामों के लिए उपलब्ध मॉडल और उनके कोटा और कीमत के बारे में जानें.Vertex AI in Firebase के इस्तेमाल के अपने अनुभव के बारे में सुझाव/राय देना या शिकायत करना