Cloud Functions और Vertex AI के साथ सर्वर-साइड रिमोट कॉन्फ़िगरेशन का इस्तेमाल करें

इस गाइड में, दूसरे जनरेशन के Cloud Functions के साथ सर्वर-साइड Remote Config का इस्तेमाल शुरू करने का तरीका बताया गया है. इससे, Vertex AI Gemini API को सर्वर-साइड कॉल किए जा सकते हैं.

इस ट्यूटोरियल में, चैटबॉट जैसे फ़ंक्शन में Remote Config जोड़ा जाएगा. यह फ़ंक्शन, उपयोगकर्ता के सवालों के जवाब देने के लिए Gemini मॉडल का इस्तेमाल करता है. Remote Config, Gemini API इनपुट को मैनेज करेगा. इनमें वह प्रॉम्प्ट भी शामिल है जिसे उपयोगकर्ता की आने वाली क्वेरी के आगे जोड़ा जाएगा. साथ ही, इन इनपुट को Firebase कंसोल से मांग पर अपडेट किया जा सकता है. फ़ंक्शन को टेस्ट और डीबग करने के लिए, Firebase Local Emulator Suite का इस्तेमाल करें. इसके काम करने की पुष्टि करने के बाद, Google Cloud पर डिप्लॉय और टेस्ट करें.

पाने की ज़रूरी शर्तें पूरी हैं.

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

इस गाइड में यह माना गया है कि आपको ऐप्लिकेशन बनाने के लिए, JavaScript का इस्तेमाल करने का पता है.

Firebase प्रोजेक्ट सेट अप करना

अगर आपके पास पहले से कोई Firebase प्रोजेक्ट नहीं है, तो:

  1. Firebase console में साइन इन करें.

  2. प्रोजेक्ट बनाएं पर क्लिक करें. इसके बाद, इनमें से किसी एक विकल्प का इस्तेमाल करें:

    • पहला विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, नए प्रोजेक्ट का नाम डालकर, नया Firebase प्रोजेक्ट (और उसके मौजूदा Google Cloud प्रोजेक्ट अपने-आप) बनाएं.
    • दूसरा विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, ड्रॉप-डाउन मेन्यू से अपने Google Cloud प्रोजेक्ट का नाम चुनकर, किसी मौजूदा Google Cloud प्रोजेक्ट में "Firebase जोड़ें".
  3. जब कहा जाए, तब आपको इस समाधान का इस्तेमाल करने के लिए, Google Analytics को सेट अप करने की ज़रूरत नहीं है.

  4. अपना प्रोजेक्ट बनाने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.

अगर आपके पास पहले से ही Firebase प्रोजेक्ट है, तो:

अपने डेवलपमेंट एनवायरमेंट को कॉन्फ़िगर करें पर जाएं.

अपने डेवलपमेंट एनवायरमेंट को कॉन्फ़िगर करना

फ़ंक्शन लिखने के लिए, आपको Node.js एनवायरमेंट की ज़रूरत होगी. साथ ही, Cloud Functions रनटाइम में फ़ंक्शन डिप्लॉय करने के लिए, आपको Firebase सीएलआई की ज़रूरत होगी.

  1. Node.js और npm इंस्टॉल करें.

    Node.js और npm इंस्टॉल करने के लिए, हमारा सुझाव है कि आप Node वर्शन मैनेजर का इस्तेमाल करें.

  2. अपने पसंदीदा तरीके का इस्तेमाल करके, Firebase सीएलआई इंस्टॉल करें. उदाहरण के लिए, npm का इस्तेमाल करके सीएलआई इंस्टॉल करने के लिए, यह कमांड चलाएं:

    npm install -g firebase-tools@latest
    

    यह कमांड, दुनिया भर में उपलब्ध firebase कमांड इंस्टॉल करता है. अगर यह कमांड काम नहीं करता है, तो आपको npm की अनुमतियां बदलनी पड़ सकती हैं.

    firebase-tools के नए वर्शन पर अपडेट करने के लिए, वही कमांड फिर से चलाएं.

  3. firebase-functions और firebase-admin इंस्टॉल करें. इसके बाद, उन्हें अपने package.json में सेव करने के लिए, --save का इस्तेमाल करें:

    npm install firebase-functions@latest firebase-admin@latest --save
    

