始める

Firebase Genkit の使用を開始するには、Genkit CLI をインストールし、Node.js プロジェクトで genkit init を実行します。このページの残りの部分では、その方法について説明します。

要件

Node.js 20 以降。

手順

  1. 次のコマンドを実行して、Genkit CLI をインストールします。

    npm i -g genkit
    
  2. 新しい Node プロジェクトを作成します。

    mkdir genkit-intro && cd genkit-intro
    npm init -y
    

    package.json で、main フィールドが lib/index.js に設定されていることを確認します。

  3. Genkit プロジェクトを初期化します。

    genkit init
    
    1. デプロイ プラットフォームのオプションとして Node.js を選択します(Firebase Cloud Functions と Google Cloud Run のテンプレートも使用できます)。

    2. モデルの選択:

      Gemini(Google AI)

      最も簡単な開始方法は、Google AI Gemini API を使用することです。お住まいの地域で利用可能であることを確認してください。

      Google AI Studio を使用して、Gemini API の API キーを生成します。次に、GOOGLE_GENAI_API_KEY 環境変数をキーに設定します。

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini(Vertex AI)

      お住まいの地域で Google AI Gemini API を利用できない場合は、Gemini やその他のモデルを提供する Vertex AI API の使用を検討してください。課金が有効になっている Google Cloud プロジェクトを用意し、AI Platform API を有効にして、追加の環境変数を設定する必要があります。

      gcloud services enable aiplatform.googleapis.com
      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      

      Vertex AI の料金については、https://cloud.google.com/vertex-ai/generative-ai/pricing をご覧ください。

    3. 残りの質問に対するデフォルトの回答を選択します。これにより、プロジェクト フォルダがいくつかのサンプルコードで初期化されます。

    genkit init コマンドにより、サンプルのソースファイル index.ts が作成されます。これはプロジェクトのエントリ ポイントであり、プロジェクト向けに Genkit を構成し、定義した AI フローとその他のリソースのロードとエクスポートを行うプラグインを構成します。サンプル ファイルには、先ほど選択したモデル プロバイダをサポートするプラグインを読み込む構成が含まれています。また、単一のフロー menuSuggestionFlow も含まれています。このフローは、特定のテーマのレストラン向けの商品を LLM に提案するよう指示します。

    configureGenkit({
      plugins: [googleAI()],
      logLevel: 'debug',
      enableTracingAndMetrics: true,
    });
    
    export const menuSuggestionFlow = defineFlow(
      {
        name: 'menuSuggestionFlow',
        inputSchema: z.string(),
        outputSchema: z.string(),
      },
      async (subject) => {
        const llmResponse = await generate({
          prompt: `Suggest an item for the menu of a {subject} themed restaurant`,
          model: geminiPro,
          config: {
            temperature: 1,
          },
        });
    
        return llmResponse.text();
      }
    );
    
    startFlowsServer();
    

    Genkit を使用してアプリの AI 機能を構築すると、入力の前処理、より高度なプロンプトの作成、検索拡張生成(RAG)のための外部情報源の統合など、複数のステップを含むフローを作成することになるでしょう。

  4. これで、Genkit 機能とサンプル プロジェクトをマシン上でローカルで実行して確認できるようになりました。Genkit Developer UI をダウンロードして起動します。

    genkit start
    

    Genkit デベロッパー UI へようこそ

    これで、Genkit Developer UI がマシン上で実行されるようになりました。次のステップでモデルやフローを実行すると、マシンはフローのステップを連携させるために必要なオーケストレーション タスクを実行します。Gemini API などの外部サービスの呼び出しは、引き続きライブサーバーに対して行われます。

    また、開発環境にいるため、Genkit はトレースとフローの状態をローカル ファイルに保存します。

  5. genkit start コマンドを実行すると、Genkit デベロッパー UI が自動的にダウンロードされ、開きます。

    Developer UI では、定義したフローと構成したモデルを確認して実行し、以前の実行のトレースを調べることができます。次のような機能を試してみましょう。

    • [Run] タブに、定義したすべてのフローと、プラグインによって構成されたモデルのリストが表示されます。

      menuSuggestionFlow を実行し、入力テキスト(例: "cat")を指定して実行してみます。問題がなければ、猫をテーマにしたレストランのメニューの提案が表示されます。

    • [Inspect] タブに、フローの実行履歴が表示されます。フローごとに、フローに渡されたパラメータと、実行された各ステップのトレースを確認できます。

次のステップ

FirebaseCloud Run、または Node.js プラットフォームを使用して Genkit アプリをビルドしてデプロイする方法を確認する。