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

इस गाइड में 2nd gen का इस्तेमाल करना शुरू करने का तरीका बताया गया है Cloud के फ़ंक्शन के साथ सर्वर-साइड बनाने के लिए, सर्वर-साइड रिमोट कॉन्फ़िगरेशन CANNOT TRANSLATE Vertex AI Gemini API.

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

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

इस गाइड में दी गई जानकारी मानती है कि आपको कन्वर्ज़न के लिए, JavaScript का इस्तेमाल करने के बारे में जानकारी है का इस्तेमाल करें.

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

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

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

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

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

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

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

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

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

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

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

    Node.js और npm इंस्टॉल करने के लिए, हम नोड वर्शन मैनेजर.

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

    npm install -g firebase-tools@latest
    

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

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

  3. firebase-functions और firebase-admin इंस्टॉल करें और --save का इस्तेमाल करके बचत करें उन्हें आपके package.json में जोड़ दिया जाएगा:

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

अब आप इसे लागू करने के लिए तैयार हैं समाधान.

लागू करना

2nd gen को बनाने, टेस्ट करने, और डिप्लॉय करने के लिए, यह तरीका अपनाएं रिमोट कॉन्फ़िगरेशन और Vertex AI वाले Cloud Functions:

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

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

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

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

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

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

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

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

    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 छंद को नोड के वर्शन 18 के तौर पर कॉन्फ़िगर किया गया है और अगर आप Node.js 20 का इस्तेमाल कर रहे हैं, तो फ़ाइल को अपडेट करके 20 का इस्तेमाल करें:

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

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

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

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

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

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

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

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

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

  1. अपने कोड बेस में, functions/index.js को टेक्स्ट एडिटर या IDE में खोलें.
  2. मौजूदा कॉन्टेंट को मिटाएं और फिर 'एडमिन SDK' जोड़ें. रिमोट कॉन्फ़िगरेशन, और 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. ऐसी डिफ़ॉल्ट वैल्यू कॉन्फ़िगर करें जिनका इस्तेमाल आपका फ़ंक्शन, उससे कनेक्ट न होने पर करेगा रिमोट कॉन्फ़िगरेशन सर्वर. यह समाधान, textModel को कॉन्फ़िगर करता है, इस भूमिका में generationConfig, safetySettings, textPrompt, और location रिमोट कॉन्फ़िगरेशन के साथ काम करने वाले रिमोट कॉन्फ़िगरेशन पैरामीटर पैरामीटर को कॉन्फ़िगर किया जा सकता है, जिन्हें इस गाइड में आगे कॉन्फ़िगर किया जाएगा. ज़्यादा के लिए इन पैरामीटर के बारे में जानकारी पाने के लिए, 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. फ़ंक्शन बनाएं और उसे सेट अप करें सर्वर-साइड रिमोट कॉन्फ़िगरेशन:

    // 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. फ़ाइल सेव करें और बंद करें.

पांचवां चरण: सर्वर के हिसाब से रिमोट कॉन्फ़िगरेशन टेंप्लेट बनाना

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

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

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

    पैरामीटर का नाम जानकारी टाइप डिफ़ॉल्ट वैल्यू
    model_name मॉडल का नाम
    अपने कोड में इस्तेमाल करने के लिए मॉडल के नामों की अप-टू-डेट सूचियां देखने के लिए, यह देखें मॉडल वर्शन और लाइफ़साइकल या उपलब्ध है मॉडल के नाम.
    स्ट्रिंग gemini-1.5-pro-preview-0514
    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 लोकल एम्युलेटर सुइट में उसकी जांच करना

अब आप अपने फ़ंक्शन को स्थानीय तौर पर Firebase लोकल एम्युलेटर सुइट.

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

  5. कुछ उपयोगकर्ता इनपुट भेजने की कोशिश करें, क्योंकि is_vertex_enabled यह है आपके रिमोट कॉन्फ़िगरेशन सर्वर टेंप्लेट में कॉन्फ़िगर किया गया है, तो इससे Vertex AI Gemini API का इस्तेमाल करके Gemini को आज़माने और इस तरह के शुल्क लगाए जाते हैं:

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

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

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

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

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

firebase deploy --only functions

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

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

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

  1. Google Cloud Console में, Cloud Run.

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

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

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

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

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

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

    सेवा खाते के नाम पर काम करने के बारे में ज़्यादा जानने के लिए, यह लेख पढ़ें सेवा खाता झूठी पहचान बताना सेक्शन पढ़ें.

  4. Google Cloud Console का 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"

अब आप अपने रिमोट कॉन्फ़िगरेशन सर्वर टेंप्लेट में बदलाव कर सकते हैं, साथ ही, उनमें बदलाव करने के लिए कहा जा सकता है.

अगले चरण