अब इस समाधान को लागू करने के लिए आगे बढ़ें.

लागू करना

Remote Config और Vertex AI की मदद से, अपने दूसरे जनरेशन का Cloud Functions बनाने, उसकी जांच करने, और उसे डिप्लॉय करने के लिए, यह तरीका अपनाएं:

  1. Google Cloud कंसोल में, Vertex AI के लिए सुझाए गए एपीआई चालू करें.
  2. अपना प्रोजेक्ट शुरू करें और Node डिपेंडेंसी इंस्टॉल करें.
  3. अपने Admin SDK सेवा खाते के लिए आईएएम अनुमतियां कॉन्फ़िगर करें और अपनी कुंजी सेव करें.
  4. फ़ंक्शन बनाएं.
  5. सर्वर के हिसाब से Remote Config टेंप्लेट बनाएं.
  6. अपना फ़ंक्शन डिप्लॉय करें और Firebase Local Emulator Suite में उसकी जांच करें.
  7. अपने फ़ंक्शन को Google Cloud पर डिप्लॉय करें.

पहला चरण: Google Cloud कंसोल में, Vertex AI के सुझाए गए एपीआई चालू करना

  1. Google Cloud कंसोल खोलें और जब कहा जाए, तब अपना प्रोजेक्ट चुनें.
  2. कंसोल में सबसे ऊपर मौजूद खोजें फ़ील्ड में, Vertex AI डालें और Vertex AI के नतीजे के तौर पर दिखने का इंतज़ार करें.
  3. Vertex AI चुनें. Vertex AI डैशबोर्ड दिखेगा.
  4. सभी सुझाए गए एपीआई चालू करें पर क्लिक करें.

    एपीआई चालू होने में कुछ समय लग सकता है. चालू होने की प्रोसेस पूरी होने तक, पेज को चालू और खुला रखें.

  5. अगर बिलिंग की सुविधा चालू नहीं है, तो आपसे Cloud Billing खाता जोड़ने या लिंक करने के लिए कहा जाएगा. बिलिंग खाता चालू करने के बाद, Vertex AI डैशबोर्ड पर वापस जाएं और पुष्टि करें कि सुझाए गए सभी एपीआई चालू हैं.

दूसरा चरण: अपना प्रोजेक्ट शुरू करना और Node डिपेंडेंसी इंस्टॉल करना

  1. अपने कंप्यूटर पर टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जहां आपको फ़ंक्शन बनाना है.
  2. Firebase में लॉग इन करें:

    firebase login
    
  3. Cloud Functions for Firebase को शुरू करने के लिए, यह कमांड चलाएं:

    firebase init functions
    
  4. किसी मौजूदा प्रोजेक्ट का इस्तेमाल करें को चुनें और अपना प्रोजेक्ट आईडी बताएं.

  5. इस्तेमाल करने के लिए भाषा चुनने के लिए कहा जाने पर, JavaScript चुनें और Enter दबाएं.

  6. अन्य सभी विकल्पों के लिए, डिफ़ॉल्ट चुनें.

    मौजूदा डायरेक्ट्री में functions डायरेक्ट्री बनाई जाती है. इसमें आपको एक index.js फ़ाइल मिलेगी, जिसका इस्तेमाल अपने फ़ंक्शन को बनाने के लिए किया जाएगा. साथ ही, एक node_modules डायरेक्ट्री मिलेगी, जिसमें आपके फ़ंक्शन की डिपेंडेंसी शामिल होंगी. इसके अलावा, एक package.json फ़ाइल मिलेगी, जिसमें पैकेज की डिपेंडेंसी शामिल होंगी.

  7. Admin SDK और Vertex AI पैकेज जोड़ने के लिए, ये निर्देश चलाएं. साथ ही, --save का इस्तेमाल करके पक्का करें कि ये पैकेज आपकी package.json फ़ाइल में सेव हो गए हैं:

    cd functions
    npm install firebase-admin@latest @google-cloud/vertexai --save
    

