Vertex AI 插件为多个 Google 生成式 AI 模型提供了接口 通过 Vertex AI API 加载:
- 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、 region [地区] 您的 Google Cloud 项目 凭据。
您可以通过在以下位置设置
projectId
来指定 Google Cloud 项目 ID:vertexAI()
配置,或通过设置GCLOUD_PROJECT
环境 变量。如果您从 Google Cloud 环境 函数、Cloud Run 等),则GCLOUD_PROJECT
会自动设置为 环境的项目 ID。您可以通过在
location
vertexAI()
配置,或通过设置GCLOUD_LOCATION
环境 变量。如需提供 API 凭据,您需要设置 Google Cloud 应用 默认凭据。
用法
生成式 AI 模型
此插件会静态地将引用导出到其支持的生成式 AI 模型:
import { gemini15Flash, gemini15Pro, imagen2 } from '@genkit-ai/vertexai';
您可以使用这些引用来指定 generate()
使用的模型:
const llmResponse = await generate({
model: gemini15Flash,
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 模型(俳句诗、sonnet 或 opus),则可以将这些模型与 Genkit 结合使用。
以下是启用 Vertex AI Model Garden 模型的配置示例:
import {
vertexAI,
claude3Haiku,
claude3Sonnet,
claude3Opus,
} from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGarden: {
models: [claude3Haiku, claude3Sonnet, claude3Opus],
},
}),
],
});
然后,将其作为常规模型使用:
const llmResponse = await generate({
model: claude3Sonnet,
prompt: 'What should I do when I visit Melbourne?',
});
Vertex AI Model Garden 上的 Llama 3.1 405b
首先,您需要在 Vertex AI Model Garden 中启用 Llama 3.1 API 服务。
下面是 Vertex AI 插件中 Llama 3.1 405b 的示例配置:
import { vertexAI, llama3 } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGarden: {
models: [llama3],
},
}),
],
});
然后将其用作常规模型:
const llmResponse = await generate({
model: llama3,
prompt: 'Write a function that adds two numbers together',
});
评估程序
如需使用 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
。