Google Generative AI プラグインは、Gemini API または Vertex の Gemini API を介して Google の Gemini モデルへのインターフェースを提供します。
構成
構成は、選択したプロバイダによって異なります。
Google AI
このプラグインを使用するには、googlegenai
パッケージをインポートし、Genkit イニシャライザで googlegenai.GoogleAI
を WithPlugins()
に渡します。
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
このプラグインには Gemini API の API キーが必要です。この API キーは Google AI Studio から取得できます。
次のいずれかの方法で、API キーを使用するようにプラグインを設定します。
GEMINI_API_KEY
環境変数を API キーに設定します。プラグインを初期化するときに API キーを指定します。
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
ただし、API キーをコードに直接埋め込まないでください。この機能は、Cloud Secret Manager などのサービスと組み合わせてのみ使用してください。
Vertex AI
このプラグインを使用するには、googlegenai
パッケージをインポートし、Genkit イニシャライザで googlegenai.VertexAI
を WithPlugins()
に渡します。
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
このプラグインでは、Google Cloud プロジェクト ID、Vertex API リクエストを行うリージョン、Google Cloud プロジェクトの認証情報を指定する必要があります。
デフォルトでは、
googlegenai.VertexAI
はGOOGLE_CLOUD_PROJECT
環境変数から Google Cloud プロジェクト ID を取得します。この値を直接渡すこともできます。
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
デフォルトでは、
googlegenai.VertexAI
はGOOGLE_CLOUD_LOCATION
環境変数から Vertex AI API のロケーションを取得します。この値を直接渡すこともできます。
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
API 認証情報を指定するには、Google Cloud アプリケーションのデフォルト認証情報を設定する必要があります。
認証情報を指定するには:
Google Cloud 環境(Cloud Functions、Cloud Run など)からフローを実行している場合は、自動的に設定されます。
ローカル開発環境で、次のコマンドを実行します。
gcloud auth application-default login
- 他の環境については、アプリケーションのデフォルト認証情報のドキュメントをご覧ください。
また、アカウントに Vertex AI ユーザー IAM ロール(
roles/aiplatform.user
)が付与されていることを確認してください。Vertex AI のアクセス制御のドキュメントをご覧ください。
使用方法
生成モデル
サポートされているモデルへの参照を取得するには、その ID を googlegenai.GoogleAIModel
または googlgenai.VertexAIModel
に指定します。
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
または、モデル名とその構成をペアにする ModelRef
を作成することもできます。
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
サポートされているモデルは、gemini-1.5-pro
、gemini-1.5-flash
、gemini-2.0-pro
、gemini-2.0-flash
などの試験運用版モデルです。
モデル参照には、Google API を呼び出す Generate()
メソッドがあります。
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
return err
}
log.Println(resp.Text())
詳細については、AI モデルを使用してコンテンツを生成するをご覧ください。
埋め込みモデル
サポートされているエンベディング モデルへの参照を取得するには、その ID を googlegenai.GoogleAIEmbedder
または googlgenai.VertexAIEmbedder
に指定します。
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
次のモデルがサポートされています。
Google AI
text-embedding-004
とembedding-001
Vertex AI
textembedding-gecko@003
、textembedding-gecko@002
、textembedding-gecko@001
、text-embedding-004
、textembedding-gecko-multilingual@001
、text-multilingual-embedding-002
、multimodalembedding
エンベッダー参照には、Google AI API を呼び出す Embed()
メソッドがあります。
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
return err
}
インデクサーの Index()
メソッドとリトリーバーの Retrieve()
メソッドにエンベッダーを渡すこともできます。
if err := ai.Index(ctx, myIndexer, ai.WithDocs(docsToIndex...)); err != nil {
return err
}
resp, err := ai.Retrieve(ctx, myRetriever, ai.WithDocs(userInput))
if err != nil {
return err
}
詳しくは、検索拡張生成(RAG)をご覧ください。