आपकी functions/package.json फ़ाइल अब इस तरह दिखनी चाहिए. इसमें, सबसे नए वर्शन की जानकारी दी गई है:

  {
    "name": "functions",
    "description": "Cloud Functions for Firebase",
    "scripts": {
      "serve": "firebase emulators:start --only functions",
      "shell": "firebase functions:shell",
      "start": "npm run shell",
      "deploy": "firebase deploy --only functions",
      "logs": "firebase functions:log"
    },
    "engines": {
      "node": "20"
    },
    "main": "index.js",
    "dependencies": {
      "@google-cloud/vertexai": "^1.1.0",
      "firebase-admin": "^12.1.0",
      "firebase-functions": "^5.0.0"
    },
    "devDependencies": {
      "firebase-functions-test": "^3.1.0"
    },
    "private": true
  }

ध्यान दें कि अगर ESLint का इस्तेमाल किया जा रहा है, तो आपको एक छंद दिखेगा. इसमें वह शामिल होगा. इसके अलावा, पक्का करें कि नोड इंजन का वर्शन, Node.js के इंस्टॉल किए गए वर्शन और Google Cloud पर चलाए जाने वाले वर्शन से मेल खाता हो. उदाहरण के लिए, अगर आपके package.json में engines स्टैंश को Node वर्शन 18 के तौर पर कॉन्फ़िगर किया गया है और आप Node.js 20 का इस्तेमाल कर रहे हैं, तो फ़ाइल को 20 का इस्तेमाल करने के लिए अपडेट करें:

  "engines": {
    "node": "20"
  },

तीसरा चरण: अपने Admin SDK सेवा खाते के लिए IAM अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना

इस समाधान में, आपको अपना फ़ंक्शन चलाने के लिए, Firebase Admin SDK सेवा खाते का इस्तेमाल करना होगा.

  1. Google Cloud console में, IAM और एडमिन पेज खोलें. इसके बाद, Admin SDK सेवा खाते (firebase-adminsdk नाम का) का पता लगाएं.
  2. खाता चुनें और मूल रकम में बदलाव करें पर क्लिक करें. ऐसा करने पर, 'ऐक्सेस में बदलाव करें' पेज दिखेगा.
  3. अन्य भूमिका जोड़ें पर क्लिक करें. इसके बाद, Remote Config दर्शक को चुनें.
  4. कोई और भूमिका जोड़ें पर क्लिक करें. इसके बाद, एआई प्लैटफ़ॉर्म डेवलपर चुनें.
  5. कोई और भूमिका जोड़ें पर क्लिक करें. इसके बाद, Vertex AI उपयोगकर्ता चुनें.
  6. अन्य भूमिका जोड़ें पर क्लिक करें. इसके बाद, Cloud Run Invoker चुनें.
  7. सेव करें पर क्लिक करें.

इसके बाद, Admin SDK सेवा खाते के क्रेडेंशियल एक्सपोर्ट करें और उन्हें अपने GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल में सेव करें.

  1. Google Cloud कंसोल में, क्रेडेंशियल पेज खोलें.
  2. जानकारी पेज खोलने के लिए, Admin SDK सेवा खाते पर क्लिक करें.
  3. बटन पर क्लिक करें.
  4. कुंजी जोड़ें > नई कुंजी बनाएं पर क्लिक करें.
  5. पक्का करें कि की टाइप के तौर पर JSON चुना गया हो. इसके बाद, बनाएं पर क्लिक करें.
  6. कुंजी को अपने कंप्यूटर पर सुरक्षित जगह पर डाउनलोड करें.
  7. अपने टर्मिनल से, पासकोड को एनवायरमेंट वैरिएबल के तौर पर एक्सपोर्ट करें:

    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    

