Complemento de IA generativa de Google

El complemento de IA generativa de Google proporciona interfaces para los modelos de Gemini de Google a través de la API de Gemini.

Instalación

npm i --save @genkit-ai/googleai

Configuración

Para usar este complemento, especifícalo cuando inicialices Genkit:

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

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

El complemento requiere una clave de API para la API de Gemini, que puedes obtener en Google AI Studio

Configura el complemento para usar tu clave de API mediante una de las siguientes acciones:

  • Establece la variable de entorno GOOGLE_GENAI_API_KEY en tu clave de API.
  • Especifica la clave de API cuando inicialices el complemento:

    googleAI({ apiKey: yourKey });
    

    Sin embargo, no incorpores tu clave de API directamente en el código. Usa solo esta función junto con un servicio como Cloud Secret Manager o uno similar.

Uso

Este complemento exporta de forma estática referencias a sus modelos compatibles:

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

Puedes usar estas referencias para especificar qué modelo usa generate():

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

const llmResponse = await ai.generate('Tell me a joke.');

o usar incorporaciones (p. ej., textEmbedding004) con embed o recuperadores:

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

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

API de Gemini Files

Puedes usar los archivos subidos a la API de Gemini Files con 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}}
  ]
});

Modelos ajustados

Puedes usar modelos ajustados con la API de Google Gemini. Sigue las instrucciones de la API de Gemini o ajusta un modelo con AI Studio.

El proceso de ajuste usa un modelo base (por ejemplo, Gemini 1.5 Flash) y los ejemplos que proporcionaste para crear un modelo ajustado nuevo. Recuerda el modelo base que usaste y copia el ID del modelo nuevo.

Cuando llames al modelo ajustado en Genkit, usa el modelo base como el parámetro model y pasa el ID del modelo ajustado como parte del bloque config. Por ejemplo, si usaste Gemini 1.5 Flash como modelo base y obtuviste el ID del modelo tunedModels/my-example-model-apbm8oqbvuv2, puedes llamarlo con lo siguiente:

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",
  }),
});