Google 생성형 AI 플러그인

Google 생성형 AI 플러그인은 Google의 Gemini 모델에 인터페이스를 제공합니다. Gemini API를 통해 소통할 수 있습니다.

구성

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

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

플러그인에는 Gemini API용 API 키가 필요하며 Google AI Studio

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

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

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

    if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil {
      return err
    }
    

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

용도

생성 모델

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

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

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

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

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

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

임베딩 모델

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

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

text-embedding-004embedding-001 모델이 지원됩니다.

삽입기 참조에는 Google 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)을 참고하세요.