इस गाइड में, 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 console में साइन इन करें.
प्रोजेक्ट बनाएं पर क्लिक करें. इसके बाद, इनमें से किसी एक विकल्प का इस्तेमाल करें:
- पहला विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, नए प्रोजेक्ट का नाम डालकर, नया Firebase प्रोजेक्ट (और इसके तहत आने वाला Google Cloud प्रोजेक्ट अपने-आप) बनाएं.
- दूसरा विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, ड्रॉप-डाउन मेन्यू से अपने Google Cloud प्रोजेक्ट का नाम चुनकर, किसी मौजूदा Google Cloud प्रोजेक्ट में "Firebase जोड़ें".
प्रॉम्प्ट मिलने पर, आपको इस समाधान का इस्तेमाल करने के लिए, Google Analytics को सेट अप करने की ज़रूरत नहीं है.
अपना प्रोजेक्ट बनाने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
अगर आपके पास पहले से कोई Firebase प्रोजेक्ट है, तो:
अपना डेवलपमेंट एनवायरमेंट कॉन्फ़िगर करें पर जाएं.
अपना डेवलपमेंट एनवायरमेंट कॉन्फ़िगर करना
फ़ंक्शन लिखने के लिए, आपको Node.js एनवायरमेंट की ज़रूरत होगी. साथ ही, Cloud Functions रनटाइम में फ़ंक्शन डिप्लॉय करने के लिए, आपको Firebase सीएलआई की ज़रूरत होगी.
-
Node.js और npm इंस्टॉल करने के लिए, हमारा सुझाव है कि आप Node Version Manager का इस्तेमाल करें.
Firebase सीएलआई इंस्टॉल करें. इसके लिए, अपना पसंदीदा तरीका इस्तेमाल करें. उदाहरण के लिए, npm का इस्तेमाल करके सीएलआई इंस्टॉल करने के लिए, यह कमांड चलाएं:
npm install -g firebase-tools@latestयह कमांड, दुनिया भर में उपलब्ध
firebaseकमांड को इंस्टॉल करता है. अगर यह कमांड काम नहीं करता है, तो आपको npm की अनुमतियां बदलनी पड़ सकती हैं.firebase-toolsको नए वर्शन पर अपडेट करने के लिए, वही कमांड फिर से चलाएं.firebase-functionsऔरfirebase-adminइंस्टॉल करें. इसके बाद,--saveका इस्तेमाल करके, उन्हें अपनेpackage.jsonमें सेव करें:npm install firebase-functions@latest firebase-admin@latest --save
अब इस समाधान को लागू किया जा सकता है.
लागू करना
Remote Config और Agent Platform की मदद से, दूसरी जनरेशन के Cloud Functions को बनाने, टेस्ट करने, और डिप्लॉय करने के लिए, यह तरीका अपनाएं:
- Google Cloud कंसोल में, सुझाए गए Agent Platform एपीआई चालू करें.
- अपना प्रोजेक्ट शुरू करें और Node डिपेंडेंसी इंस्टॉल करें.
- अपने Admin SDK सेवा खाते के लिए, IAM की अनुमतियां कॉन्फ़िगर करें और अपनी कुंजी सेव करें.
- फ़ंक्शन बनाएं.
- सर्वर के हिसाब से 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 पैकेज जोड़ें. इसके लिए, यहां दिए गए कमांड चलाएं. साथ ही,
--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 सेवा खाते के लिए, आईएएम अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना
इस समाधान में, अपने फ़ंक्शन को चलाने के लिए Firebase Admin SDK सेवा खाते का इस्तेमाल किया जाएगा.
- Google Cloud कंसोल में, IAM और एडमिन पेज खोलें. इसके बाद, Admin SDK सेवा खाता (जिसका नाम
firebase-adminsdkहै) ढूंढें. - खाता चुनें और प्रिंसिपल में बदलाव करें पर क्लिक करें. 'बदलाव करने का ऐक्सेस' पेज दिखेगा.
- कोई अन्य भूमिका जोड़ें पर क्लिक करें. इसके बाद, Remote Config दर्शक को चुनें.
- कोई अन्य भूमिका जोड़ें पर क्लिक करें. इसके बाद, एआई प्लैटफ़ॉर्म डेवलपर को चुनें.
- कोई अन्य भूमिका जोड़ें पर क्लिक करें. इसके बाद, Agent Platform उपयोगकर्ता को चुनें.
- कोई अन्य भूमिका जोड़ें पर क्लिक करें. इसके बाद, Cloud Run Invoker को चुनें.
- सेव करें पर क्लिक करें.
इसके बाद, 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 के नए पैरामीटर फ़ेच करे, उपयोगकर्ता के इनपुट को प्रोसेस करे, और उपयोगकर्ता को जवाब स्ट्रीम करे.
- अपने कोड बेस में, किसी टेक्स्ट एडिटर या आईडीई में
functions/index.jsखोलें. मौजूदा कॉन्टेंट मिटाएं और फिर Admin SDK, Remote Config, और Agent Platform SDK टूल जोड़ें. इसके बाद, फ़ाइल में यह कोड चिपकाकर ऐप्लिकेशन को शुरू करें:
const { onRequest } = require("firebase-functions/https"); const { requiresRole, requiresAPI } = require("firebase-functions"); 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"); requiresRole("roles/aiplatform.user"); requiresRole("roles/cloudconfig.viewer"); requiresAPI("aiplatform.googleapis.com", "Needed to query Vertex AI Gemini models"); requiresAPI("firebaseremoteconfig.googleapis.com", "Needed to fetch server-side Remote Config templates"); // 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_settingsAgent Platform के लिए सुरक्षा सेटिंग JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]locationAgent Platform सेवा और मॉडल को चलाने के लिए जगह की जानकारी स्ट्रिंग globalis_vertex_enabledयह वैकल्पिक पैरामीटर है. इससे यह कंट्रोल किया जाता है कि क्वेरी Agent Platform को भेजी जाएं या नहीं. बूलियन trueपैरामीटर जोड़ने के बाद, उनकी दोबारा जांच करें. साथ ही, यह भी देखें कि उनके डेटा टाइप सही हों. इसके बाद, बदलाव पब्लिश करें पर क्लिक करें.
छठा चरण: अपना फ़ंक्शन डिप्लॉय करें और Firebase Local Emulator Suite में उसकी जांच करें
अब Firebase Local Emulator Suite की मदद से, अपने फ़ंक्शन को स्थानीय तौर पर डिप्लॉय और टेस्ट किया जा सकता है.
पक्का करें कि आपने
GOOGLE_APPLICATION_CREDENTIALSको एनवायरमेंट वैरिएबल के तौर पर सेट किया हो. इसके बारे में तीसरा चरण: अपने Admin SDK सेवा खाते के लिए IAM अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना में बताया गया है. इसके बाद, अपनी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 सर्वर टेंप्लेट में कॉन्फ़िगर किया गया है. इसलिए, इसे Agent Platform Gemini API (formerly Vertex AI) के ज़रिए Gemini मॉडल को ऐक्सेस करना चाहिए. इसके लिए, शुल्क भी लिया जा सकता है:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20catsFirebase कंसोल में अपने Remote Config सर्वर टेंप्लेट में बदलाव करें. इसके बाद, बदलावों को देखने के लिए अपने फ़ंक्शन को फिर से ऐक्सेस करें.
सातवां चरण: अपने फ़ंक्शन को Google Cloud पर डिप्लॉय करना
फ़ंक्शन की जांच और पुष्टि करने के बाद, उसे Google Cloud पर डिप्लॉय किया जा सकता है. साथ ही, लाइव फ़ंक्शन की जांच की जा सकती है.
अपना फ़ंक्शन डिप्लॉय करना
Firebase सीएलआई का इस्तेमाल करके अपना फ़ंक्शन डिप्लॉय करें:
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 Service Account Credentials API को चालू करें.
- अपने उपयोगकर्ता खाते को सेवा खाता टोकन क्रिएटर की भूमिका दें: Google Cloud कंसोल से, IAM और एडमिन > IAM खोलें. इसके बाद, अपना उपयोगकर्ता खाता चुनें और प्रिंसिपल में बदलाव करें > कोई अन्य भूमिका जोड़ें पर क्लिक करें.
सेवा खाता टोकन क्रिएटर को चुनें. इसके बाद, सेव करें पर क्लिक करें.
सेवा खाते के डुप्लीकेट के बारे में ज़्यादा जानकारी के लिए, Google Cloud दस्तावेज़ में सेवा खाते का डुप्लीकेट लेख पढ़ें.
Google Cloud कंसोल Cloud Functions पेज खोलें और फ़ंक्शन की सूची में, generateWithVertex फ़ंक्शन पर क्लिक करें.
ट्रिगर > बदलाव करें को चुनें. इसके बाद, रनटाइम, बिल्ड, कनेक्शन, और सुरक्षा सेटिंग को बड़ा करें.
रनटाइम टैब में जाकर, रनटाइम सेवा खाते को Admin SDK खाते में बदलें.
Next पर क्लिक करें. इसके बाद, Deploy पर क्लिक करें.
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 की मदद से अपने फ़ंक्शन को सुरक्षित करने के बारे में ज़्यादा जानने के लिए, Cloud Functions के लिए App Check को लागू करने की सुविधा चालू करें लेख पढ़ें
- सर्वर-साइड Remote Config और App Check के साथ, कॉल किए जा सकने वाले सैंपल फ़ंक्शन को Remote Config और App Check के साथ Agent Platform Gemini API (formerly Vertex AI) को कॉल करें पर आज़माएं.
- Cloud Functions for Firebase के बारे में ज़्यादा जानें.
- सर्वर एनवायरमेंट में Remote Config का इस्तेमाल करने के बारे में ज़्यादा जानें.