Google Generative AI プラグイン

Google Generative AI プラグインは、Gemini API を介して Google の Gemini モデルへのインターフェースを提供します。

構成

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

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

このプラグインには Gemini 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 などのサービスと組み合わせてのみ使用してください。

用途

生成モデル

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

model := googleai.Model("gemini-1.5-flash")

サポートされているモデルは、gemini-1.0-progemini-1.5-progemini-1.5-flash です。

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

text, err := ai.GenerateText(ctx, model, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
	return err
}

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

埋め込みモデル

サポートされている埋め込みモデルへの参照を取得するには、その ID を指定します。

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

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

エンベッダー参照には、Google AI API を呼び出す Embed() メソッドがあります。

embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
	return err
}

インデクサーの Index() メソッドとリトリーバーの Retrieve() メソッドにエンベッダーを渡すこともできます。

if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil {
	return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
	return err
}

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