Google 生成式 AI 插件

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-progemini-1.5-progemini-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-004embedding-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)