किसी भी Node.js प्लैटफ़ॉर्म पर फ़्लो डिप्लॉय करें

Firebase Genkit में पहले से इंटिग्रेशन मौजूद होते हैं. इनकी मदद से, Firebase के लिए Cloud Functions और Google Cloud Run पर फ़्लो डिप्लॉय किए जा सकते हैं. हालांकि, अपने फ़्लो को किसी भी ऐसे प्लैटफ़ॉर्म पर भी डिप्लॉय किया जा सकता है जो Express.js ऐप्लिकेशन को दिखा सकता है. भले ही, वह क्लाउड सेवा हो या खुद होस्ट किया गया हो.

उदाहरण के तौर पर, इस पेज पर डिफ़ॉल्ट सैंपल फ़्लो को डिप्लॉय करने की प्रोसेस के बारे में बताया गया है.

शुरू करने से पहले

  • Node.js 20 और उसके बाद के वर्शन: पुष्टि करें कि आपके एनवायरमेंट में Node.js का 20 या उसके बाद का वर्शन इस्तेमाल किया जा रहा हो (node --version).
  • आपको Genkit के फ़्लो के कॉन्सेप्ट के बारे में जानकारी होनी चाहिए.

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

  1. प्रोजेक्ट के लिए डायरेक्ट्री बनाएं:

    export GENKIT_PROJECT_HOME=~/tmp/genkit-express-project
    mkdir -p $GENKIT_PROJECT_HOME
    cd $GENKIT_PROJECT_HOME
  2. Node.js प्रोजेक्ट शुरू करना:

    npm init -y
  3. Genkit और ज़रूरी डिपेंडेंसी इंस्टॉल करना:

    npm install --save genkit @genkit-ai/googleai
    npm install -D genkit-cli typescript tsx

2. अपना Genkit ऐप्लिकेशन कॉन्फ़िगर करना

  1. सैंपल फ़्लो और सर्वर सेट अप करना:

    src/index.ts में, सैंपल फ़्लो तय करें और फ़्लो सर्वर को कॉन्फ़िगर करें:

    import { genkit } from 'genkit';
    import { googleAI, gemini15Flash } from '@genkit-ai/googleai';
    
    const ai = genkit({
      plugins: [googleAI()],
      model: gemini15Flash,
    });
    
    const helloFlow = ai.defineFlow(
      {
        name: 'helloFlow',
        inputSchema: z.object({ name: z.string() }),
        outputSchema: z.string(),
      },
      async (input) => {
        const { text } = ai.generate('Say hello to ${input.name}');
        return text;
      }
    );
    
    ai.startFlowServer({
      flows: [menuSuggestionFlow],
    });
    

    startFlowServer के लिए कुछ वैकल्पिक पैरामीटर भी हैं, जिन्हें तय किया जा सकता है:

    • port: वह नेटवर्क पोर्ट जिस पर सुनना है. अगर कोई पोर्ट नहीं दिया गया है, तो सर्वर उस पोर्ट पर सुनता है जो PORT एनवायरमेंट वैरिएबल में तय किया गया है. अगर PORT सेट नहीं है, तो डिफ़ॉल्ट रूप से 3400 पर सुनता है.
    • cors: फ़्लो सर्वर की CORS नीति. अगर आपको वेब ऐप्लिकेशन से इन एंडपॉइंट को ऐक्सेस करना है, तो आपको इसकी जानकारी देनी होगी.
    • pathPrefix: फ़्लो के एंडपॉइंट से पहले जोड़ने के लिए, पाथ प्रीफ़िक्स (पाथ के पहले जोड़ा जाने वाला शब्द). यह ज़रूरी नहीं है.
    • jsonParserOptions: Express के JSON बॉडी पार्सर को पास करने के विकल्प
  2. मॉडल उपलब्ध कराने वाली कंपनी के क्रेडेंशियल सेट अप करना:

    मॉडल उपलब्ध कराने वाली कंपनी के लिए, ज़रूरी एनवायरमेंट वैरिएबल कॉन्फ़िगर करें. इस गाइड में, हम उदाहरण के तौर पर Google AI Studio के Gemini API का इस्तेमाल करेंगे.

    Google AI Studio से एपीआई पासकोड पाना

    एपीआई कुंजी बनाने के बाद, नीचे दिए गए निर्देश का इस्तेमाल करके अपनी कुंजी में GOOGLE_GENAI_API_KEY एनवायरमेंट वैरिएबल सेट करें:

    export GOOGLE_GENAI_API_KEY=<your API key>

    डिप्लॉयमेंट के लिए अलग-अलग सेवा देने वाली कंपनियां, अपने एनवायरमेंट में आपकी एपीआई कुंजी को सुरक्षित रखने के लिए अलग-अलग तरीके अपनाएंगी. सुरक्षा के लिए, पक्का करें कि आपकी एपीआई कुंजी सार्वजनिक तौर पर उपलब्ध न हो.

