ทำให้โฟลว์ใช้งานได้ในแพลตฟอร์ม Node.js

Firebase Genkit มีการผสานรวมในตัวที่จะช่วยคุณติดตั้งใช้งานโฟลว์ใน Cloud Functions for Firebase และ 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: พอร์ตเครือข่ายที่จะฟัง หากไม่ระบุ เซิร์ฟเวอร์จะรอฟังพอร์ตที่กําหนดไว้ในตัวแปรสภาพแวดล้อมของพอร์ต และหากไม่ได้ตั้งค่าพอร์ต ค่าเริ่มต้นจะเป็น 3400
    • cors: นโยบาย CORS ของเซิร์ฟเวอร์การไหล หากจะเข้าถึงปลายทางเหล่านี้จากเว็บแอปพลิเคชัน คุณอาจต้องระบุข้อมูลนี้
    • pathPrefix: คำนำหน้าเส้นทางที่ไม่บังคับซึ่งจะเพิ่มไว้ก่อนปลายทางของโฟลว์
    • jsonParserOptions: ตัวเลือกที่จะส่งไปยังโปรแกรมแยกวิเคราะห์ข้อความ JSON ของ Express
  2. ตั้งค่าข้อมูลเข้าสู่ระบบของผู้ให้บริการโมเดล

    กําหนดค่าตัวแปรสภาพแวดล้อมที่จําเป็นสําหรับผู้ให้บริการโมเดล ในคู่มือนี้ เราจะใช้ Gemini API จาก Google AI Studio เป็นตัวอย่าง

    รับคีย์ API จาก Google AI Studio

    หลังจากสร้างคีย์ API แล้ว ให้ตั้งค่าตัวแปรGOOGLE_GENAI_API_KEY environment เป็นคีย์ด้วยคําสั่งต่อไปนี้

    export GOOGLE_GENAI_API_KEY=<your API key>

    ผู้ให้บริการต่างๆ สําหรับการติดตั้งใช้งานจะมีวิธีรักษาความปลอดภัยให้กับคีย์ API ในสภาพแวดล้อมของตนเองแตกต่างกันไป ตรวจสอบว่าคีย์ API ของคุณไม่เปิดเผยต่อสาธารณะเพื่อความปลอดภัย

3. เตรียมโปรเจ็กต์ Node.js ให้พร้อมใช้งาน

เพิ่มสคริปต์เริ่มต้นและสร้างลงใน package.json

หากต้องการทำให้โปรเจ็กต์ Node.js ใช้งานได้ ให้กำหนดสคริปต์ start และ build ใน package.json สคริปต์เหล่านี้จะมีลักษณะดังนี้สำหรับโปรเจ็กต์ 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"}'

ไม่บังคับ: เริ่ม UI นักพัฒนาแอป

คุณสามารถใช้ UI ของนักพัฒนาซอฟต์แวร์เพื่อทดสอบขั้นตอนแบบอินเทอร์แอกทีฟในระหว่างการพัฒนาได้ ดังนี้

npx genkit start -- npm run start

ไปที่ http://localhost:4000/flows เพื่อทดสอบโฟลว์ใน UI

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 ได้