Google 生成式 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 密钥,您可以从 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 应用默认凭据。
用法
生成模型
如需获取对受支持模型的引用,请将其标识符指定为 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 模型生成内容。
嵌入模型
如需获取对受支持嵌入模型的引用,请将其标识符指定为 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)。