चौथा चरण: फ़ंक्शन बनाना

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

  1. अपने कोड बेस में, functions/index.js को टेक्स्ट एडिटर या IDE में खोलें.
  2. मौजूदा कॉन्टेंट मिटाएं. इसके बाद, Admin SDK, Remote Config, और Vertex AI SDK टूल जोड़ें. साथ ही, फ़ाइल में यह कोड चिपकाकर ऐप्लिकेशन को शुरू करें:

    const { onRequest } = require("firebase-functions/v2/https");
    const logger = require("firebase-functions/logger");
    
    const { initializeApp } = require("firebase-admin/app");
    const { VertexAI } = require('@google-cloud/vertexai');
    const { getRemoteConfig } = require("firebase-admin/remote-config");
    
    // Set and check environment variables.
    const project = process.env.GCLOUD_PROJECT;
    
    // Initialize Firebase.
    const app = initializeApp();
    
  3. डिफ़ॉल्ट वैल्यू कॉन्फ़िगर करें. अगर आपका फ़ंक्शन Remote Config सर्वर से कनेक्ट नहीं हो पाता है, तो वह इन वैल्यू का इस्तेमाल करेगा. यह समाधान, textModel, generationConfig, safetySettings, textPrompt, और location को Remote Config पैरामीटर के तौर पर कॉन्फ़िगर करता है. ये पैरामीटर, Remote Config पैरामीटर से मेल खाते हैं. इन पैरामीटर को इस गाइड में आगे कॉन्फ़िगर किया जाएगा. इन पैरामीटर के बारे में ज़्यादा जानकारी के लिए, Vertex AI Node.js क्लाइंट देखें.

    इसके अलावा, आपके पास एक पैरामीटर को कॉन्फ़िगर करने का विकल्प भी होता है. इससे यह कंट्रोल किया जा सकता है कि Vertex AI Gemini API (इस उदाहरण में, vertex_enabled नाम का पैरामीटर) को ऐक्सेस किया जाए या नहीं. यह सेटअप, आपके फ़ंक्शन की जांच करते समय मददगार हो सकता है. यहां दिए गए कोड स्निपेट में, यह वैल्यू false पर सेट है. इससे, बुनियादी फ़ंक्शन के डिप्लॉयमेंट की जांच करते समय, Vertex AI का इस्तेमाल नहीं किया जाएगा. इसे true पर सेट करने पर, Vertex AI Gemini API चालू हो जाएगा.

    // Define default (fallback) parameter values for Remote Config.
    const defaultConfig = {
    
      // Default values for Vertex AI.
      model_name: "gemini-1.5-flash-preview-0514",
      generation_config: [{
        "stopSequences": [], "temperature": 0.7,
        "maxOutputTokens": 64, "topP": 0.1, "topK": 20
      }],
      prompt: "I'm a developer who wants to learn about Firebase and you are a \
        helpful assistant who knows everything there is to know about Firebase!",
      safety_settings: [{
        "category":
          "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT",
        "threshold": "HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE"
      }],
      location: 'us-central1',
    
      // Disable Vertex AI Gemini API access for testing.
      vertex_enabled: false
    };
    
  4. फ़ंक्शन बनाएं और सर्वर-साइड Remote Config सेट अप करें:

    // Export the function.
    exports.generateWithVertex = onRequest(async (request, response) => {
    
      try {
    
        // Set up Remote Config.
        const rc = getRemoteConfig(app);
    
        // Get the Remote Config template and assign default values.
        const template = await rc.getServerTemplate({
          defaultConfig: defaultConfig
        });
    
        // Add the template evaluation to a constant.
        const config = template.evaluate();
    
        // Obtain values from Remote Config.
        const textModel = config.getString("model_name") ||
            defaultConfig.model_name;
        const textPrompt = config.getString("prompt") || defaultConfig.prompt;
        const generationConfig = config.getString("generation_config") ||
            defaultConfig.generation_config;
        const safetySettings = config.getString("safety_settings") ||
            defaultConfig.safety_settings;
        const location = config.getString("location") ||
            defaultConfig.location;
        const vertexEnabled = config.getBoolean("is_vertex_enabled") ||
            defaultConfig.vertex_enabled;
    
  5. Vertex AI सेट अप करें और चैट और जवाब का लॉजिक जोड़ें:

      // Allow user input.
      const userInput = request.query.prompt || '';
    
      // Instantiate Vertex AI.
        const vertex_ai = new VertexAI({ project: project, location: location });
        const generativeModel = vertex_ai.getGenerativeModel({
          model: textModel,
          safety_settings: safetySettings,
          generation_config: generationConfig,
        });
    
        // Combine prompt from Remote Config with optional user input.
        const chatInput = textPrompt + " " + userInput;
    
        if (!chatInput) {
          return res.status(400).send('Missing text prompt');
        }
        // If vertexEnabled isn't true, do not send queries to Vertex AI.
        if (vertexEnabled !== true) {
          response.status(200).send({
            message: "Vertex AI call skipped. Vertex is not enabled."
          });
          return;
        }
    
        logger.log("\nRunning with model ", textModel, ", prompt: ", textPrompt,
          ", generationConfig: ", generationConfig, ", safetySettings: ",
          safetySettings, " in ", location, "\n");
    
        const result = await generativeModel.generateContentStream(chatInput); 
        response.writeHead(200, { 'Content-Type': 'text/plain' });
    
        for await (const item of result.stream) {
          const chunk = item.candidates[0].content.parts[0].text;
          logger.log("Received chunk:", chunk);
          response.write(chunk);
        }
    
        response.end();
    
      } catch (error) {
        logger.error(error);
        response.status(500).send('Internal server error');
      }
    });
    
  6. फ़ाइल को सेव करके बंद करें.

