Google 生成式 AI 插件

Google 生成式 AI 插件通过 Gemini API 提供 Google 的 Gemini 模型的接口。

安装

npm i --save @genkit-ai/googleai

配置

如需使用此插件,请在调用 configureGenkit() 时指定它:

import { googleAI } from '@genkit-ai/googleai';

export default configureGenkit({
  plugins: [googleAI()],
  // ...
});

该插件需要使用 Gemini API 的 API 密钥,您可以从 Google AI Studio 获取该密钥。

通过执行以下一项操作,将插件配置为使用 API 密钥:

  • GOOGLE_GENAI_API_KEY 环境变量设置为 API 密钥。

  • 在初始化插件时指定 API 密钥:

    googleAI({ apiKey: yourKey });
    

    不过,请勿直接在代码中嵌入 API 密钥!仅将此功能与 Cloud Secret Manager 或类似服务结合使用。

某些模型(例如 Gemini 1.5 Pro)处于预览版阶段,只能通过 v1beta API 使用。您可以指定 apiVersion 以访问这些模型:

configureGenkit({
  plugins: [googleAI({ apiVersion: 'v1beta' })],
});

如果您希望使用不同版本的 API,则可以指定多个版本 模型。

configureGenkit({
  plugins: [googleAI({ apiVersion: ['v1', 'v1beta'] })],
});

用法

此插件会静态导出对其支持的模型的引用:

import {
  gemini15Flash,
  gemini15Pro,
  textEmbeddingGecko001,
} from '@genkit-ai/googleai';

您可以使用这些引用来指定 generate() 使用的模型:

const llmResponse = await generate({
  model: gemini15Flash,
  prompt: 'Tell me a joke.',
});

或使用嵌入程序(例如 textEmbeddingGecko001) 与 embed 或检索器搭配使用:

const embedding = await embed({
  embedder: textEmbeddingGecko001,
  content: input,
});

Gemini 文件 API

您可以将上传到 Gemini Files API 的文件与 Genkit 搭配使用:

import { GoogleAIFileManager } from '@google/generative-ai/server';

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 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 参数,并将经过调优的模型的 ID 作为 config 块的一部分传递。例如,如果您使用 Gemini 1.5 Flash 作为基础模型,并获得了模型 ID tunedModels/my-example-model-apbm8oqbvuv2,则可以使用以下代码块调用该模型:

const llmResponse = await generate({
  prompt: `Suggest an item for the menu of fish themed restruant`,
  model: gemini15Flash,
  config: {
    version: "tunedModels/my-example-model-apbm8oqbvuv2",
  },
});