Развертывание потоков на любой платформе 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';
    
    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. Настройте учетные данные поставщика модели:

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