Google の生成 AI プラグイン

Google の生成 AI プラグインは Google の Gemini モデルへのインターフェースを提供します Gemini API を使用します。

構成

このプラグインを使用するには、googleai パッケージをインポートして googleai.Init() を呼び出します。

import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
    return err
}

このプラグインには、Gemini API の API キーが必要です。API キーは次の場所から取得できます: Google AI Studio

次のいずれかの方法で、ご自身の API キーを使用するようにプラグインを設定します。

  • GOOGLE_GENAI_API_KEY 環境変数に API キーを設定します。

  • プラグインを初期化するときに API キーを指定します。

    if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil {
      return err
    }
    

    ただし、API キーはコードに直接埋め込まないでください。この機能のみを使用する Cloud Secret Manager などのサービスと組み合わせて使用できます。

用途

生成モデル

サポートされているモデルへの参照を取得するには、その識別子を指定します。

langModel := googleai.Model("gemini-1.5-pro")

次のモデルがサポートされています: gemini-1.0-progemini-1.5-progemini-1.5-flash

モデル参照には、Google AI API を呼び出す Generate() メソッドがあります。

genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
    nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
if err != nil {
    return err
}

詳しくは、コンテンツの生成をご覧ください。

エンベディング モデル

サポートされているエンベディング モデルへの参照を取得するには、その識別子を指定します。

embeddingModel := googleai.Embedder("text-embedding-004")

サポートされているモデルは、text-embedding-004embedding-001 です。

エンべディング参照には、Google AI API を呼び出す Embed() メソッドがあります。

embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
    Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
    return err
}

インデクサの Index() メソッドと Retriever にエンべディングを渡すこともできます。 Retrieve() メソッド:

if err := myIndexer.Index(ctx, &ai.IndexerRequest{Documents: docsToIndex}); err != nil {
    return err
}
retrieveRes, err := myRetriever.Retrieve(ctx, &ai.RetrieverRequest{
    Document: ai.DocumentFromText(userInput, nil),
})
if err != nil {
    return err
}

詳細については、検索拡張生成(RAG)をご覧ください。