O plug-in da IA generativa do Google fornece interfaces para os modelos do Gemini do Google pela API Gemini.
Instalação
npm i --save @genkit-ai/googleai
Configuração
Para usar esse plug-in, especifique-o ao chamar configureGenkit()
:
import { googleAI } from '@genkit-ai/googleai';
export default configureGenkit({
plugins: [googleAI()],
// ...
});
O plug-in exige uma chave de API para a API Gemini, que você pode acessar no Google AI Studio.
Siga um destes procedimentos para configurar o plug-in para usar sua chave de API:
Defina a variável de ambiente
GOOGLE_GENAI_API_KEY
como sua chave de API.Especifique a chave de API ao inicializar o plug-in:
googleAI({ apiKey: yourKey });
No entanto, não incorpore a chave de API diretamente no código. Use este recurso apenas em conjunto com um serviço como Cloud Secret Manager ou similar.
Alguns modelos (como o Gemini 1.5 Pro) estão em pré-lançamento e só podem ser disponibilizados pelo
API v1beta
. Especifique o apiVersion
para ter acesso a esses modelos:
configureGenkit({
plugins: [googleAI({ apiVersion: 'v1beta' })],
});
ou você pode especificar várias versões se quiser usar diferentes versões do ao mesmo tempo.
configureGenkit({
plugins: [googleAI({ apiVersion: ['v1', 'v1beta'] })],
});
Uso
Este plug-in exporta estaticamente referências aos modelos compatíveis:
import {
gemini15Flash,
gemini15Pro,
textEmbeddingGecko001,
} from '@genkit-ai/googleai';
É possível usar essas referências para especificar qual modelo o generate()
usa:
const llmResponse = await generate({
model: gemini15Flash,
prompt: 'Tell me a joke.',
});
ou usar embedders (por exemplo, textEmbeddingGecko001
) com embed
ou recuperadores:
const embedding = await embed({
embedder: textEmbeddingGecko001,
content: input,
});
API Gemini Files
Você pode usar arquivos enviados para a API Gemini Files com o 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}}
]
});