Vertex AI 插件通过 Vertex AI API 为多个 Google 生成式 AI 模型提供了接口:
- Gemini 1.0 Pro 和 Gemini 1.0 Pro Vision 文本生成
- Imagen2 图像生成
- Gecko 文本嵌入生成
此外,您还可以通过 Vertex AI Rapid Evaluation API 访问部分评估指标。
安装
npm i --save @genkit-ai/vertexai
如果要在本地运行使用此插件的流,还需要安装 Google Cloud CLI 工具。
配置
如需使用此插件,请在调用 configureGenkit()
时指定该插件:
import { vertexAI } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({ projectId: 'your-cloud-project', location: 'us-central1' }),
],
// ...
});
该插件要求您指定 Google Cloud 项目 ID、您要向其发出 Vertex API 请求的区域以及 Google Cloud 项目凭据。
您可以通过在
vertexAI()
配置中设置projectId
或通过设置GCLOUD_PROJECT
环境变量来指定 Google Cloud 项目 ID。如果您是从 Google Cloud 环境(Cloud Functions、Cloud Run 等)运行流,则GCLOUD_PROJECT
会自动设置为该环境的项目 ID。您可以通过在
vertexAI()
配置中设置location
或通过设置GCLOUD_LOCATION
环境变量来指定 API 位置。如需提供 API 凭据,您需要设置 Google Cloud 应用默认凭据。
用量
生成式 AI 模型
此插件会以静态方式将引用导出到其支持的生成式 AI 模型:
import { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';
您可以使用以下引用来指定 generate()
使用的模型:
const llmResponse = await generate({
model: geminiPro,
prompt: 'What should I do when I visit Melbourne?',
});
此插件还会静态导出对 Gecko 文本嵌入模型的引用:
import { textEmbeddingGecko } from '@genkit-ai/vertexai';
您可以使用此引用来指定索引器或检索器使用的嵌入器。例如,如果您使用 Chroma DB:
configureGenkit({
plugins: [
chroma([
{
embedder: textEmbeddingGecko,
collectionName: 'my-collection',
},
]),
],
});
或者,您可以直接生成嵌入:
// import { embed, EmbedderArgument } from '@genkit-ai/ai/embedder';
const embedding = await embed({
embedder: textEmbeddingGecko,
content: 'How many widgets do you have in stock?',
});
Vertex AI Model Garden 上的 Anthropic Claude 3
如果您可以在 Vertex AI Model Garden 中访问 Claude 3 模型(haiku、sonnet 或 opus),则可以将它们与 Genkit 搭配使用。
以下是启用 Vertex AI Model Garden 模型的配置示例:
import {
vertexAI,
claude3Haiku,
claude3Sonnet,
claude3Opus,
} from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGardenModels: [claude3Haiku, claude3Sonnet, claude3Opus],
}),
],
});
然后,将其用作常规模型:
const llmResponse = await generate({
model: claude3Sonnet,
prompt: 'What should I do when I visit Melbourne?',
});
评估程序
如需使用 Vertex AI Rapid Evaluation 中的评估器,请在您的 vertexAI
插件配置中添加 evaluation
代码块。
import { vertexAI, VertexAIEvaluationMetricType } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
projectId: 'your-cloud-project',
location: 'us-central1',
evaluation: {
metrics: [
VertexAIEvaluationMetricType.SAFETY,
{
type: VertexAIEvaluationMetricType.ROUGE,
metricSpec: {
rougeType: 'rougeLsum',
},
},
],
},
}),
],
// ...
});
上面的配置添加了 Safety
和 ROUGE
指标的评估器。该示例展示了两种方法:Safety
指标使用默认规范,而 ROUGE
指标则提供将 rouge 类型设置为 rougeLsum
的自定义规范。
两个评估器都可以使用 genkit eval:run
命令与兼容的数据集(即包含 output
和 reference
字段的数据集)一起运行。您也可以使用 genkit eval:flow -e vertexai/safety
命令运行 Safety
评估器,因为它只需要 output
。