इस गाइड में, दूसरी पीढ़ी Cloud Functions के साथ सर्वर-साइड Remote Config का इस्तेमाल शुरू करने का तरीका बताया गया है. इससे सर्वर-साइड कॉल किए जा सकते हैं Agent Platform Gemini API (formerly Vertex AI).
इस ट्यूटोरियल में, Remote Config को चैटबॉट जैसे फ़ंक्शन में जोड़ा जाएगा. यह फ़ंक्शन, उपयोगकर्ताओं के सवालों के जवाब देने के लिए Gemini मॉडल का इस्तेमाल करता है. Remote Config Gemini API मैनेज करेगा. इनमें, ऐसा प्रॉम्प्ट भी शामिल है जिसे आने वाली उपयोगकर्ता की क्वेरी से पहले जोड़ा जाएगा. साथ ही, Firebase कंसोल से इन इनपुट को ज़रूरत के हिसाब से अपडेट किया जा सकता है. फ़ंक्शन की जांच करने और उसमें मौजूद गड़बड़ियों को ठीक करने के लिए, Firebase Local Emulator Suite का इस्तेमाल किया जाएगा. इसके बाद, यह पुष्टि की जाएगी कि यह काम कर रहा है या नहीं. इसके बाद, इसे Google Cloud पर डिप्लॉय और टेस्ट किया जाएगा.
ज़रूरी शर्तें
यह गाइड इस बात को ध्यान में रखकर बनाई गई है कि आपको ऐप्लिकेशन डेवलप करने के लिए JavaScript का इस्तेमाल करना आता है.
Firebase प्रोजेक्ट सेट अप करना
अगर आपके पास पहले से कोई Firebase प्रोजेक्ट नहीं है, तो:
Firebase कंसोल में साइन इन करें.
**प्रोजेक्ट बनाएं** पर क्लिक करें. इसके बाद, इनमें से कोई एक विकल्प चुनें:
- पहला विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, प्रोजेक्ट का नया नाम डालकर, नया Firebase प्रोजेक्ट (और उससे जुड़ा Google Cloud प्रोजेक्ट) बनाएं. यह प्रोजेक्ट अपने-आप बन जाएगा.
- दूसरा विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, ड्रॉप-डाउन मेन्यू से अपना Google Cloud प्रोजेक्ट का नाम चुनकर, मौजूदा Google Cloud प्रोजेक्ट में "Firebase जोड़ें".
इस समाधान का इस्तेमाल करने के लिए, आपको Google Analytics सेट अप करने की ज़रूरत नहीं है.
अपना प्रोजेक्ट बनाने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
अगर आपके पास पहले से कोई Firebase प्रोजेक्ट है, तो:
डेवलपमेंट एनवायरमेंट को कॉन्फ़िगर करने के लिए आगे बढ़ें.
डेवलपमेंट एनवायरमेंट को कॉन्फ़िगर करना
फ़ंक्शन लिखने के लिए, आपको Node.js एनवायरमेंट की ज़रूरत होगी. साथ ही,Cloud Functions रनटाइम पर फ़ंक्शन डिप्लॉय करने के लिए, आपको Firebase CLI की ज़रूरत होगी.
-
Node.js और npm इंस्टॉल करने के लिए, हमारा सुझाव है कि आप Node Version Manager का इस्तेमाल करें.
अपनी पसंद के तरीके से Firebase CLI इंस्टॉल करें. उदाहरण के लिए, npm का इस्तेमाल करके CLI इंस्टॉल करने के लिए, यह निर्देश दें:
npm install -g firebase-tools@latestइस निर्देश से, दुनिया भर में उपलब्ध
firebaseनिर्देश इंस्टॉल हो जाता है. अगर यह निर्देश काम नहीं करता है, तो आपको npm की अनुमतियां बदलनी पड़ सकती हैं.firebase-toolsके सबसे नए वर्शन पर अपडेट करने के लिए, वही निर्देश फिर से दें.firebase-functionsऔरfirebase-adminइंस्टॉल करें. साथ ही, इन्हें अपनेpackage.jsonमें सेव करने के लिए,--saveका इस्तेमाल करें:npm install firebase-functions@latest firebase-admin@latest --save
अब इस समाधान को लागू किया जा सकता है.
लागू करना
Remote Config और Agent Platform के साथ दूसरी पीढ़ी के Cloud Functions बनाने, टेस्ट करने, और डिप्लॉय करने के लिए, यह तरीका अपनाएं:
- Agent Platform के सुझाए गए एपीआई Google Cloud कंसोल में चालू करें.
- अपने प्रोजेक्ट को शुरू करें और Node की डिपेंडेंसी इंस्टॉल करें.
- अपने Admin SDK सेवा खाते के लिए, आईएएम की अनुमतियां कॉन्फ़िगर करें और अपनी कुंजी सेव करें.
- फ़ंक्शन बनाएं.
- सर्वर के लिए, Remote Config टेंप्लेट बनाएं.
- अपने फ़ंक्शन को डिप्लॉय करें और Firebase Local Emulator Suite में उसकी जांच करें.
- अपने फ़ंक्शन को Google Cloud पर डिप्लॉय करें.
पहला चरण: Google Cloud कंसोल में, Agent Platform सुझाए गए एपीआई चालू करना
- Google Cloud कंसोल खोलें. इसके बाद, पूछे जाने पर अपना प्रोजेक्ट चुनें.
- कंसोल में सबसे ऊपर मौजूद खोजें फ़ील्ड में, Agent Platform डालें और Agent Platform के नतीजे के तौर पर दिखने का इंतज़ार करें.
- Agent Platform चुनें. Agent Platform डैशबोर्ड दिखता है.
सुझाए गए सभी एपीआई चालू करें पर क्लिक करें.
एपीआई को चालू होने में कुछ समय लग सकता है. जब तक एपीआई चालू नहीं हो जाते, तब तक पेज को चालू और खुला रखें.
अगर बिलिंग चालू नहीं है, तो आपको Cloud Billing खाता जोड़ने या लिंक करने के लिए कहा जाएगा. बिलिंग खाता चालू करने के बाद, Agent Platform के डैशबोर्ड पर वापस जाएं और पुष्टि करें कि सुझाए गए सभी एपीआई चालू हैं.
दूसरा चरण: अपने प्रोजेक्ट को शुरू करना और Node की डिपेंडेंसी इंस्टॉल करना
- अपने कंप्यूटर पर एक टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जहां आपको अपना फ़ंक्शन बनाना है.
Firebase में लॉग इन करें:
firebase loginCloud Functions for Firebase को शुरू करने के लिए, यह निर्देश दें:
firebase init functionsमौजूदा प्रोजेक्ट का इस्तेमाल करें को चुनें और अपना प्रोजेक्ट आईडी डालें.
इस्तेमाल की जाने वाली भाषा चुनने के लिए कहे जाने पर, Javascript चुनें और Enter दबाएं.
अन्य सभी विकल्पों के लिए, डिफ़ॉल्ट सेटिंग चुनें.
मौजूदा डायरेक्ट्री में,
functionsडायरेक्ट्री बन जाती है. इसमें, आपकोindex.jsफ़ाइल मिलेगी. इसका इस्तेमाल करके, अपना फ़ंक्शन बनाया जा सकता है. साथ ही,node_modulesडायरेक्ट्री मिलेगी, जिसमें आपके फ़ंक्शन की डिपेंडेंसी शामिल होती हैं. इसके अलावा,package.jsonफ़ाइल मिलेगी, जिसमें पैकेज की डिपेंडेंसी शामिल होती हैं.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 सेवा खाते का इस्तेमाल किया जाएगा.
- Google Cloud कंसोल में, IAM और एडमिन पेज खोलें,
और Admin SDK सेवा खाते (जिसका नाम
firebase-adminsdkहै) को ढूंढें. - खाता चुनें और प्रिंसिपल में बदलाव करें पर क्लिक करें. बदलाव करने का ऐक्सेस पेज दिखता है.
- **कोई और भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **Remote Config व्यूअर** को चुनें.
- **कोई और भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **एआई प्लैटफ़ॉर्म डेवलपर** को चुनें.
- **कोई और भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **Agent Platform उपयोगकर्ता** को चुनें.
- **कोई और भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **Cloud Run इन्वोकर** को चुनें.
- सेव करें पर क्लिक करें.
इसके बाद, Admin SDK सेवा खाते के क्रेडेंशियल एक्सपोर्ट करें और उन्हें अपने GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल में सेव करें.
- Google Cloud कंसोल में, क्रेडेंशियल पेज खोलें.
- जानकारी पेज खोलने के लिए, Admin SDK के सेवा खाते पर क्लिक करें.
- कुंजियां पर क्लिक करें.
- कुंजी जोड़ें > नई कुंजी बनाएं पर क्लिक करें.
- पक्का करें कि कुंजी का टाइप के तौर पर JSON चुना गया हो. इसके बाद, बनाएं पर क्लिक करें.
- कुंजी को अपने कंप्यूटर पर किसी सुरक्षित जगह पर डाउनलोड करें.
अपने टर्मिनल से, कुंजी को एनवायरमेंट वैरिएबल के तौर पर एक्सपोर्ट करें:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
चौथा चरण: फ़ंक्शन बनाना
इस चरण में, एक ऐसा फ़ंक्शन बनाया जाएगा जो उपयोगकर्ता के इनपुट को मैनेज करता है और एआई की मदद से जवाब जनरेट करता है. कई कोड स्निपेट को मिलाकर, एक ऐसा फ़ंक्शन बनाया जाएगा जो Admin SDK और Agent Platform Gemini API (formerly Vertex AI) को शुरू करता है. साथ ही, Remote Config का इस्तेमाल करके डिफ़ॉल्ट पैरामीटर कॉन्फ़िगर करता है, Remote Config के सबसे नए पैरामीटर फ़ेच करता है, उपयोगकर्ता के इनपुट को प्रोसेस करता है, और उपयोगकर्ता को जवाब स्ट्रीम करता है.
- अपने कोडबेस में, किसी टेक्स्ट एडिटर या IDE में
functions/index.jsखोलें. मौजूदा कॉन्टेंट मिटाएं. इसके बाद, 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();डिफ़ॉल्ट वैल्यू कॉन्फ़िगर करें. अगर आपका फ़ंक्शन, 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 };फ़ंक्शन बनाएं और सर्वर-साइड 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;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'); } });फ़ाइल सेव करें और बंद करें.
पांचवां चरण: सर्वर के लिए, Remote Config टेंप्लेट बनाना
इसके बाद, सर्वर-साइड Remote Config का टेंप्लेट बनाएं. साथ ही, अपने फ़ंक्शन में इस्तेमाल करने के लिए, पैरामीटर और वैल्यू कॉन्फ़िगर करें. सर्वर के लिए, Remote Config टेंप्लेट बनाने के लिए:
Firebase कंसोल में, DevOps और उपयोगकर्ता जुड़ाव > रिमोट कॉन्फ़िगरेशन पर जाएं.
पेज पर सबसे ऊपर मौजूद क्लाइंट/सर्वर सिलेक्टर से, सर्वर चुनें.
- अगर Remote Config या सर्वर टेंप्लेट का इस्तेमाल पहली बार किया जा रहा है, तो कॉन्फ़िगरेशन बनाएं पर क्लिक करें. सर्वर-साइड का अपना पहला पैरामीटर बनाएं पैनल दिखता है.
- अगर Remote Config सर्वर टेंप्लेट का इस्तेमाल पहली बार नहीं किया जा रहा है, तो **पैरामीटर जोड़ें** पर क्लिक करें.
ये Remote Config पैरामीटर तय करें:
पैरामीटर का नाम ब्यौरा टाइप डिफ़ॉल्ट वैल्यू model_nameमॉडल का नाम
अपने कोड में इस्तेमाल किए जाने वाले मॉडल के नामों की अप-टू-डेट सूची के लिए, देखें: मॉडल के वर्शन और लाइफ़साइकल या उपलब्ध मॉडल के नाम.स्ट्रिंग gemini-2.0-flashpromptउपयोगकर्ता की क्वेरी से पहले जोड़ा जाने वाला प्रॉम्प्ट. स्ट्रिंग 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 को चलाने की जगह स्ट्रिंग globalis_vertex_enabledयह एक ज़रूरी नहीं है. इससे यह कंट्रोल किया जाता है कि क्वेरी, Agent Platform को भेजी जाएं या नहीं. Agent Platform. बूलियन trueपैरामीटर जोड़ने के बाद, अपने पैरामीटर और उनके डेटा टाइप की दोबारा जांच करें. इसके बाद, बदलाव पब्लिश करें पर क्लिक करें.
छठा चरण: अपने फ़ंक्शन को डिप्लॉय करना और Firebase Local Emulator Suite में उसकी जांच करना
अब Firebase Local Emulator Suite की मदद से, अपने फ़ंक्शन को स्थानीय तौर पर डिप्लॉय और टेस्ट किया जा सकता है. Firebase Local Emulator Suite
पक्का करें कि आपने
GOOGLE_APPLICATION_CREDENTIALSको एनवायरमेंट वैरिएबल के तौर पर सेट किया हो. इसके लिए, तीसरा चरण: Admin SDK के Admin SDKसेवा खाते के लिए, आईएएम की अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना में बताया गया तरीका अपनाएं. इसके बाद, अपनीfunctionsडायरेक्ट्री की पैरंट डायरेक्ट्री से, अपने फ़ंक्शन को Firebase एम्युलेटर पर डिप्लॉय करें:firebase emulators:start --project PROJECT_ID --only functionsएम्युलेटर का लॉग पेज खोलें . इससे पता चलेगा कि आपका फ़ंक्शन लोड हो गया है.
अपना फ़ंक्शन ऐक्सेस करने के लिए, यह निर्देश दें. इसमें PROJECT_ID आपका प्रोजेक्ट आईडी है और LOCATION वह इलाका है जहां आपने फ़ंक्शन डिप्लॉय किया है. उदाहरण के लिए,
us-central1:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertexजवाब मिलने का इंतज़ार करें. इसके बाद, Firebase एम्युलेटर के लॉग पेज या अपने कंसोल पर वापस जाएं और गड़बड़ियों या चेतावनियों की जांच करें.
उपयोगकर्ता का कुछ इनपुट भेजकर देखें. ध्यान दें कि क्योंकि
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%20catsFirebase Firebaseकंसोल में, Remote Config के सर्वर टेंप्लेट में बदलाव करें. इसके बाद, बदलाव देखने के लिए अपने फ़ंक्शन को फिर से ऐक्सेस करें.
सातवां चरण: अपने फ़ंक्शन को Google Cloud पर डिप्लॉय करना
अपने फ़ंक्शन की जांच करने और यह पुष्टि करने के बाद कि यह सही तरीके से काम कर रहा है, इसे Google Cloud पर डिप्लॉय किया जा सकता है. इसके बाद, लाइव फ़ंक्शन की जांच की जा सकती है.
अपने फ़ंक्शन को डिप्लॉय करना
Firebase CLI का इस्तेमाल करके, अपने फ़ंक्शन को डिप्लॉय करें:
firebase deploy --only functions
फ़ंक्शन को बिना पुष्टि किए ऐक्सेस करने से रोकना
Firebase का इस्तेमाल करके फ़ंक्शन डिप्लॉय करने पर, बिना पुष्टि किए शुरू करने की अनुमति डिफ़ॉल्ट रूप से मिलती है. हालांकि, अगर आपके संगठन की नीति में इस पर पाबंदी नहीं है, तो ही ऐसा होता है. हमारा सुझाव है कि जांच के दौरान और App Check की मदद से सुरक्षित करने से पहले, हम बिना पुष्टि किए ऐक्सेस करने से रोकें.
फ़ंक्शन को बिना पुष्टि किए ऐक्सेस करने से रोकने के लिए:
Google Cloud कंसोल में, Cloud Run खोलें.
generateWithVertexपर क्लिक करें. इसके बाद, सुरक्षा टैब पर क्लिक करें.पुष्टि ज़रूरी है को चालू करें. इसके बाद, सेव करें पर क्लिक करें.
Admin SDKसेवा खाते के क्रेडेंशियल का इस्तेमाल करने के लिए, अपना उपयोगकर्ता खाता कॉन्फ़िगर करना
चूंकि Admin SDK सेवा खाते के पास फ़ंक्शन चलाने और Remote Config और Agent Platform Gemini API (formerly Vertex AI) के साथ इंटरैक्ट करने के लिए ज़रूरी सभी भूमिकाएं और अनुमतियां होती हैं, इसलिए आप अपने फ़ंक्शन को चलाने के लिए इसका इस्तेमाल करना चाहेंगे. इसके लिए, आपके पास अपने उपयोगकर्ता खाते से, खाते के लिए टोकन बनाने की अनुमति होनी चाहिए.
यहां दिए गए चरणों में, Admin SDKसेवा खाते के विशेषाधिकारों के साथ फ़ंक्शन चलाने के लिए, अपने उपयोगकर्ता खाते और फ़ंक्शन को कॉन्फ़िगर करने का तरीका बताया गया है.
- Google Cloud कंसोल में, IAM सर्विस अकाउंट क्रेडेंशियल एपीआई को चालू करें.
- अपने उपयोगकर्ता खाते को सेवा खाता टोकन क्रिएटर की भूमिका दें: Google Cloud कंसोल में, IAM और एडमिन > IAM खोलें. इसके बाद, अपना उपयोगकर्ता खाता चुनें और प्रिंसिपल में बदलाव करें > कोई और भूमिका जोड़ें पर क्लिक करें.
**सेवा खाता टोकन क्रिएटर** को चुनें. इसके बाद, **सेव करें** पर क्लिक करें.
सेवा खाते के डुप्लीकेट के बारे में ज़्यादा जानकारी के लिए, सेवा खाते के डुप्लीकेट के Google Cloud दस्तावेज़ में देखें.
Google Cloud कंसोल Cloud Functions पेज खोलें और फ़ंक्शन सूची में, generateWithVertex फ़ंक्शन पर क्लिक करें.
ट्रिगर > बदलाव करें को चुनें और रनटाइम, बिल्ड, कनेक्शन, और सुरक्षा सेटिंग को बड़ा करें.
रनटाइम टैब में, रनटाइम सेवा खाता को बदलकर Admin SDK खाता करें.
आगे बढ़ें पर क्लिक करें. इसके बाद, डिप्लॉय करें पर क्लिक करें.
gcloud सीएलआई सेट अप करना
कमांड लाइन से अपने फ़ंक्शन को सुरक्षित तरीके से चलाने और टेस्ट करने के लिए, आपको Cloud Functions सेवा के साथ पुष्टि करनी होगी. साथ ही, पुष्टि करने का मान्य टोकन पाना होगा.
टोकन जनरेट करने की सुविधा चालू करने के लिए, gcloud सीएलआई इंस्टॉल और कॉन्फ़िगर करें:
अगर आपके कंप्यूटर पर gcloud सीएलआई पहले से इंस्टॉल नहीं है, तो इसे gcloud सीएलआई इंस्टॉल करें में बताए गए तरीके से इंस्टॉल करें.
अपने Google Cloud खाते के लिए, ऐक्सेस क्रेडेंशियल पाएं:
gcloud auth logingcloud में अपना प्रोजेक्ट आईडी सेट करें:
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 सर्वर टेंप्लेट में बदलाव किए जा सकते हैं. साथ ही, उन बदलावों को पब्लिश किया जा सकता है और अलग-अलग विकल्पों की जांच की जा सकती है.
अगले चरण
- Firebase, Cloud Functions को सुरक्षित करने के लिए, App Check का इस्तेमाल करने का सुझाव देता है. अपनी सुविधा को App Check की मदद से सुरक्षित करने के बारे में ज़्यादा जानकारी के लिए, App Checkलागू करने की सुविधा चालू करना Cloud Functions लेख देखें
- सर्वर-साइड Remote Config और App Check के साथ, कॉल किए जा सकने वाले फ़ंक्शन का सैंपल आज़माएं. इसके लिए, Agent Platform Gemini API (formerly Vertex AI) को Remote Config और App Check की मदद से कॉल करना लेख देखें.
- Cloud Functions for Firebase के बारे में ज़्यादा जानें.
- सर्वर एनवायरमेंट में का इस्तेमाल करनेRemote Config के बारे में ज़्यादा जानें.