Google 생성형 AI 플러그인

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

구성

구성은 선택한 제공업체에 따라 다릅니다.

Google AI

이 플러그인을 사용하려면 googlegenai 패키지를 가져오고 Genkit 초기화 프로그램에서 googlegenai.GoogleAIWithPlugins()에 전달합니다.

import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))

플러그인에는 Gemini API용 API 키가 필요하며 Google AI Studio에서 가져올 수 있습니다.

다음 중 하나를 수행하여 API 키를 사용하도록 플러그인을 구성합니다.

  • GEMINI_API_KEY 환경 변수를 API 키로 설정합니다.

  • 플러그인을 초기화할 때 API 키를 지정합니다.

    ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
    

    하지만 API 키를 코드에 직접 삽입하지 마세요. Cloud Secret Manager 또는 이와 유사한 서비스에서만 함께 사용할 수 있습니다

Vertex AI

이 플러그인을 사용하려면 googlegenai 패키지를 가져오고 Genkit 초기화 프로그램에서 googlegenai.VertexAIWithPlugins()에 전달합니다.

import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))

플러그인을 사용하려면 Google Cloud 프로젝트 ID, Vertex API 요청을 수행할 리전, Google Cloud 프로젝트 사용자 인증 정보를 지정해야 합니다.

  • 기본적으로 googlegenai.VertexAIGOOGLE_CLOUD_PROJECT 환경 변수에서 Google Cloud 프로젝트 ID를 가져옵니다.

    이 값을 직접 전달할 수도 있습니다.

    genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
    
  • 기본적으로 googlegenai.VertexAIGOOGLE_CLOUD_LOCATION 환경 변수에서 Vertex AI API 위치를 가져옵니다.

    이 값을 직접 전달할 수도 있습니다.

    genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
    
  • API 사용자 인증 정보를 제공하려면 Google Cloud 애플리케이션 기본 사용자 인증 정보를 설정해야 합니다.

    1. 사용자 인증 정보를 지정하려면 다음 단계를 따르세요.

      • Google Cloud 환경(Cloud Functions, Cloud Run 등)에서 흐름을 실행하는 경우 이는 자동으로 설정됩니다

      • 로컬 개발 환경에서 다음을 실행하여 수행합니다.

      gcloud auth application-default login
    2. 또한 계정에 Vertex AI 사용자 IAM 역할(roles/aiplatform.user)이 부여되었는지 확인합니다. Vertex AI 액세스 제어 문서를 참조하세요.

사용

생성 모델

지원되는 모델에 대한 참조를 가져오려면 식별자를 googlegenai.GoogleAIModel 또는 googlgenai.VertexAIModel로 지정합니다.

model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")

또는 모델 이름과 구성을 페어링하는 ModelRef를 만들 수 있습니다.

modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
    Temperature: 0.5,
    MaxOutputTokens: 500,
    // Other configuration...
})

지원되는 모델은 gemini-1.5-pro, gemini-1.5-flash, gemini-2.0-pro, gemini-2.0-flash 및 기타 실험용 모델입니다.

모델 참조에는 Google API를 호출하는 Generate() 메서드가 있습니다.

resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
      return err
}

log.Println(resp.Text())

자세한 내용은 AI 모델로 콘텐츠 생성을 참고하세요.

임베딩 모델

지원되는 임베딩 모델에 대한 참조를 가져오려면 식별자를 googlegenai.GoogleAIEmbedder 또는 googlgenai.VertexAIEmbedder로 지정합니다.

embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")

지원되는 모델은 다음과 같습니다.

  • Google AI

    text-embedding-004embedding-001

  • Vertex AI

    textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004, textembedding-gecko-multilingual@001, text-multilingual-embedding-002, multimodalembedding

삽입기 참조에는 Google AI API를 호출하는 Embed() 메서드가 있습니다.

resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
      return err
}

색인 생성기의 Index() 메서드와 검색기의 Retrieve() 메서드에 삽입기를 전달할 수도 있습니다.

if err := ai.Index(ctx, myIndexer, ai.WithDocs(docsToIndex...)); err != nil {
      return err
}
resp, err := ai.Retrieve(ctx, myRetriever, ai.WithDocs(userInput))
if err != nil {
      return err
}

자세한 내용은 검색 증강 생성(RAG)을 참조하세요.