Google 生成式 AI 插件通过 Gemini API 提供 Google 的 Gemini 模型的接口。
安装
npm i --save @genkit-ai/googleai
配置
如需使用此插件,请在初始化 Genkit 时指定该插件:
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/googleai';
const ai = genkit({
plugins: [googleAI()],
});
该插件需要使用 Gemini API 的 API 密钥,您可以从 Google AI Studio 获取该密钥。
通过执行以下一项操作,将插件配置为使用 API 密钥:
- 将
GOOGLE_GENAI_API_KEY
环境变量设置为 API 密钥。 在初始化插件时指定 API 密钥:
googleAI({ apiKey: yourKey });
不过,请勿直接在代码中嵌入 API 密钥!仅将此功能与 Cloud Secret Manager 或类似服务结合使用。
用法
此插件会静态导出对其支持的模型的引用:
import {
gemini15Flash,
gemini15Pro,
textEmbedding004,
} from '@genkit-ai/googleai';
您可以使用这些引用指定 generate()
使用的模型:
const ai = genkit({
plugins: [googleAI()],
model: gemini15Flash,
});
const llmResponse = await ai.generate('Tell me a joke.');
或使用嵌入程序(例如 textEmbedding004
)与 embed
或检索器搭配使用:
const ai = genkit({
plugins: [googleAI()],
});
const embedding = await ai.embed({
embedder: textEmbedding004,
content: input,
});
Gemini Files API
您可以将上传到 Gemini Files API 的文件与 Genkit 搭配使用:
import { GoogleAIFileManager } from '@google/generative-ai/server';
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/googleai';
const ai = genkit({
plugins: [googleAI()],
});
const fileManager = new GoogleAIFileManager(process.env.GOOGLE_GENAI_API_KEY);
const uploadResult = await fileManager.uploadFile(
'path/to/file.jpg',
{
mimeType: 'image/jpeg',
displayName: 'Your Image',
}
);
const response = await ai.generate({
model: gemini15Flash,
prompt: [
{text: 'Describe this image:'},
{media: {contentType: uploadResult.file.mimeType, url: uploadResult.file.uri}}
]
});
经过微调的模型
您可以使用使用 Google Gemini API 微调的模型。按照 Gemini API 中的说明操作,或使用 AI Studio 微调模型。
调优过程会使用基本模型(例如 Gemini 1.5 Flash)和您提供的示例来创建新的调优模型。记下您使用的基准模型,然后复制新模型的 ID。
在 Genkit 中调用经过调优的模型时,请使用基础模型作为 model
参数,并在 config
块中传递经过调优的模型的 ID。例如,如果您使用 Gemini 1.5 Flash 作为基础模型,并获得了模型 ID tunedModels/my-example-model-apbm8oqbvuv2
,则可以使用以下代码调用该模型:
const ai = genkit({
plugins: [googleAI()],
});
const llmResponse = await ai.generate({
prompt: `Suggest an item for the menu of fish themed restruant`,
model: gemini15Flash.withConfig({
version: "tunedModels/my-example-model-apbm8oqbvuv2",
}),
});