Go 適用的 Firebase Genkit 程式庫現已開放預先發布版!由於 Go 程式庫目前為 Alpha 版,您可能會看到 API 和功能變更,例如: 我們會加快腳步。建議只用於原型設計 探索。
如果發現程式庫或這份說明文件有任何問題,請回報 列在 GitHub 存放區中。
如要開始使用 Genkit,請安裝 Genkit CLI
Go 專案中的 genkit init
。本頁其餘部分將說明如何操作。
需求條件
Go 1.22 以上版本。請參閱下載及安裝: 請參閱官方 Go 文件
Node.js 20 以上版本 (適用於 Genkit CLI 和 UI)。請參閱下一節以瞭解 快速指南
安裝 Genkit
如果您在系統中還沒有 Node 20 以上版本,請立即安裝。
建議:
nvm
和nvm-windows
工具是 可以輕鬆安裝特定版本的節點 (如果尚未安裝) 安裝在系統上這些工具會為每位使用者安裝節點 不必進行整個系統的變更如何安裝
nvm
:Linux、macOS 等
執行下列指令:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Windows
按照 nvm-windows 文件中的說明,下載並執行安裝程式。
接著,如要安裝節點和
npm
,請開啟新殼層並執行下列指令 指令:nvm install 20
執行下列指令來安裝 Genkit CLI:
npm i -g genkit
這個指令會將 Genkit CLI 安裝至您的 Node 安裝目錄 以便在節點專案以外的地方使用
建立及探索範例專案
建立新的專案目錄:
mkdir genkit-intro && cd genkit-intro
初始化 Genkit 專案:
genkit init
選取
Go
做為執行階段環境。選取模型:
Gemini (Google AI)
如要開始使用,最簡單的方式就是運用 Google AI Gemini API。請確認 是 僅適用於您所在的地區。
產生 API 金鑰: 或 Google AI Studio 建立 Gemini API然後設定
GOOGLE_GENAI_API_KEY
更新為金鑰:export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
如果 Google AI Gemini API 不適用於您的區域,請考慮 Vertex AI API,其中也提供 Gemini 和其他模型個人中心 必須具備已啟用計費功能的 Google Cloud 專案、啟用 AI Platform API,並設定其他環境變數:
gcloud services enable aiplatform.googleapis.com
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
查看 Vertex AI 定價。
指定任何模組名稱。例如:
example/genkit-intro
選擇其餘問題的預設答案, 使用一些程式碼範例初始化專案資料夾。
genkit init
指令會建立範例 Go 模組,並安裝 所需的依附元件main.go
檔案含有單一資料流。menuSuggestionFlow
,就會提示 LLM 以及特定主題的餐廳這個檔案的內容如下所示 (外掛程式設定步驟) 如果選擇 Vertex AI,看起來可能會有所不同):
package main import ( "context" "errors" "fmt" "log" // Import Genkit and the Google AI plugin "github.com/firebase/genkit/go/ai" "github.com/firebase/genkit/go/genkit" "github.com/firebase/genkit/go/plugins/googleai" ) func main() { ctx := context.Background() // Initialize the Google AI plugin. When you pass nil for the // Config parameter, the Google AI plugin will get the API key from the // GOOGLE_GENAI_API_KEY environment variable, which is the recommended // practice. if err := googleai.Init(ctx, nil); err != nil { log.Fatal(err) } // Define a simple flow that prompts an LLM to generate menu suggestions. genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) { // The Google AI API provides access to several generative models. Here, // we specify gemini-1.5-flash. m := googleai.Model("gemini-1.5-flash") if m == nil { return "", errors.New("menuSuggestionFlow: failed to find model") } // Construct a request and send it to the model API (Google AI). resp, err := ai.Generate(ctx, m, ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}), ai.WithTextPrompt(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input))) if err != nil { return "", err } // Handle the response from the model API. In this sample, we just // convert it to a string. but more complicated flows might coerce the // response into structured output or chain the response into another // LLM call. text := resp.Text() return text, nil }) // Initialize Genkit and start a flow server. This call must come last, // after all of your plug-in configuration and flow definitions. When you // pass a nil configuration to Init, Genkit starts a local flow server, // which you can interact with using the developer UI. if err := genkit.Init(ctx, nil); err != nil { log.Fatal(err) } }
透過 Genkit 建構應用程式的 AI 功能 包含多個步驟的流程,例如輸入預先處理、較複雜的 提示建構、整合外部資訊來源 包括檢索增強生成 (RAG) 等等
您現在可以在本機執行及探索 Genkit 功能和範例專案 虛擬機器下載並啟動 Genkit 開發人員 UI:
genkit start
Genkit 開發人員 UI 現已在您的電腦上執行。執行模型 機器就會執行自動化調度管理任務 才能整合流程各步驟撥打外部電話 Gemini API 等服務 伺服器
此外,由於您處於開發環境,因此 Genkit 會儲存追蹤記錄 本機檔案中的流程狀態
當您執行
genkit start
指令。開發人員 UI 會顯示您已定義的流程和模型 設定、執行映像檔,並檢查先前執行作業的追蹤記錄。試用其他 這些功能:
在「Run」分頁中,您會看到所有流程清單 以及由外掛程式設定的所有模型
請按一下「menuSuggestionFlow」,然後試著輸入一些輸入文字 (例如: 例如
"cat"
)。如果一切順利,你將收到選單獎勵 與貓主題餐廳的建議。「Inspect」分頁會顯示流程執行歷史記錄。對於每項 流程中,您可以查看傳遞至流程的參數和追蹤記錄 每個步驟的執行階段