Google 生成式 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 或类似服务结合使用。
用法
生成模型
如需获取对受支持模型的引用,请指定其标识符:
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
}
如需了解详情,请参阅生成内容。
嵌入模型
如需获取对受支持嵌入模型的引用,请指定其标识符:
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)。