Google 生成式 AI 外掛程式會透過 Gemini API 或 Gemini API in Vertex AI 提供 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 應用程式的預設憑證。
用量
生成模型
如要取得支援模型的參照,請將其 ID 指定為 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 模型產生內容」。
嵌入模型
如要取得支援的嵌入模型參照,請將其 ID 指定為 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
}
您也可以將 Embedder 傳遞至索引器的 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)」一文。