Плагин Google Generative AI

Плагин Google Generative AI предоставляет интерфейсы к моделям Google Gemini через Gemini API .

Установка

npm i --save @genkit-ai/googleai

Конфигурация

Чтобы использовать этот плагин, укажите его при инициализации Genkit:

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

const ai = genkit({
  plugins: [googleAI()],
});

Плагину требуется API-ключ для Gemini 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 или методами извлечения:

const ai = genkit({
  plugins: [googleAI()],
});

const embedding = await ai.embed({
  embedder: textEmbedding004,
  content: input,
});

API файлов Gemini

Вы можете использовать файлы, загруженные в Gemini Files API, с помощью Genkit:

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}}
  ]
});

Точные настройки моделей

Вы можете использовать модели, настроенные с помощью API Google Gemini. Следуйте инструкциям API Gemini или настройте модель с помощью AI Studio .

В процессе настройки используется базовая модель, например Gemini 1.5 Flash, и предоставленные вами примеры для создания новой настроенной модели. Запомните использованную базовую модель и скопируйте идентификатор новой модели.

При вызове настроенной модели в Genkit используйте базовую модель в качестве параметра model и передайте идентификатор настроенной модели как часть блока config . Например, если вы использовали Gemini 1.5 Flash в качестве базовой модели и получили идентификатор модели 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",
  }),
});