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 密钥,您可以从 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
}
您还可以将 Embedder 传递给索引器的 Index()
方法和检索器的
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)。