Развертывание потоков на любой платформе Node.js

Firebase Genkit имеет встроенные интеграции, которые помогут вам развернуть ваши потоки в Cloud Functions для 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';
  import { startFlowServer } from '@genkit-ai/express';

  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;
    }
  );

  startFlowServer({
    flows: [menuSuggestionFlow],
  });

Есть также несколько дополнительных параметров для startFlowServer , которые вы можете указать:

  • port : сетевой порт для прослушивания. Если не указано, сервер прослушивает порт, определенный в переменной среды PORT, а если PORT не установлен, по умолчанию используется значение 3400.
  • cors : политика CORS сервера потока. Если вы будете получать доступ к этим конечным точкам из веб-приложения, вам, вероятно, потребуется указать это.
  • pathPrefix : необязательный префикс пути, который нужно добавить перед конечными точками потока.
  • jsonParserOptions : параметры для передачи в анализатор тела JSON Express.
  1. Настройте учетные данные поставщика модели:

Настройте необходимые переменные среды для вашего поставщика модели. В этом руководстве в качестве примера мы будем использовать API Gemini из 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 к развертыванию.

Добавьте сценарии запуска и сборки в 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"}'

Необязательно: запустите пользовательский интерфейс разработчика.

Вы можете использовать пользовательский интерфейс разработчика для интерактивного тестирования потоков во время разработки:

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.

Discover Firebase, Google’s mobile and web app development platform that helps developers build apps and games that users will love.

Обновлено Feb 25, 2025

Call the Gemini API client-side from your iOS, Android, Web, and Flutter apps. Serverless, scalable, and built on Google's robust Vertex AI platform, ensuring enterprise-grade performance and reliability.

Обновлено Oct 3, 2024