Google 생성형 AI 플러그인은 Gemini API 또는 Vertex의 Gemini API를 통해 Google의 Gemini 모델에 대한 인터페이스를 제공합니다.
구성
구성은 선택한 제공업체에 따라 다릅니다.
Google AI
이 플러그인을 사용하려면 googlegenai
패키지를 가져오고 Genkit 초기화 프로그램에서 googlegenai.GoogleAI
를 WithPlugins()
에 전달합니다.
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.VertexAI
를 WithPlugins()
에 전달합니다.
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.VertexAI
은GOOGLE_CLOUD_PROJECT
환경 변수에서 Google Cloud 프로젝트 ID를 가져옵니다.이 값을 직접 전달할 수도 있습니다.
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
기본적으로
googlegenai.VertexAI
은GOOGLE_CLOUD_LOCATION
환경 변수에서 Vertex AI API 위치를 가져옵니다.이 값을 직접 전달할 수도 있습니다.
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
API 사용자 인증 정보를 제공하려면 Google Cloud 애플리케이션 기본 사용자 인증 정보를 설정해야 합니다.
사용자 인증 정보를 지정하려면 다음 단계를 따르세요.
Google Cloud 환경(Cloud Functions, Cloud Run 등)에서 흐름을 실행하는 경우 이는 자동으로 설정됩니다
로컬 개발 환경에서 다음을 실행하여 수행합니다.
gcloud auth application-default login
- 다른 환경의 경우 애플리케이션 기본 사용자 인증 정보 문서를 참조하세요.
또한 계정에 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-004
및embedding-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)을 참조하세요.