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-pro
、gemini-1.5-pro
、gemini-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-004
と embedding-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)をご覧ください。