पांचवां चरण: सर्वर के हिसाब से Remote Config टेंप्लेट बनाना

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

  1. Firebase कंसोल खोलें और नेविगेशन मेन्यू से, रन करें को बड़ा करें. इसके बाद, Remote Config को चुनें.
  2. Remote Config पेज पर सबसे ऊपर मौजूद, क्लाइंट/सर्वर सिलेक्टर से सर्वर चुनें.

    • अगर Remote Config या सर्वर टेंप्लेट का इस्तेमाल पहली बार किया जा रहा है, तो कॉन्फ़िगरेशन बनाएं पर क्लिक करें. अपना पहला सर्वर-साइड पैरामीटर बनाएं पैनल दिखेगा.
    • अगर आपने पहले भी Remote Config सर्वर टेंप्लेट का इस्तेमाल किया है, तो पैरामीटर जोड़ें पर क्लिक करें.
  3. इन Remote Config पैरामीटर को तय करें:

    पैरामीटर का नाम जानकारी टाइप डिफ़ॉल्ट वैल्यू
    model_name मॉडल का नाम
    अपने कोड में इस्तेमाल करने के लिए, मॉडल के नामों की अप-टू-डेट सूचियां देखने के लिए, मॉडल के वर्शन और लाइफ़साइकल या मॉडल के उपलब्ध नाम देखें.
    स्ट्रिंग gemini-1.5-flash-002
    prompt उपयोगकर्ता की क्वेरी के शुरू होने से पहले दिखने वाला प्रॉम्प्ट. स्ट्रिंग I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!
    generation_config मॉडल को भेजने के लिए पैरामीटर. JSON [{"stopSequences": ["I hope this helps"],"temperature": 0.7,"maxOutputTokens": 512, "topP": 0.1,"topK": 20}]
    safety_settings Vertex AI के लिए सुरक्षा सेटिंग. JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
    location Vertex AI सेवा और मॉडल को चलाने की जगह. स्ट्रिंग us-central1
    is_vertex_enabled ज़रूरी नहीं पैरामीटर, जो यह कंट्रोल करता है कि क्वेरी को Vertex AI पर भेजा जाए या नहीं. बूलियन true
  4. पैरामीटर जोड़ने के बाद, अपने पैरामीटर की दोबारा जांच करें और देखें कि उनके डेटा टाइप सही हैं या नहीं. इसके बाद, बदलाव पब्लिश करें पर क्लिक करें.

