Gemini API का इस्तेमाल करके, कई चरणों में फ़्रीफ़ॉर्म बातचीत बनाई जा सकती है. Vertex AI in Firebase SDK, बातचीत की स्थिति को मैनेज करके इस प्रोसेस को आसान बनाता है. इसलिए, generateContent()
(या generateContentStream()
) के उलट, आपको बातचीत का इतिहास खुद से सेव करने की ज़रूरत नहीं है.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो शुरू करने से जुड़ी गाइड पढ़ें. इसमें, Firebase प्रोजेक्ट सेट अप करने, अपने ऐप्लिकेशन को Firebase से कनेक्ट करने, SDK टूल जोड़ने, Vertex AI सेवा को शुरू करने, और GenerativeModel
इंस्टेंस बनाने का तरीका बताया गया है.
चैट प्रॉम्प्ट का अनुरोध भेजना
चैट जैसी कई बार की जाने वाली बातचीत बनाने के लिए, startChat()
को कॉल करके चैट शुरू करें. इसके बाद, उपयोगकर्ता को नया मैसेज भेजने के लिए sendMessage()
का इस्तेमाल करें. इससे मैसेज और जवाब, चैट के इतिहास में जुड़ जाएंगे.
बातचीत में मौजूद कॉन्टेंट से जुड़े role
के लिए, ये दो विकल्प होते हैं:
user
: वह भूमिका जो प्रॉम्प्ट देती है. यह वैल्यू,sendMessage()
को कॉल करने के लिए डिफ़ॉल्ट है. अगर कोई दूसरी भूमिका पास की जाती है, तो फ़ंक्शन एक अपवाद दिखाता है.model
: वह भूमिका जो जवाब देती है. इस भूमिका का इस्तेमाल,history
के साथstartChat()
को कॉल करते समय किया जा सकता है.
Swift
नए उपयोगकर्ता को मैसेज भेजने के लिए, startChat()
और sendMessage()
को कॉल किया जा सकता है:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Create a `GenerativeModel` instance 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.")
Kotlin
नए उपयोगकर्ता को मैसेज भेजने के लिए, startChat()
और sendMessage()
को कॉल किया जा सकता है:
// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
val generativeModel = Firebase.vertexAI.generativeModel("gemini-2.0-flash")
// Initialize the chat
val chat = generativeModel.startChat(
history = listOf(
content(role = "user") { text("Hello, I have 2 dogs in my house.") },
content(role = "model") { text("Great to meet you. What would you like to know?") }
)
)
val response = chat.sendMessage("How many paws are in my house?")
print(response.text)
Java
नए उपयोगकर्ता को मैसेज भेजने के लिए, startChat()
और sendMessage()
को कॉल किया जा सकता है:
ListenableFuture
दिखाते हैं.
// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
GenerativeModel gm = FirebaseVertexAI.getInstance()
.generativeModel("gemini-2.0-flash");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
// (optional) Create previous chat history for context
Content.Builder userContentBuilder = new Content.Builder();
userContentBuilder.setRole("user");
userContentBuilder.addText("Hello, I have 2 dogs in my house.");
Content userContent = userContentBuilder.build();
Content.Builder modelContentBuilder = new Content.Builder();
modelContentBuilder.setRole("model");
modelContentBuilder.addText("Great to meet you. What would you like to know?");
Content modelContent = userContentBuilder.build();
List<Content> history = Arrays.asList(userContent, modelContent);
// Initialize the chat
ChatFutures chat = model.startChat(history);
// Create a new user message
Content.Builder messageBuilder = new Content.Builder();
messageBuilder.setRole("user");
messageBuilder.addText("How many paws are in my house?");
Content message = messageBuilder.build();
// Send the message
ListenableFuture<GenerateContentResponse> response = chat.sendMessage(message);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
@Override
public void onSuccess(GenerateContentResponse result) {
String resultText = result.getText();
System.out.println(resultText);
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
}, executor);
Web
नए उपयोगकर्ता को मैसेज भेजने के लिए, startChat()
और sendMessage()
को कॉल किया जा सकता है:
import { initializeApp } from "firebase/app";
import { getVertexAI, getGenerativeModel } from "firebase/vertexai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Vertex AI service
const vertexAI = getVertexAI(firebaseApp);
// Create a `GenerativeModel` instance with a model that supports your use case
const model = getGenerativeModel(vertexAI, { model: "gemini-2.0-flash" });
async function run() {
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello, I have 2 dogs in my house." }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
generationConfig: {
maxOutputTokens: 100,
},
});
const msg = "How many paws are in my house?";
const result = await chat.sendMessage(msg);
const response = await result.response;
const text = response.text();
console.log(text);
}
run();
Dart
नए उपयोगकर्ता को मैसेज भेजने के लिए, startChat()
और sendMessage()
को कॉल किया जा सकता है:
import 'package:firebase_vertexai/firebase_vertexai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Initialize the Vertex AI service and create a `GenerativeModel` instance
// Specify a model that supports your use case
final model =
FirebaseVertexAI.instance.generativeModel(model: 'gemini-2.0-flash');
final chat = model.startChat();
// Provide a prompt that contains text
final prompt = [Content.text('Write a story about a magic backpack.')];
final response = await chat.sendMessage(prompt);
print(response.text);
अपने इस्तेमाल के उदाहरण और ऐप्लिकेशन के हिसाब से सही मॉडल और जगह चुनने का तरीका जानें.
जवाब स्ट्रीम करना
इस सैंपल को आज़माने से पहले, पक्का करें कि आपने इस गाइड का शुरू करने से पहले वाला सेक्शन पूरा कर लिया हो.
मॉडल जनरेशन के पूरे नतीजे का इंतज़ार किए बिना, तेज़ी से इंटरैक्शन हासिल किए जा सकते हैं. इसके बजाय, कुछ नतीजों को मैनेज करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
जवाब को स्ट्रीम करने के लिए, sendMessageStream()
को कॉल करें.
तुम और क्या कर सकती हो?
- मॉडल को लंबे प्रॉम्प्ट भेजने से पहले, टोकन की गिनती करने का तरीका जानें.
- Cloud Storage for Firebase को सेट अप करें ताकि आप अपने कई मोड वाले अनुरोधों में बड़ी फ़ाइलें शामिल कर सकें. साथ ही, प्रॉम्प्ट में फ़ाइलें उपलब्ध कराने के लिए, बेहतर तरीके से मैनेज किया जा सके. फ़ाइलों में इमेज, PDF, वीडियो, और ऑडियो शामिल हो सकते हैं.
- प्रोडक्शन के लिए तैयारी करना शुरू करें. इसमें, Gemini API को बिना अनुमति वाले क्लाइंट के गलत इस्तेमाल से बचाने के लिए, Firebase App Check सेट अप करना भी शामिल है. साथ ही, प्रोडक्शन की चेकलिस्ट को ज़रूर देखें.
अन्य सुविधाएं आज़माएं
- सिर्फ़ टेक्स्ट वाले प्रॉम्प्ट से टेक्स्ट जनरेट करें.
- इमेज, PDF, वीडियो, और ऑडियो जैसी अलग-अलग फ़ाइल टाइप के लिए प्रॉम्प्ट करके टेक्स्ट जनरेट करें.
- टेक्स्ट और मल्टीमोडल प्रॉम्प्ट, दोनों से स्ट्रक्चर्ड आउटपुट (जैसे कि JSON) जनरेट करें.
- टेक्स्ट प्रॉम्प्ट से इमेज जनरेट करें.
- जनरेटिव मॉडल को बाहरी सिस्टम और जानकारी से कनेक्ट करने के लिए, फ़ंक्शन कॉल का इस्तेमाल करें.
कॉन्टेंट जनरेशन को कंट्रोल करने का तरीका जानें
- प्रॉम्प्ट के डिज़ाइन को समझना. इसमें सबसे सही तरीके, रणनीतियां, और प्रॉम्प्ट के उदाहरण शामिल हैं.
- मॉडल पैरामीटर कॉन्फ़िगर करें. जैसे, तापमान और ज़्यादा से ज़्यादा आउटपुट टोकन (Gemini के लिए) या आसपेक्ट रेशियो और व्यक्ति जनरेशन (Imagen के लिए).
- सुरक्षा सेटिंग का इस्तेमाल करें, ताकि आपको ऐसे जवाब न मिलें जो नुकसान पहुंचा सकते हैं.
इस्तेमाल किए जा सकने वाले मॉडल के बारे में ज़्यादा जानें
अलग-अलग कामों के लिए उपलब्ध मॉडल, उनके कोटे, और कीमत के बारे में जानें.Vertex AI in Firebase के साथ अपने अनुभव के बारे में सुझाव/राय दें या शिकायत करें