किसी मॉडल को किए गए हर अनुरोध में, आपको एक प्रॉम्प्ट भेजना होता है. साथ ही, मॉडल के जवाब को कंट्रोल करने के लिए, स्कीमा और कॉन्फ़िगरेशन भी भेजे जा सकते हैं. Firebase AI Logic का इस्तेमाल करते समय, इस पूरी जानकारी को सीधे अपने क्लाइंट कोड से भेजा जा सकता है. इसके अलावा, सर्वर प्रॉम्प्ट टेंप्लेट का इस्तेमाल करके, इस जानकारी को सर्वर साइड पर भी सेट किया जा सकता है.
सर्वर प्रॉम्प्ट टेंप्लेट का इस्तेमाल करते समय, प्रॉम्प्ट, स्कीमा, और कॉन्फ़िगरेशन को सर्वर-साइड पर सेव किया जाता है. साथ ही, आपका ऐप्लिकेशन क्लाइंट से सर्वर को सिर्फ़ वह कुंजी (टेंप्लेट आईडी) पास करता है जो किसी खास टेंप्लेट के साथ-साथ उस टेंप्लेट के लिए ज़रूरी इनपुट को रेफ़रंस करती है.
सर्वर प्रॉम्प्ट टेंप्लेट का इस्तेमाल करते समय, प्रॉम्प्ट और कॉन्फ़िगरेशन को सर्वर-साइड पर सेव किया जाता है. साथ ही, ऐप्लिकेशन के कोडबेस में सिर्फ़ एक कुंजी (टेंप्लेट आईडी) दी जाती है. इस तरीके के कुछ फ़ायदे यहां दिए गए हैं:
क्लाइंट-साइड पर अपने प्रॉम्प्ट को दिखाने से सुरक्षा करना
ऐप्लिकेशन का नया वर्शन रिलीज़ किए बिना, प्रॉम्प्ट और कॉन्फ़िगरेशन अपडेट करना
इस गाइड में, सर्वर प्रॉम्प्ट टेंप्लेट का इस्तेमाल शुरू करने का तरीका बताया गया है.
खास जानकारी पर जाएं निर्देशों के बारे में ज़्यादा जानकारी पर जाएं
इस्तेमाल किए जा सकने वाले मॉडल और सुविधाएं
सर्वर प्रॉम्प्ट टेंप्लेट का इस्तेमाल, Gemini और Imagen मॉडल के साथ किया जा सकता है. हालांकि, Firebase AI Logic के साथ काम करने वाले Gemini Live मॉडल को छोड़कर.
उन सुविधाओं की सूची देखें जिनके लिए फ़िलहाल सहायता उपलब्ध नहीं है.
खास जानकारी
सर्वर प्रॉम्प्ट टेंप्लेट इस्तेमाल करने का बुनियादी वर्कफ़्लो यहां दिया गया है:
Firebase कंसोल में, निर्देशों के साथ दिए गए यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके टेंप्लेट बनाएं.
Firebase कंसोल की टेस्टिंग की सुविधा का इस्तेमाल करके, किसी असली अनुरोध में टेंप्लेट की जांच करें.
अपने ऐप्लिकेशन से टेंप्लेट को ऐक्सेस करें.
सर्वर प्रॉम्प्ट टेंप्लेट का बेसिक फ़ॉर्मैट
Firebase AI Logic के लिए, Firebase कंसोल आपको एक गाइडेड यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है. इसकी मदद से, टेंप्लेट का कॉन्टेंट तय किया जा सकता है.
सर्वर प्रॉम्प्ट टेंप्लेट, Dotprompt पर आधारित सिंटैक्स और फ़ॉर्मैट का इस्तेमाल करते हैं. ज़्यादा जानकारी के लिए, टेंप्लेट का फ़ॉर्मैट, सिंटैक्स, और उदाहरण देखें.
Gemini मॉडल से अनुरोध करने के उदाहरण के लिए, यहां सबसे ज़रूरी कॉम्पोनेंट दिए गए हैं:
---
model: 'gemini-2.5-flash'
---
{{role "system"}}
All output must be a clearly structured invoice document.
Use a tabular or clearly delineated list format for line items.
{{role "user"}}
Create an example customer invoice for a customer named {{customerName}}.
तीन डैश वाले सेक्शन में सबसे ऊपर, मॉडल का नाम होता है. साथ ही, इसमें मॉडल कॉन्फ़िगरेशन, इनपुट की पुष्टि या स्कीमा भी हो सकता है. यह जानकारी, अनुरोध में भेजी जा सकती है. इसे की-वैल्यू पेयर के तौर पर लिखा जाता है. इसे आम तौर पर YAML फ्रंटमैटर कहा जाता है.
टेंप्लेट के मुख्य हिस्से में प्रॉम्प्ट होता है. इसमें सिस्टम के निर्देश और इनपुट वैल्यू भी शामिल की जा सकती हैं. हालांकि, ऐसा करना ज़रूरी नहीं है. इसके लिए, Handlebars सिंटैक्स का इस्तेमाल किया जाता है.
कोड में टेंप्लेट का इस्तेमाल करना
|
इस पेज पर, सेवा देने वाली कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, Gemini API सेवा देने वाली कंपनी पर क्लिक करें. |
अपने कोड में टेंप्लेट का इस्तेमाल करने का तरीका यहां बताया गया है:
Swift
// ...
// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).templateGenerativeModel()
let customerName = "Jane"
do {
let response = try await model.generateContent(
// Specify your template ID
templateID: "my-first-template-v1-0-0",
// Provide the values for any input variables required by your template.
inputs: [
"customerName": customerName
]
)
if let text = response.text {
print("Response Text: \(text)")
}
} catch {
print("An error occurred: \(error)")
}
print("\n")
Kotlin
// ...
// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
val model = Firebase.googleAI.templateGenerativeModel()
val customerName = "Jane"
val response = model.generateContent(
// Specify your template ID
"my-first-template-v1-0-0",
// Provide the values for any input variables required by your template.
mapOf(
"customerName" to customerName
)
)
val text = response.text
println(text)
Java
// ...
// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
TemplateGenerativeModel generativeModel = FirebaseAI.getInstance().templateGenerativeModel();
TemplateGenerativeModelFutures model = TemplateGenerativeModelFutures.from(generativeModel);
String customerName = "Jane";
Future response = model.generateContent(
// Specify your template ID
"my-first-template-v1-0-0",
// Provide the values for any input variables required by your template.
mapOf("customerName", customerName)
);
addCallback(response,
new FutureCallback() {
public void onSuccess(GenerateContentResponse result) {
System.out.println(result.getText());
}
public void onFailure(Throwable t) {
reportError(t);
}
}
executor);
Web
// ...
// Initialize the Gemini Developer API backend service
const ai = getAI(app, { backend: new GoogleAIBackend() });
// Create a `TemplateGenerativeModel` instance
const model = getTemplateGenerativeModel(ai);
const customerName = 'Jane';
const result = await model.generateContent(
// Specify your template ID
'my-first-template-v1-0-0',
// Provide the values for any input variables required by your template
{
customerName: customerName,
}
);
const response = response.result;
const text = response.text();
Dart
Flutter प्लगिन में, सर्वर प्रॉम्प्ट टेंप्लेट की सुविधा जल्द ही उपलब्ध होगी!
Unity
Unity पैकेज में, सर्वर प्रॉम्प्ट टेंप्लेट की सुविधा जल्द ही उपलब्ध होगी!
ज़्यादा जानकारी
इस सेक्शन में, सर्वर प्रॉम्प्ट टेंप्लेट बनाने, उनकी जांच करने, और उन्हें इस्तेमाल करने के बारे में सिलसिलेवार निर्देश दिए गए हैं.
शुरू करने से पहले
अगर आपने पहले से ही ऐसा नहीं किया है, तो शुरुआत करने के लिए गाइड पढ़ें. इसमें बताया गया है कि Firebase प्रोजेक्ट कैसे सेट अप करें, अपने ऐप्लिकेशन को Firebase से कैसे कनेक्ट करें, एसडीके कैसे जोड़ें, चुने गए Gemini API प्रोवाइडर के लिए बैकएंड सेवा को कैसे शुरू करें, और
GenerativeModelइंस्टेंस कैसे बनाएं.पक्का करें कि आपके पास सर्वर प्रॉम्प्ट टेंप्लेट बनाने और मैनेज करने के लिए, ज़रूरी अनुमतियां हों. डिफ़ॉल्ट रूप से, ये सभी अनुमतियां मालिक की भूमिका में शामिल होती हैं.
अगर आपने Vertex AI Gemini API का इस्तेमाल किया है और आपके इस्तेमाल के उदाहरण के लिए, जगह के हिसाब से पाबंदियां लगाना ज़रूरी है, तो हम टेंप्लेट के लिए बेहतर वर्कफ़्लो का समर्थन करते हैं.
पहला चरण: सर्वर प्रॉम्प्ट टेंप्लेट बनाना
ज़्यादातर इस्तेमाल के मामलों के लिए, Firebase कंसोल में सर्वर प्रॉम्प्ट टेंप्लेट बनाए और मैनेज किए जाते हैं.
Firebase कंसोल में, Firebase AI Logic प्रॉम्प्ट टेंप्लेट टैब पर जाएं.
नया टेंप्लेट बनाएं पर क्लिक करें. इसके बाद, स्टार्टर टेंप्लेट का कोई विकल्प चुनें.
इन स्टार्टर टेंप्लेट में, इस्तेमाल के कुछ सामान्य उदाहरणों के लिए फ़ॉर्मैट और सिंटैक्स दिया गया है. हालांकि, कोई भी विकल्प चुनने के बाद, अपनी ज़रूरतों के हिसाब से टेंप्लेट में पूरी तरह से बदलाव किया जा सकता है.
इस गाइड में यह माना गया है कि आपने
Input + System Instructionsविकल्प चुना है.
टेंप्लेट के आइडेंटिफ़ायर डालें:
टेंप्लेट का नाम: यह टेंप्लेट का डिसप्ले नेम है. उदाहरण के लिए,
My First Template. यह सिर्फ़ Firebase इंटरफ़ेस में दिखता है. जैसे, Firebase कंसोल.टेंप्लेट आईडी: यह आपके Firebase प्रोजेक्ट में मौजूद टेंप्लेट के लिए यूनीक आईडी होना चाहिए. उदाहरण के लिए,
. आपको अपने ऐप्लिकेशन से किए गए अनुरोध में इस आईडी का रेफ़रंस देना होगा.my-first-template-v1-0-0हमारा सुझाव है कि आप अपने टेंप्लेट आईडी के लिए, वर्शनिंग सिस्टम का इस्तेमाल करें.
टेंप्लेट आईडी में ज़्यादा से ज़्यादा 63 वर्ण हो सकते हैं. इनमें अंग्रेज़ी के छोटे अक्षर, संख्याएं, और हाइफ़न शामिल हो सकते हैं.
ज़रूरत के मुताबिक, टेंप्लेट के कॉन्फ़िगरेशन (फ़्रंटमैटर) सेक्शन में बदलाव करें.
इस सेक्शन में कम से कम मॉडल का नाम शामिल होना चाहिए. जैसे:
--- model: 'gemini-2.5-flash' ---आपके पास मॉडल के कॉन्फ़िगरेशन और इनपुट/आउटपुट कंट्रोल वगैरह के बारे में भी जानकारी देने का विकल्प होता है. ज़्यादा जानकारी और विकल्पों के लिए, टेंप्लेट का फ़ॉर्मैट, सिंटैक्स, और उदाहरण देखें.
ज़रूरत के मुताबिक, टेंप्लेट के प्रॉम्प्ट और (लागू होने पर) सिस्टम के निर्देशों वाले सेक्शन में बदलाव करें.
इस सेक्शन में, मॉडल को भेजने के लिए कम से कम टेक्स्ट प्रॉम्प्ट शामिल होना चाहिए.
Write a story about a magic backpack.यहां दिए गए विकल्पों की तरह, ज़्यादा मुश्किल प्रॉम्प्ट भी बनाए जा सकते हैं. ज़्यादा जानकारी और विकल्पों के लिए, टेंप्लेट का फ़ॉर्मैट, सिंटैक्स, और उदाहरण देखें.
(ज़रूरी नहीं और लागू होने पर)
{{role "system"}}सिंटैक्स का इस्तेमाल करके, सिस्टम के निर्देशों के बारे में बताएं. साथ ही,{{role "user"}}सिंटैक्स का इस्तेमाल करके, टेक्स्ट प्रॉम्प्ट के बारे में बताएं.(वैकल्पिक) Handlebars सिंटैक्स (जैसे कि
{{customerName}}) का इस्तेमाल करके, इनपुट वैरिएबल तय करें. टेंप्लेट में डिफ़ॉल्ट वैल्यू दी जा सकती है. हालांकि, इस इनपुट वैरिएबल की वैल्यू आम तौर पर अनुरोध में पास की जाती है.
{{role "system"}} All output must be a clearly structured invoice document. Use a tabular or clearly delineated list format for line items. {{role "user"}} Create an example customer invoice for a customer named {{customerName}}.
दूसरा चरण: Firebase कंसोल में अपने टेंप्लेट की जांच करना
Firebase कंसोल में, आपको अपने टेंप्लेट को टेस्ट करने की सुविधा मिलती है. इस सुविधा से, आपको यह देखने में मदद मिलती है कि आपके टेंप्लेट का इस्तेमाल करने पर क्या होगा. इसमें अनुरोध का फ़ॉर्मैट और किसी असल अनुरोध का आउटपुट, दोनों शामिल हैं.
टेम्प्लेट सेव करें पर क्लिक करें, ताकि अपने टेंप्लेट को टेस्ट किया जा सके.
आपके पास बाद में, टेंप्लेट में बदलाव करने या उसे मिटाने का विकल्प होता है. सिर्फ़ टेंप्लेट आईडी को बाद में नहीं बदला जा सकता.
अगर आपके प्रॉम्प्ट में इनपुट वैरिएबल का इस्तेमाल किया गया है, तो टेस्ट इनपुट फ़ील्ड में टेस्ट वैल्यू शामिल करें. इस उदाहरण के लिए:
{ "customerName": "Jane" }अगर आपने अपने Firebase प्रोजेक्ट में एक से ज़्यादा Gemini API प्रोवाइडर चालू किए हैं, तो आपके पास यह चुनने का विकल्प होता है कि टेस्ट के अनुरोध के लिए किस प्रोवाइडर का इस्तेमाल किया जाए. अगर यह विकल्प कंसोल में दिखता है, तो
Gemini Developer APIयाVertex AI Gemini APIमें से कोई एक चुनें.ध्यान दें कि यह विकल्प सिर्फ़ उन अनुरोधों पर लागू होता है जिन्हें Firebase कंसोल टेस्टिंग की सुविधा के ज़रिए सबमिट किया गया है. आपके ऐप्लिकेशन से किए गए असली अनुरोध में, आपको अपनी चुनी गई Gemini API सेवा देने वाली कंपनी के बारे में बताना होगा. यह ठीक उसी तरह से किया जाता है जैसे किसी भी अनुरोध के लिए किया जाता है.
फ़ॉर्मैट किया गया टेस्ट का अनुरोध बनाएं बटन पर क्लिक करें.
स्क्रीन के दाईं ओर, फ़ॉर्मैट किया गया टेस्ट अनुरोध देखें. साथ ही, अपने टेंप्लेट के किसी भी फ़ील्ड में बदलाव करें.
जब आपको फ़ॉर्मैट किए गए टेस्ट के अनुरोध से संतुष्टि हो जाए, तो प्रॉम्प्ट टेस्ट चलाएं बटन पर क्लिक करें.
स्क्रीन के दाईं ओर मौजूद, टेस्ट रिस्पॉन्स की समीक्षा करें. इसके बाद, अपने किसी भी टेंप्लेट फ़ील्ड में बदलाव करें.
अगर आपको अपने ऐप्लिकेशन के कोड से टेंप्लेट को ऐक्सेस करना है, तो टेंप्लेट के सबसे ऊपर दाएं कोने में मौजूद,
लॉक आइकॉन पर क्लिक करके, टेंप्लेट को लॉक करें.बदलाव करने की सुविधा से बाहर निकलने के लिए, बंद करें पर क्लिक करें.
तीसरा चरण: अपने कोड से टेंप्लेट ऐक्सेस करना
|
इस पेज पर, सेवा देने वाली कंपनी के हिसाब से कॉन्टेंट और कोड देखने के लिए, Gemini API सेवा देने वाली कंपनी पर क्लिक करें. |
सर्वर प्रॉम्प्ट टेंप्लेट का इस्तेमाल करके किए गए अनुरोध, अन्य अनुरोधों की तरह ही दिखते हैं. हालांकि, इनमें ये बदलाव किए जाते हैं:
- ज़रूरत के मुताबिक,
templateGenerativeModelयाtemplateImagenModelका इस्तेमाल करें. - टेंप्लेट का आईडी दें.
- अपने टेंप्लेट के लिए ज़रूरी वैरिएबल इनपुट की वैल्यू दें.
ध्यान दें कि टेंप्लेट बनाने या अपडेट करने के बाद, आपको कुछ मिनट इंतज़ार करना पड़ सकता है. ऐसा इसलिए, ताकि टेंप्लेट को Firebase सर्वर पर लागू किया जा सके. इसके बाद ही, इसे अपने कोड से ऐक्सेस किया जा सकता है.
Swift
अपने अनुरोध में टेंप्लेट का इस्तेमाल करने के लिए, templateGenerativeModel इंस्टेंस (या templateImagenModel) बनाएं.
// ...
// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).templateGenerativeModel()
let customerName = "Jane"
do {
let response = try await model.generateContent(
// Specify your template ID
templateID: "my-first-template-v1-0-0",
// Provide the values for any input variables required by your template.
inputs: [
"customerName": customerName
]
)
if let text = response.text {
print("Response Text: \(text)")
}
} catch {
print("An error occurred: \(error)")
}
print("\n")
Kotlin
अपने अनुरोध में टेंप्लेट का इस्तेमाल करने के लिए, templateGenerativeModel इंस्टेंस (या templateImagenModel) बनाएं.
// ...
// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
val model = Firebase.googleAI.templateGenerativeModel()
val customerName = "Jane"
val response = model.generateContent(
// Specify your template ID
"my-first-template-v1-0-0",
// Provide the values for any input variables required by your template.
mapOf(
"customerName" to customerName
)
)
val text = response.text
println(text)
Java
अपने अनुरोध में टेंप्लेट का इस्तेमाल करने के लिए, templateGenerativeModel इंस्टेंस (या templateImagenModel) बनाएं.
// ...
// Initialize the Gemini Developer API backend service
// Create a `TemplateGenerativeModel` instance
TemplateGenerativeModel generativeModel = FirebaseAI.getInstance().templateGenerativeModel();
TemplateGenerativeModelFutures model = TemplateGenerativeModelFutures.from(generativeModel);
String customerName = "Jane";
Future response = model.generateContent(
// Specify your template ID
"my-first-template-v1-0-0",
// Provide the values for any input variables required by your template.
mapOf("customerName", customerName)
);
addCallback(response,
new FutureCallback() {
public void onSuccess(GenerateContentResponse result) {
System.out.println(result.getText());
}
public void onFailure(Throwable t) {
reportError(t);
}
}
executor);
Web
अपने अनुरोध में टेंप्लेट का इस्तेमाल करने के लिए, templateGenerativeModel इंस्टेंस (या templateImagenModel) बनाएं.
// ...
// Initialize the Gemini Developer API backend service
const ai = getAI(app, { backend: new GoogleAIBackend() });
// Create a `TemplateGenerativeModel` instance
const model = getTemplateGenerativeModel(ai);
const customerName = 'Jane';
const result = await model.generateContent(
// Specify your template ID
'my-first-template-v1-0-0',
// Provide the values for any input variables required by your template
{
customerName: customerName,
}
);
const response = response.result;
const text = response.text();
Dart
Flutter प्लगिन में, सर्वर प्रॉम्प्ट टेंप्लेट की सुविधा जल्द ही उपलब्ध होगी!
Unity
Unity पैकेज में, सर्वर प्रॉम्प्ट टेंप्लेट की सुविधा जल्द ही उपलब्ध होगी!
आगे क्या करना है?
सर्वर प्रॉम्प्ट टेंप्लेट इस्तेमाल करने के सबसे सही तरीकों और ज़रूरी बातों के बारे में जानें.
टेंप्लेट फ़ॉर्मैट और सिंटैक्स के साथ-साथ उदाहरणों के बारे में ज़्यादा जानें.
टेंप्लेट मैनेज करना. इनमें बदलाव करना, लॉक करना, और वर्शन कंट्रोल करना शामिल है.