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 애플리케이션을 설정해야 합니다. 기본 사용자 인증 정보
사용자 인증 정보를 지정하려면 다음 안내를 따르세요.
Google Cloud 환경 (Cloud Monitoring)에서 Functions, Cloud Run 등)에서 자동으로 설정됩니다.
로컬 개발 환경에서 다음을 실행하여 이 작업을 수행합니다.
gcloud auth application-default login
- 다른 환경의 경우 애플리케이션 기본 사용자 인증 정보를 참조하세요. 문서를 참조하세요.
또한 계정에 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)을 참고하세요.