छठा चरण: अपना फ़ंक्शन डिप्लॉय करना और Firebase Local Emulator Suite में उसकी जांच करना

अब आपके पास Firebase Local Emulator Suite की मदद से, अपने फ़ंक्शन को स्थानीय तौर पर डिप्लॉय और टेस्ट करने का विकल्प है.

  1. पक्का करें कि आपने तीसरा चरण: अपने Admin SDK सेवा खाते के लिए IAM अनुमतियां कॉन्फ़िगर करें और अपनी कुंजी सेव करें के हिसाब से, GOOGLE_APPLICATION_CREDENTIALS को एनवायरमेंट वैरिएबल के तौर पर सेट किया हो. इसके बाद, अपनी functions डायरेक्ट्री की पैरंट डायरेक्ट्री से, अपने फ़ंक्शन को Firebase एमुलेटर पर डिप्लॉय करें:

    firebase emulators:start --project PROJECT_ID --only functions
    
  2. एमुलेटर का लॉग पेज खोलें. इससे पता चलेगा कि आपका फ़ंक्शन लोड हो गया है.

  3. नीचे दिया गया निर्देश चलाकर, अपना फ़ंक्शन ऐक्सेस करें. यहां PROJECT_ID आपका प्रोजेक्ट आईडी है और LOCATION वह क्षेत्र है जहां आपने फ़ंक्शन को डिप्लॉय किया है (उदाहरण के लिए, us-central1):

    curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex
    
  4. जवाब मिलने का इंतज़ार करें. इसके बाद, Firebase एमुलेटर के लॉग पेज या अपने कंसोल पर वापस जाएं और देखें कि कोई गड़बड़ी या चेतावनी तो नहीं है.

  5. यह ध्यान रखें कि is_vertex_enabled को आपके Remote Config सर्वर टेंप्लेट में कॉन्फ़िगर किया गया है. इसलिए, इसे Vertex AI Gemini API के ज़रिए, Gemini को ऐक्सेस करना चाहिए. साथ ही, इससे शुल्क लग सकते हैं:

    curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20cats
    
  6. Firebase कंसोल पर, अपने Remote Config सर्वर टेंप्लेट में बदलाव करें. इसके बाद, बदलावों पर नज़र रखने के लिए, अपने फ़ंक्शन को फिर से ऐक्सेस करें.

सातवां चरण: Google Cloud पर अपना फ़ंक्शन डिप्लॉय करना

फ़ंक्शन की जांच करने और उसकी पुष्टि करने के बाद, उसे Google Cloud पर डिप्लॉय किया जा सकता है और लाइव फ़ंक्शन की जांच की जा सकती है.

अपना फ़ंक्शन डिप्लॉय करना

Firebase सीएलआई का इस्तेमाल करके अपने फ़ंक्शन को डिप्लॉय करें:

firebase deploy --only functions

फ़ंक्शन को बिना पुष्टि के ऐक्सेस करने की सुविधा को ब्लॉक करना

Firebase का इस्तेमाल करके फ़ंक्शन डिप्लॉय करने पर, पुष्टि किए बिना कॉल करने की अनुमति डिफ़ॉल्ट रूप से दी जाती है. हालांकि, ऐसा तब ही होता है, जब आपके संगठन की नीति में इसकी अनुमति दी गई हो. हमारा सुझाव है कि टेस्टिंग के दौरान और App Check से सुरक्षित करने से पहले, बिना पुष्टि वाले ऐक्सेस को ब्लॉक करें.

इस फ़ंक्शन को बिना पुष्टि किए ऐक्सेस देने से ब्लॉक करने के लिए:

  1. Google Cloud कंसोल में, Cloud Run खोलें.

  2. generateWithVertex पर क्लिक करें. इसके बाद, सुरक्षा टैब पर क्लिक करें.

  3. पुष्टि करना ज़रूरी है को चालू करें. इसके बाद, सेव करें पर क्लिक करें.

Admin SDK सेवा खाते के क्रेडेंशियल का इस्तेमाल करने के लिए, अपने उपयोगकर्ता खाते को कॉन्फ़िगर करना

