Firebase रिमोट कॉन्फ़िगरेशन की मदद से, Firebase ऐप्लिकेशन में Vertex AI को डाइनैमिक तौर पर अपडेट करें

Vertex AI in Firebase SDK टूल का इस्तेमाल करके, अपने ऐप्लिकेशन से Gemini API को कॉल करते समय, आपके अनुरोध में कई पैरामीटर होते हैं. ये पैरामीटर, जनरेटिव एआई के जवाबों को कंट्रोल करते हैं. आम तौर पर, इनमें मॉडल का नाम, मॉडल जनरेशन कॉन्फ़िगरेशन (ज़्यादा से ज़्यादा टोकन, तापमान वगैरह), सुरक्षा सेटिंग, सिस्टम के निर्देश, और प्रॉम्प्ट डेटा शामिल होता है.

ज़्यादातर मामलों में, आपको इन सेटिंग को मांग पर या ज़रूरत के हिसाब से बदलना होगा. ऐसा कई मामलों में करना पड़ सकता है:

  • नया ऐप्लिकेशन रिलीज़ किए बिना, जनरेटिव एआई मॉडल को अपडेट करें. पुराने वर्शन बंद होने से पहले, नए और बेहतर मॉडल के वर्शन पर अपग्रेड किया जा सकता है. इसके अलावा, उपयोगकर्ताओं की ज़रूरतों और एट्रिब्यूट के आधार पर, कम कीमत वाले या बेहतर परफ़ॉर्मेंस वाले मॉडल पर स्विच किया जा सकता है. इसके अलावा, खास उपयोगकर्ता सेगमेंट (जैसे, बीटा टेस्टर) के लिए, नए और बेहतर मॉडल को शर्तों के साथ डिप्लॉय किया जा सकता है.
  • मॉडल को ऐक्सेस करने की जगह सेट करें, ताकि वह आपके उपयोगकर्ताओं के करीब हो.
  • सिस्टम के अलग-अलग निर्देशों और प्रॉम्प्ट की A/B टेस्टिंग करें. इसके बाद, अपने उपयोगकर्ताओं के लिए, एक्सपेरिमेंट की सबसे अच्छी वैल्यू को धीरे-धीरे रोल आउट करें.
  • अपने ऐप्लिकेशन में जनरेटिव एआई की सुविधाओं को तुरंत दिखाने या छिपाने के लिए, सुविधा फ़्लैग का इस्तेमाल करें.

Firebase Remote Config, इन सभी कामों के साथ-साथ और भी काम करता है. इसकी मदद से, ज़रूरत के हिसाब से पैरामीटर वैल्यू अपडेट की जा सकती हैं. साथ ही, Firebase कंसोल में सेट की गई विशेषताओं से मैच करने वाले ऐप्लिकेशन इंस्टेंस के लिए, शर्त के मुताबिक पैरामीटर वैल्यू अपडेट की जा सकती हैं. इसके लिए, आपको अपने ऐप्लिकेशन का नया वर्शन रिलीज़ करने की ज़रूरत नहीं है.

इस गाइड में, इस्तेमाल के कुछ खास उदाहरण दिए गए हैं. साथ ही, जनरेटिव एआई वाले ऐप्लिकेशन में Remote Config को जोड़ने का तरीका भी बताया गया है.

कोड लागू करने पर जाएं

अपने ऐप्लिकेशन के साथ Firebase Remote Config का इस्तेमाल क्यों करना चाहिए?

Firebase Remote Config की मदद से, ऐप्लिकेशन को अपडेट किए बिना, ऐप्लिकेशन के काम करने के तरीके में डाइनैमिक तरीके से बदलाव किया जा सकता है. यह सुविधा, जनरेटिव एआई का इस्तेमाल करने वाले ऐप्लिकेशन के लिए काफ़ी कारगर है. इन ऐप्लिकेशन में, तेज़ी से बदलाव करना और उन्हें बेहतर बनाना ज़रूरी होता है.

जनरेटिव एआई ऐप्लिकेशन के साथ Remote Config के इस्तेमाल के ज़रूरी उदाहरण

