استقرار جریان‌ها به هر پلتفرم Node.js، استقرار جریان‌ها به هر پلتفرم Node.js، استقرار جریان‌ها به هر پلتفرم Node.js

Firebase Genkit دارای یکپارچه‌سازی‌های داخلی است که به شما کمک می‌کند جریان‌های خود را در Cloud Functions برای Firebase و Google Cloud Run پیاده‌سازی کنید، اما می‌توانید جریان‌های خود را در هر پلتفرمی که می‌تواند به یک برنامه Express.js سرویس دهد، خواه یک سرویس ابری یا خود-سرویس باشد، مستقر کنید. میزبانی شد.

این صفحه، به عنوان مثال، شما را در فرآیند استقرار جریان نمونه پیش‌فرض راهنمایی می‌کند.

قبل از شروع

  • Node.js 20+: تأیید کنید که محیط شما از Node.js نسخه 20 یا بالاتر (node ​​--version) استفاده می کند.
  • شما باید با مفهوم جنکیت از جریان ها آشنا باشید.

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 : گزینه هایی برای ارسال به تجزیه کننده بدنه JSON Express
  2. اعتبارنامه ارائه دهنده مدل را تنظیم کنید:

    متغیرهای محیطی مورد نیاز را برای ارائه دهنده مدل خود پیکربندی کنید. در این راهنما، ما از Gemini API از Google AI Studio به عنوان مثال استفاده خواهیم کرد.

    یک کلید API از Google AI Studio دریافت کنید

    پس از ایجاد یک کلید API، متغیر محیطی GOOGLE_GENAI_API_KEY را با دستور زیر روی کلید خود تنظیم کنید:

    export GOOGLE_GENAI_API_KEY=<your API key>

    ارائه دهندگان مختلف برای استقرار راه های مختلفی برای ایمن کردن کلید API شما در محیط خود خواهند داشت. برای امنیت، اطمینان حاصل کنید که کلید API شما در معرض عموم قرار نگیرد.

3. پروژه Node.js خود را برای استقرار آماده کنید

اسکریپت های start و build را به package.json اضافه کنید

برای استقرار یک پروژه Node.js، اسکریپت های start و build را در package.json تعریف کنید. برای پروژه TypeScript، این اسکریپت ها به شکل زیر خواهند بود:

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

به صورت محلی بسازید و آزمایش کنید

دستور build را اجرا کنید، سپس سرور را راه اندازی کنید و آن را به صورت محلی تست کنید تا مطمئن شوید که مطابق انتظار کار می کند.

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
دستور شروع npm start
متغیرهای محیطی تنظیم GOOGLE_GENAI_API_KEY=<your-api-key> و سایر اسرار ضروری

دستور start ( npm start ) باید به نقطه ورودی کامپایل شده شما، معمولاً lib/index.js اشاره کند. مطمئن شوید که همه متغیرهای محیطی لازم را برای پلتفرم استقرار خود اضافه کنید.

پس از استقرار، می توانید از URL سرویس ارائه شده برای فراخوانی جریان خود به عنوان نقطه پایانی HTTPS استفاده کنید.