Admin SDK सेवा खाते के पास फ़ंक्शन को चलाने और Remote Config और Vertex AI Gemini API के साथ इंटरैक्ट करने के लिए, सभी ज़रूरी भूमिकाएं और अनुमतियां होती हैं. इसलिए, आपको अपना फ़ंक्शन चलाने के लिए इसका इस्तेमाल करना होगा. ऐसा करने के लिए, आपके पास अपने उपयोगकर्ता खाते से, खाते के लिए टोकन बनाने की सुविधा होनी चाहिए.

यहां बताया गया है कि Admin SDK सेवा खाते के ऐक्सेस लेवल के साथ, अपने उपयोगकर्ता खाते और फ़ंक्शन को कैसे कॉन्फ़िगर करें.

  1. Google Cloud कंसोल में, IAM सेवा खाता क्रेडेंशियल एपीआई चालू करें.
  2. अपने उपयोगकर्ता खाते को सेवा खाता टोकन क्रिएटर की भूमिका दें: Google Cloud कंसोल में, IAM और एडमिन > IAM खोलें. इसके बाद, अपना उपयोगकर्ता खाता चुनें और प्रिंसिपल में बदलाव करें > कोई और भूमिका जोड़ें पर क्लिक करें.
  3. सेवा खाता टोकन क्रिएटर चुनें. इसके बाद, सेव करें पर क्लिक करें.

    सेवा खाते के डुप्लीकेट के बारे में ज़्यादा जानकारी के लिए, Google Cloud दस्तावेज़ में सेवा खाते के डुप्लीकेट देखें.

  4. Google Cloud कंसोल Cloud Functions पेज खोलें और फ़ंक्शन सूची में generateWithVertex फ़ंक्शन पर क्लिक करें.

  5. ट्रिगर > बदलाव करें चुनें. इसके बाद, रनटाइम, बिल्ड, कनेक्शन, और सुरक्षा सेटिंग को बड़ा करें.

  6. रनटाइम टैब में, रनटाइम सेवा खाता को एडमिन SDK खाता में बदलें.

  7. आगे बढ़ें पर क्लिक करें. इसके बाद, डिप्लॉय करें पर क्लिक करें.

gcloud सीएलआई सेट अप करना

कमांड-लाइन से अपने फ़ंक्शन को सुरक्षित तरीके से चलाने और उसकी जांच करने के लिए, आपको Cloud Functions सेवा की मदद से पुष्टि करनी होगी और पुष्टि करने के लिए मान्य टोकन पाना होगा.

टोकन जनरेशन की सुविधा चालू करने के लिए, gcloud सीएलआई इंस्टॉल और कॉन्फ़िगर करें:

  1. अगर आपके कंप्यूटर पर यह पहले से इंस्टॉल नहीं है, तो gcloud सीएलआई इंस्टॉल करें में बताए गए तरीके से gcloud सीएलआई इंस्टॉल करें.

  2. अपने Google Cloud खाते के लिए ऐक्सेस क्रेडेंशियल पाएं:

    gcloud auth login
    
  3. gcloud में अपना प्रोजेक्ट आईडी सेट करें:

    gcloud config set project PROJECT_ID
    

अपने फ़ंक्शन की जांच करें

अब आपके पास Google Cloud में अपने फ़ंक्शन की जांच करने का विकल्प है. फ़ंक्शन की जांच करने के लिए, नीचे दिया गया कमांड चलाएं:

curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex \
  -H "Authorization: bearer $(gcloud auth print-identity-token)" \
  -H "Content-Type: application/json"

उपयोगकर्ता से मिले डेटा का इस्तेमाल करके फिर से कोशिश करें:

curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20dogs \
 -H "Authorization: bearer $(gcloud auth print-identity-token)" \
 -H "Content-Type: application/json"

अब आपके पास अपने Remote Config सर्वर टेंप्लेट में बदलाव करने, उन बदलावों को पब्लिश करने, और अलग-अलग विकल्पों की जांच करने का विकल्प है.

अगले चरण