हमारा सुझाव है कि इस्तेमाल के इन ज़रूरी उदाहरणों के लिए, Remote Config के साथ Vertex AI in Firebase का इस्तेमाल करें:

  • ऐप्लिकेशन अपडेट किए बिना, मॉडल के नए वर्शन पर अपग्रेड करना: ज़रूरत के हिसाब से मॉडल का नाम बदलने के लिए, Remote Config पैरामीटर का इस्तेमाल करें. इससे, अपने पसंदीदा Gemini मॉडल के नए वर्शन के उपलब्ध होने पर, उसे तुरंत अपग्रेड किया जा सकता है.
  • ऐप्लिकेशन अपडेट किए बिना, सिस्टम के निर्देशों और सुरक्षा सेटिंग को अपडेट करना: सिस्टम के निर्देशों और सुरक्षा सेटिंग को Remote Config पैरामीटर में सेव करें, ताकि डिप्लॉयमेंट के बाद समस्याएं मिलने पर, आप उन्हें ज़रूरत के हिसाब से बदल सकें.
  • जोखिम कम करना और एआई की सुरक्षा को लागू करना: अपने iOS और Android उपयोगकर्ताओं के लिए, जनरेटिव एआई से जुड़े बदलावों को सुरक्षित और धीरे-धीरे रिलीज़ करने के लिए, Remote Config रोल आउट का इस्तेमाल करें.

जनरेटिव एआई ऐप्लिकेशन की मदद से, Remote Config के लिए बेहतर और सुझाए गए इस्तेमाल के उदाहरण

Remote Config और Google Analytics की मदद से अपने ऐप्लिकेशन को इंस्ट्रूमेंट करने के बाद, ऐप्लिकेशन के इस्तेमाल के बेहतर उदाहरणों को एक्सप्लोर किया जा सकता है:

Firebase Remote Config की मदद से, अपने जनरेटिव एआई ऐप्लिकेशन को इंस्ट्रूमेंट करके, एआई की मदद से काम करने वाले ऐसे ऐप्लिकेशन बनाए जा सकते हैं जो उपयोगकर्ताओं के लिए बेहतरीन अनुभव देते हों. साथ ही, ये ऐप्लिकेशन आसानी से इस्तेमाल किए जा सकते हैं, सुरक्षित हैं, और कम खर्च में काम करते हैं.

अपने ऐप्लिकेशन में Firebase Remote Config जोड़ना

इस समाधान गाइड में, आपको Firebase Remote Config का इस्तेमाल करके, अपने Android ऐप्लिकेशन में पैरामीटर को डाइनैमिक तौर पर अपडेट करना होगा. यह ऐप्लिकेशन, Vertex AI in Firebase SDK टूल का इस्तेमाल करता है. आपको इनके बारे में जानकारी मिलेगी:

  • Firebase Remote Config से मॉडल के नाम और सिस्टम के निर्देश जैसे पैरामीटर फ़ेच और चालू करें.
  • डाइनैमिक तौर पर वापस पाए गए पैरामीटर का इस्तेमाल करने के लिए, अपने Gemini API कॉल अपडेट करें. इससे, ऐप्लिकेशन अपडेट किए बिना, अलग-अलग मॉडल के बीच स्विच किया जा सकता है या सिस्टम के निर्देशों में बदलाव किया जा सकता है.
  • ज़रूरत के मुताबिक मॉडल के व्यवहार और क्षमताओं में बदलाव करके, पैरामीटर को रिमोट से कंट्रोल करें.

ज़रूरी शर्तें

इस गाइड में यह माना गया है कि आपको वेब ऐप्लिकेशन डेवलप करने के लिए, JavaScript का इस्तेमाल करने के बारे में पता है. यह गाइड, फ़्रेमवर्क पर निर्भर नहीं करती. शुरू करने से पहले, पक्का करें कि आपने ये काम पूरे कर लिए हों:

  • Vertex AI in Firebase एसडीके टूल के लिए शुरुआती निर्देश देखें. पक्का करें कि आपने ये सभी काम कर लिए हैं:

    1. नया या मौजूदा Firebase प्रोजेक्ट सेट अप करें. इसमें, ब्लेज़ कीमत वाले प्लान का इस्तेमाल करना और ज़रूरी एपीआई चालू करना शामिल है.
    2. अपने ऐप्लिकेशन को Firebase से कनेक्ट करें. इसमें, अपने ऐप्लिकेशन को रजिस्टर करना और अपने ऐप्लिकेशन में Firebase कॉन्फ़िगरेशन जोड़ना शामिल है.
    3. SDK टूल जोड़ें और अपने ऐप्लिकेशन में Vertex AI सेवा और जनरेटिव मॉडल को शुरू करें.
  • अपने प्रोजेक्ट में Google Analytics चालू करें और उसका एसडीके अपने ऐप्लिकेशन में जोड़ें. यह ज़रूरी है, ताकि क्लाइंट डिवाइस की जगह की जानकारी के आधार पर, सेवा और मॉडल की जगह की जानकारी सेट करने जैसी शर्तों के हिसाब से टारगेटिंग की जा सके.

