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 或類似服務

用量

生成模型

如要取得支援模型的參照,請指定模型 ID:

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

支援下列模型:gemini-1.0-progemini-1.5-progemini-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
}

詳情請參閱產生內容

嵌入模型

如要取得支援嵌入模型的參照,請指定模型 ID:

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) 一文。