Plug-in Google IA générative

Le plug-in d'IA générative de Google fournit des interfaces aux modèles Gemini de Google via l'API Gemini.

Installation

npm i --save @genkit-ai/googleai

Configuration

Pour utiliser ce plug-in, spécifiez-le lorsque vous appelez configureGenkit():

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

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

Le plug-in nécessite une clé API pour l'API Gemini, que vous pouvez obtenir via Google AI Studio

Configurez le plug-in pour qu'il utilise votre clé API en effectuant l'une des opérations suivantes:

  • Définissez la variable d'environnement GOOGLE_GENAI_API_KEY sur votre clé API.

  • Spécifiez la clé API lorsque vous initialisez le plug-in:

    googleAI({ apiKey: yourKey });
    

    Toutefois, n'intégrez pas votre clé API directement dans le code. Utiliser uniquement cette fonctionnalité conjointement avec un service comme Cloud Secret Manager ou similaire.

Certains modèles (comme Gemini 1.5 Pro) sont en version preview et ne sont disponibles que via le API v1beta. Vous pouvez spécifier apiVersion pour accéder à ces modèles :

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

Vous pouvez également spécifier plusieurs versions si vous souhaitez utiliser différentes versions de modèles en même temps.

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

Utilisation

Ce plug-in exporte de manière statique des références vers ses modèles compatibles:

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

Vous pouvez utiliser ces références pour spécifier le modèle utilisé par generate() :

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

ou utiliser des intégrateurs (par exemple, textEmbeddingGecko001) avec embed ou retrievers:

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

API Gemini Files

Vous pouvez utiliser les fichiers importés dans l'API Gemini Files avec 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}}
  ]
});

Modèles affinés

Vous pouvez utiliser des modèles affinés avec l'API Google Gemini. Suivez les instructions de l'API Gemini ou affinez un modèle à l'aide de AI Studio.

Le processus de réglage utilise un modèle de base (par exemple, Gemini 1.5 Flash) et les exemples que vous avez fournis pour créer un modèle réglé. Mémorisez le modèle de base que vous avez utilisé et copiez l'ID du nouveau modèle.

Lorsque vous appelez le modèle affiné dans Genkit, utilisez le modèle de base comme paramètre model et transmettez l'ID du modèle affiné dans le bloc config. Par exemple, si vous avez utilisé Gemini 1.5 Flash comme modèle de base et que vous avez obtenu l'ID de modèle tunedModels/my-example-model-apbm8oqbvuv2, vous pouvez l'appeler avec un bloc comme suit :

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