Vertex AI 플러그인은 Vertex AI API를 통해 여러 Google 생성형 AI 모델에 대한 인터페이스를 제공합니다.
요구사항
이 플러그인을 사용하는 흐름을 로컬에서 실행하려면 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, Vertex API 요청을 수행할 리전, Google Cloud 프로젝트 사용자 인증 정보를 지정해야 합니다.
기본적으로
vertexai.Init()
은GCLOUD_PROJECT
환경 변수에서 Google Cloud 프로젝트 ID를 가져옵니다.이 값을 직접 전달할 수도 있습니다.
if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err }
기본적으로
vertexai.Init()
은GCLOUD_LOCATION
환경 변수에서 Vertex AI API 위치를 가져옵니다.이 값을 직접 전달할 수도 있습니다.
if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil { return err }
API 사용자 인증 정보를 제공하려면 Google Cloud 애플리케이션 기본 사용자 인증 정보를 설정해야 합니다.
사용자 인증 정보를 지정하려면 다음 단계를 따르세요.
Google Cloud 환경(Cloud Functions, Cloud Run 등)에서 흐름을 실행하는 경우 이는 자동으로 설정됩니다
로컬 개발 환경에서 다음을 실행하여 수행합니다.
gcloud auth application-default login
- 다른 환경의 경우 애플리케이션 기본 사용자 인증 정보 문서를 참조하세요.
또한 계정에 Vertex AI 사용자 IAM 역할(
roles/aiplatform.user
)이 부여되었는지 확인합니다. Vertex AI 액세스 제어 문서를 참조하세요.
용도
생성 모델
지원되는 모델에 대한 참조를 가져오려면 식별자를 지정합니다.
langModel := vertexai.Model("gemini-1.5-flash")
지원되는 모델은 gemini-1.0-pro
, gemini-1.5-pro
, gemini-1.5-flash
입니다.
모델 참조에는 Vertex AI API를 호출하는 Generate()
메서드가 있습니다.
genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
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 := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
색인 생성기의 Index()
메서드와 검색기의 Retrieve()
메서드에 삽입기를 전달할 수도 있습니다.
if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil {
return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
return err
}
자세한 내용은 검색 증강 생성(RAG)을 참조하세요.