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
或 retrievers:
const ai = genkit({
plugins: [googleAI()],
});
const embedding = await ai.embed({
embedder: textEmbedding004,
content: input,
});
Gemini Files API
您可以使用透過 Genkit 上傳至 Gemini Files API 的檔案:
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
參數,並將經過調整的模型 ID 傳遞為 config
區塊的一部分。舉例來說,如果您使用 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",
}),
});