Go を使用して Genkit を使ってみる

このガイドでは、Go アプリで Genkit を使用する方法について説明します。

このライブラリやドキュメントに関する問題を発見した場合は、GitHub リポジトリで報告してください。

最初のリクエストを送信する

  1. バージョン 1.24 以降の Go をインストールします。Go の公式ドキュメントのダウンロードとインストールをご覧ください。

  2. Genkit パッケージを使用して新しい Go プロジェクト ディレクトリを初期化します。

    mkdir genkit-intro && cd genkit-intro
    go mod init example/genkit-intro
    go get github.com/firebase/genkit/go
  3. 次のサンプルコードを使用して main.go ファイルを作成します。

    package main
    
    import (
        "context"
        "log"
    
        "github.com/firebase/genkit/go/ai"
        "github.com/firebase/genkit/go/genkit"
        "github.com/firebase/genkit/go/plugins/googlegenai"
    )
    
    func main() {
        ctx := context.Background()
    
        // Initialize Genkit with the Google AI plugin and Gemini 2.0 Flash.
        g, err := genkit.Init(ctx,
            genkit.WithPlugins(&googlegenai.GoogleAI{}),
            genkit.WithDefaultModel("googleai/gemini-2.0-flash"),
        )
        if err != nil {
            log.Fatalf("could not initialize Genkit: %w", err)
        }
    
        resp, err := genkit.Generate(ctx, g, ai.WithPrompt("What is the meaning of life?"))
        if err != nil {
            log.Fatal("could not generate model response: %w", err)
        }
    
        log.Println(resp.Text())
    }
    
  4. GEMINI_API_KEY 環境変数を設定して、Gemini API キーを構成します。

    export GEMINI_API_KEY=<your API key>

    キーがない場合は、Google AI Studio でキーを作成します。Google AI は無料枠が充実しており、利用を開始する際にクレジット カードは必要ありません。

  5. アプリを実行して、モデルのレスポンスを確認します。

    go run .
    There is no single universally agreed-upon meaning of life; it's a deeply
    personal question. Many find meaning through connection, growth,
    contribution, happiness, or discovering their own purpose.

次のステップ

Genkit でモデルのリクエストを行うための設定が完了したら、次は Genkit の機能をさらに活用して AI ベースのアプリとワークフローを構築する方法を確認します。Genkit のその他の機能の使用を開始するには、次のガイドをご覧ください。

  • デベロッパー ツール: Genkit の CLI とデベロッパー UI を設定して使用し、アプリをローカルでテストしてデバッグする方法を確認します。
  • コンテンツの生成: Genkit の統合生成 API を使用して、サポートされている任意のモデルからテキストと構造化データを生成する方法を確認します。
  • フローの作成: フローという特別な Genkit 関数を使用して、ワークフローのエンドツーエンドのオブザーバビリティと、Genkit ツールによる豊富なデバッグ機能を実現する方法を確認します。
  • プロンプトの管理: Genkit を使用して、プロンプトと構成をコードとして一緒に管理する方法について確認します。