Cloud Functions और एजेंट प्लैटफ़ॉर्म के साथ, सर्वर-साइड रिमोट कॉन्फ़िगरेशन का इस्तेमाल करना

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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
    

अब इस समाधान को लागू किया जा सकता है.

लागू करना

दूसरी जनरेशन के Cloud Functions को Remote Config और Agent Platform के साथ बनाने, टेस्ट करने, और डिप्लॉय करने के लिए, यह तरीका अपनाएं:

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

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

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

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

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

दूसरा चरण: अपने प्रोजेक्ट को शुरू करना और 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 और Agent Platform पैकेज जोड़ने के लिए, ये निर्देश दें. साथ ही, यह पक्का करने के लिए कि यह आपकी package.json फ़ाइल में सेव हो जाए, --save का इस्तेमाल करें:

    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 सेवा खाते के लिए, आईएएम की अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना

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

  1. Google Cloud कंसोल में, IAM और एडमिन पेज खोलें, और Admin SDK सेवा खाते (जिसका नाम firebase-adminsdk है) को ढूंढें.
  2. खाता चुनें और प्रिंसिपल में बदलाव करें पर क्लिक करें. बदलाव करने का ऐक्सेस पेज दिखता है.
  3. **अन्य भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **Remote Config व्यूअर** को चुनें.
  4. **अन्य भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **एआई प्लैटफ़ॉर्म डेवलपर** को चुनें.
  5. **अन्य भूमिका जोड़ें** पर क्लिक करें. इसके बाद, Agent Platform उपयोगकर्ता को चुनें.
  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 और Agent Platform Gemini API (formerly Vertex AI) को शुरू करता है. साथ ही, Remote Config का इस्तेमाल करके डिफ़ॉल्ट पैरामीटर कॉन्फ़िगर करता है, Remote Config के नए पैरामीटर फ़ेच करता है, उपयोगकर्ता के इनपुट को प्रोसेस करता है, और उपयोगकर्ता को जवाब स्ट्रीम करता है.

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

    const { onRequest } = require("firebase-functions/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 क्लाइंट.

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

    // Define default (fallback) parameter values for Remote Config.
    const defaultConfig = {
    
      // Default values for Vertex AI.
      model_name: "gemini-1.5-flash-002",
      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. Agent Platform सेट अप करें और चैट और जवाब की लॉजिक जोड़ें:

      // 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 कंसोल में, DevOps और जुड़ाव > रिमोट कॉन्फ़िगरेशन पर जाएं.

  2. पेज पर सबसे ऊपर मौजूद क्लाइंट/सर्वर सिलेक्टर से, सर्वर चुनें.

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

    पैरामीटर का नाम ब्यौरा टाइप डिफ़ॉल्ट वैल्यू
    model_name मॉडल का नाम
    अपने कोड में इस्तेमाल किए जाने वाले मॉडल के नामों की अप-टू-डेट सूची के लिए, देखें: मॉडल के वर्शन और लाइफ़साइकल या उपलब्ध मॉडल के नाम.
    स्ट्रिंग gemini-2.0-flash
    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 के लिए सुरक्षा सेटिंगAgent Platform JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
    location Agent Platform सेवा और मॉडल को चलाने की जगह स्ट्रिंग global
    is_vertex_enabled ज़रूरी नहीं है कि यह पैरामीटर कॉन्फ़िगर किया जाए. इससे यह कंट्रोल किया जाता है कि क्वेरी, Agent Platform को भेजी जाएं या नहीं. बूलियन true
  4. पैरामीटर जोड़ने के बाद, अपने पैरामीटर और उनके डेटा टाइप की दोबारा जांच करें. इसके बाद, बदलाव पब्लिश करें पर क्लिक करें.

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

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

  1. पक्का करें कि आपने GOOGLE_APPLICATION_CREDENTIALS को एनवायरमेंट वैरिएबल के तौर पर सेट किया हो. इसके लिए, तीसरा चरण: Admin SDK के Admin SDK सेवा खाते के लिए, आईएएम की अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना में बताया गया तरीका अपनाएं. इसके बाद, अपनी 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 Emulator के लॉग पेज या अपने कंसोल पर वापस जाएं और गड़बड़ियां या चेतावनियां देखें.

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

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

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

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

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

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

firebase deploy --only functions

बिना पुष्टि किए ऐक्सेस को ब्लॉक करना

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

बिना पुष्टि किए ऐक्सेस को ब्लॉक करने के लिए:

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

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

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

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

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

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

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

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

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

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

  6. रनटाइम टैब में, रनटाइम सेवा खाता को Admin 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 सर्वर टेंप्लेट में बदलाव किए जा सकते हैं. साथ ही, उन बदलावों को पब्लिश किया जा सकता है और अलग-अलग विकल्पों को टेस्ट किया जा सकता है.

अगले चरण

जब तक कुछ अलग से न बताया जाए, तब तक इस पेज की सामग्री को Creative Commons Attribution 4.0 License के तहत और कोड के नमूनों को Apache 2.0 License के तहत लाइसेंस मिला है. ज़्यादा जानकारी के लिए, Google Developers साइट नीतियां देखें. Oracle और/या इससे जुड़ी हुई कंपनियों का, Java एक रजिस्टर किया हुआ ट्रेडमार्क है.

आखिरी बार 2026-08-23 (UTC) को अपडेट किया गया.