पहला चरण: Firebase कंसोल में पैरामीटर वैल्यू सेट करना

क्लाइंट Remote Config टेंप्लेट बनाएं और ऐप्लिकेशन में फ़ेच और इस्तेमाल करने के लिए, पैरामीटर और वैल्यू कॉन्फ़िगर करें.

  1. Firebase कंसोल खोलें और नेविगेशन मेन्यू में, रन करें को बड़ा करें और Remote Config को चुनें.
  2. पक्का करें कि Remote Config पेज पर सबसे ऊपर मौजूद, क्लाइंट/सर्वर सिलेक्टर से क्लाइंट चुना गया हो.
    • अगर आपने Remote Config क्लाइंट टेंप्लेट का इस्तेमाल पहले कभी नहीं किया है, तो कॉन्फ़िगरेशन बनाएं पर क्लिक करें. अपना पहला पैरामीटर बनाएं पैनल दिखता है.
    • अगर आपने पहले भी Remote Config टेंप्लेट का इस्तेमाल किया है, तो पैरामीटर जोड़ें पर क्लिक करें.
  3. इन Remote Config पैरामीटर को तय करें:

    पैरामीटर का नाम जानकारी टाइप डिफ़ॉल्ट वैल्यू
    model_name मॉडल का नाम. अपने कोड में इस्तेमाल करने के लिए, मॉडल के नामों की अप-टू-डेट सूचियां देखने के लिए, मॉडल के उपलब्ध नाम देखें. स्ट्रिंग gemini-1.5-flash
    system_instructions सिस्टम के निर्देश, "प्रीऐबल" की तरह होते हैं. इन्हें मॉडल के लिए, असली उपयोगकर्ता से मिलने वाले अन्य निर्देशों से पहले जोड़ा जाता है. इससे मॉडल के व्यवहार पर असर पड़ता है. यह असर, खास ज़रूरतों और इस्तेमाल के उदाहरणों के आधार पर तय होता है. स्ट्रिंग You are a helpful assistant who knows everything there is to know about Firebase!
    prompt जनरेटिव एआई की सुविधा के साथ इस्तेमाल करने के लिए डिफ़ॉल्ट प्रॉम्प्ट. स्ट्रिंग I am a developer who wants to know more about Firebase!
    vertex_location Vertex AI सेवा को चलाने और मॉडल को ऐक्सेस करने के लिए, जगह की जानकारी को कंट्रोल करें. हालांकि, ऐसा करना ज़रूरी नहीं है. Google Analytics की मदद से पता लगाई गई क्लाइंट की जगह के आधार पर, इस विकल्प को कॉन्फ़िगर करने के लिए शर्तें सेट की जा सकती हैं. स्ट्रिंग us-central1
  4. पैरामीटर जोड़ने के बाद, बदलाव पब्लिश करें पर क्लिक करें. अगर यह नया Remote Config टेंप्लेट नहीं है, तो बदलावों की समीक्षा करें और फिर से बदलाव पब्लिश करें पर क्लिक करें.

दूसरा चरण: Remote Config SDK टूल जोड़ना और उसे शुरू करना

Remote Config SDK टूल जोड़ें और उसे शुरू करें:

  1. अपना कोड किसी टेक्स्ट एडिटर में खोलें और Remote Config इंपोर्ट करें:

    import { getRemoteConfig } from 'firebase/remote-config';
    
  2. अपने मुख्य फ़ंक्शन में, Vertex AI in Firebase SDK टूल के लिए Firebase ऐप्लिकेशन को शुरू करने के बाद, Remote Config को शुरू करें:

      // Initialize Remote Config and get a reference to the service
      const remoteConfig = getRemoteConfig(app);
    
  3. फ़ेच करने के लिए कम से कम इंटरवल सेट करें. इस उदाहरण में, फ़ेच करने के लिए डिफ़ॉल्ट इंटरवल 3600 सेकंड है. हालांकि, हमारा सुझाव है कि डेवलपमेंट के दौरान, अपने कोड में फ़ेच करने के लिए कम से कम इंटरवल सेट करें.

    remoteConfig.settings.minimumFetchIntervalMillis = 3600000;
    

