Google 생성형 AI 플러그인

Google 생성형 AI 플러그인은 Gemini API를 통해 Google의 Gemini 모델에 대한 인터페이스를 제공합니다.

설치

npm i --save @genkit-ai/googleai

구성

이 플러그인을 사용하려면 Genkit를 초기화할 때 지정합니다.

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

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

플러그인에는 Gemini API용 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,
});

Gemini Files API

Genkit을 사용하여 Gemini Files API에 업로드된 파일을 사용할 수 있습니다.

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

미세 조정된 모델

Google Gemini API로 미세 조정된 모델을 사용할 수 있습니다. Gemini API의 안내를 따르거나 AI Studio를 사용하여 모델을 미세 조정합니다.

조정 프로세스는 기본 모델(예: Gemini 1.5 Flash)과 제공된 예시를 사용하여 새롭게 조정된 모델을 만듭니다. 사용한 기본 모델을 기억하고 새 모델의 ID를 복사합니다.

Genkit에서 조정된 모델을 호출할 때는 기본 모델을 model 매개변수로 사용하고 조정된 모델의 ID를 config 블록의 일부로 전달합니다. 예를 들어 Gemini 1.5 Flash를 기본 모델로 사용하고 모델 ID 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",
  }),
});