Плагин Google Generative AI предоставляет интерфейсы к моделям Google Gemini через Gemini API .
Установка
npm i --save @genkit-ai/googleai
Конфигурация
Чтобы использовать этот плагин, укажите его при вызове configureGenkit()
:
import { googleAI } from '@genkit-ai/googleai';
export default configureGenkit({
plugins: [googleAI()],
// ...
});
Плагину требуется API-ключ для Gemini API, который вы можете получить в Google AI Studio .
Настройте плагин для использования вашего ключа API, выполнив одно из следующих действий:
Установите для переменной среды
GOOGLE_GENAI_API_KEY
свой ключ API.Укажите ключ API при инициализации плагина:
googleAI({ apiKey: yourKey });
Однако не встраивайте ключ API непосредственно в код! Используйте эту функцию только в сочетании с такой службой, как Cloud Secret Manager или аналогичной.
Некоторые модели (например, Gemini 1.5 Pro) находятся в предварительной версии и доступны только через API v1beta
. Вы можете указать apiVersion
, чтобы получить доступ к этим моделям:
configureGenkit({
plugins: [googleAI({ apiVersion: 'v1beta' })],
});
или вы можете указать несколько версий, если хотите использовать разные версии моделей одновременно.
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,
});
API файлов Gemini
Вы можете использовать файлы, загруженные в 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}}
]
});