तीसरा चरण: इन-ऐप्लिकेशन पैरामीटर वैल्यू सेट करना

आपको Remote Config ऑब्जेक्ट में, ऐप्लिकेशन में मौजूद डिफ़ॉल्ट पैरामीटर वैल्यू सेट करनी चाहिए, ताकि क्लाइंट नेटवर्क के ऐक्सेस में रुकावट आने पर और/या बैकएंड पर कोई वैल्यू कॉन्फ़िगर न होने पर, आपका ऐप्लिकेशन Remote Config बैकएंड से कनेक्ट होने से पहले काम कर सके.

इस उदाहरण में, मॉडल के नाम, सिस्टम के निर्देशों, उपयोगकर्ता के प्रॉम्प्ट, और Vertex AI की जगह के लिए, मैन्युअल रूप से डिफ़ॉल्ट वैल्यू सेट की गई हैं:

// Set default Remote Config parameter values
remoteConfig.defaultConfig = {
  model_name: 'gemini-1.5-flash',
  system_instructions:
    'You are a helpful assistant who knows everything there is to know about Firebase!',
  prompt: 'I am a developer who wants to know more about Firebase!',
  vertex_location: 'us-central1',
};

चौथा चरण: वैल्यू फ़ेच करना और उन्हें चालू करना

  1. अपने इंपोर्ट में getValue और fetchAndActivate जोड़ें:

    import { getValue, fetchAndActivate } from 'firebase/remote-config';
    
  2. डिफ़ॉल्ट Remote Config वैल्यू कॉन्फ़िगर करने के लिए जोड़े गए कोड के बाद, कॉन्फ़िगरेशन को फ़ेच और चालू करें. इसके बाद, modelName, systemInstructions, prompt, और vertexLocation कॉन्स्टेंट को वैल्यू असाइन करें.

    // Fetch and activate Remote Config.
    try {
      await fetchAndActivate(remoteConfig);
    } catch(err) {
      console.error('Remote Config fetch failed', err);
    }
    
    console.log('Remote Config fetched.');
    
    // Assign Remote Config values.
    const modelName = getValue(remoteConfig, 'model_name').asString();
    const systemInstructions = getValue(remoteConfig, 'system_instructions').asString();
    const prompt = getValue(remoteConfig, 'prompt').asString();
    const vertexLocation = getValue(remoteConfig, 'vertex_location').asString();
    

पांचवां चरण: Remote Config वैल्यू का इस्तेमाल करने के लिए, Vertex AI कॉल को अपडेट करना

अब Remote Config पूरी तरह से कॉन्फ़िगर हो गया है. इसलिए, अपने कोड को अपडेट करें, ताकि हार्ड कोड की गई वैल्यू को Remote Config से ली गई वैल्यू से बदला जा सके. उदाहरण के लिए, अगर Firebase SDK टूल में Vertex AI का इस्तेमाल करके, Gemini API का इस्तेमाल शुरू करें में दिए गए उदाहरण का इस्तेमाल किया जा रहा था, तो उसे इस तरह अपडेट करें:

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
const vertexAI = getVertexAI(firebaseApp, { location: vertexLocation });

// 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
const model = getGenerativeModel(vertexAI, {
  model: modelName,
  systemInstruction: systemInstruction
});

// Wrap in an async function so you can use await
async function run() {
  // Provide a prompt that contains text
  const userPrompt = prompt;

  // To generate text output, call generateContent with the text input
  const result = await model.generateContent(userPrompt);

  const response = result.response;
  const text = response.text();
  console.log(text);
}

छठा चरण: ऐप्लिकेशन चलाना

ऐप्लिकेशन चलाएं और पुष्टि करें कि वह काम कर रहा है. Firebase कंसोल में Remote Config पेज पर जाकर, अपने कॉन्फ़िगरेशन में बदलाव करें. इसके बाद, बदलावों को पब्लिश करें और नतीजे की पुष्टि करें.

अगले चरण

  • Remote Config के बारे में और जानें.
  • टारगेटिंग चालू करने के लिए, अपने कोड में Google Analytics जोड़ें.