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