Vertex AI 플러그인

Vertex AI 플러그인은 여러 Google 생성형 AI 모델에 대한 인터페이스를 제공합니다. Vertex AI API를 통해 머신러닝 모델을 빌드할 수 있습니다

요구사항

이 플러그인을 사용하는 흐름을 로컬에서 실행하려면 Google Cloud CLI 도구 설치

구성

이 플러그인을 사용하려면 vertexai 패키지를 가져오고 vertexai.Init()를 호출합니다.

import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
    return err
}

플러그인을 사용하려면 Google Cloud 프로젝트 ID, 리전 대상 객체와 Google Cloud 프로젝트를 사용자 인증 정보를 제공합니다

  • 기본적으로 vertexai.Init()GCLOUD_PROJECT 환경 변수입니다.

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

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
      return err
    }
    
  • 기본적으로 vertexai.Init()는 다음 위치에서 Vertex AI API 위치를 가져옵니다. GCLOUD_LOCATION 환경 변수입니다.

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

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
      return err
    }
    
  • API 사용자 인증 정보를 제공하려면 Google Cloud 애플리케이션을 설정해야 합니다. 기본 사용자 인증 정보

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

      • Google Cloud 환경 (Cloud Monitoring)에서 Functions, Cloud Run 등)에서 자동으로 설정됩니다.

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

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

용도

생성 모델

지원되는 모델에 대한 참조를 가져오려면 다음과 같이 식별자를 지정합니다.

langModel := vertexai.Model("gemini-1.5-pro")

지원되는 모델: gemini-1.0-pro, gemini-1.5-pro, gemini-1.5-flash입니다.

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

genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
    nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
if err != nil {
    return err
}

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

임베딩 모델

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

embeddingModel := vertexai.Embedder("text-embedding-004")

지원되는 모델은 textembedding-gecko@003, textembedding-gecko@002, textembedding-gecko@001, text-embedding-004 textembedding-gecko-multilingual@001, text-multilingual-embedding-002, multimodalembedding

임베딩 참조에는 Vertex AI API를 호출하는 Embed() 메서드가 있습니다.

embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
    Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
    return err
}

색인 생성기의 Index() 메서드와 검색기의 Retrieve() 메서드:

if err := myIndexer.Index(ctx, &ai.IndexerRequest{Documents: docsToIndex}); err != nil {
    return err
}
retrieveRes, err := myRetriever.Retrieve(ctx, &ai.RetrieverRequest{
    Document: ai.DocumentFromText(userInput, nil),
})
if err != nil {
    return err
}

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