3. अपने Node.js प्रोजेक्ट को डिप्लॉयमेंट के लिए तैयार करना

package.json में स्टार्ट और बिल्ड स्क्रिप्ट जोड़ना

Node.js प्रोजेक्ट को डिप्लॉय करने के लिए, package.json में start और build स्क्रिप्ट तय करें. TypeScript प्रोजेक्ट के लिए, ये स्क्रिप्ट इस तरह दिखेंगी:

"scripts": {
  "start": "node --watch lib/index.js",
  "build": "tsc"
},

स्थानीय तौर पर बनाना और टेस्ट करना

'बिल्ड करें' कमांड चलाएं. इसके बाद, सर्वर शुरू करें और स्थानीय तौर पर इसकी जांच करें, ताकि यह पक्का किया जा सके कि यह उम्मीद के मुताबिक काम कर रहा है.

npm run build
npm start

किसी दूसरी टर्मिनल विंडो में, एंडपॉइंट की जांच करें:

curl -X POST "http://127.0.0.1:3400/menuSuggestionFlow" \
  -H "Content-Type: application/json" \
  -d '{"data": "banana"}'

ज़रूरी नहीं: डेवलपर यूज़र इंटरफ़ेस (यूआई) शुरू करना

डेवलपमेंट के दौरान, डेवलपर यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, फ़्लो की इंटरैक्टिव तरीके से जांच की जा सकती है:

npx genkit start -- npm run start

यूज़र इंटरफ़ेस (यूआई) में अपने फ़्लो की जांच करने के लिए, http://localhost:4000/flows पर जाएं.

4. प्रोजेक्ट को डिप्लॉय करना

प्रोजेक्ट को कॉन्फ़िगर करने और स्थानीय तौर पर उसकी जांच करने के बाद, उसे Node.js के साथ काम करने वाले किसी भी प्लैटफ़ॉर्म पर डिप्लॉय किया जा सकता है. डिप्लॉयमेंट का तरीका, सेवा देने वाली कंपनी के हिसाब से अलग-अलग होता है. हालांकि, आम तौर पर आपको ये सेटिंग कॉन्फ़िगर करनी होंगी:

सेटिंग मान
रनटाइम Node.js 20 या उसके बाद का वर्शन
बिल्ड करने का निर्देश npm run build
Start कमांड npm start
एनवायरमेंट वैरिएबल GOOGLE_GENAI_API_KEY=<your-api-key> और अन्य ज़रूरी सीक्रेट सेट करना

start कमांड (npm start) को आपके कंपाइल किए गए एंट्री पॉइंट पर ले जाना चाहिए. आम तौर पर, यह lib/index.js होता है. अपने डिप्लॉयमेंट प्लैटफ़ॉर्म के लिए, सभी ज़रूरी एनवायरमेंट वैरिएबल ज़रूर जोड़ें.

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