Genkit 程式庫的 Go 版現已推出預先發布版!由於 Go 程式庫目前處於 Alpha 版階段,您可能會在開發過程中看到 API 和功能變更。建議您只將其用於原型設計和探索。
如果您發現程式庫或本說明文件的問題,請在我們的 GitHub 存放區中回報。
如要開始使用 Genkit,請安裝 Genkit CLI,並在 Go 專案中執行 genkit init
。本頁其餘部分會說明如何操作。
需求條件
Go 1.22 以上版本。請參閱官方 Go 說明文件中的「下載及安裝」一節。
Node.js 20 以上版本 (適用於 Genkit CLI 和 UI)。請參閱下一節,瞭解如何安裝 Node。
安裝 Genkit
如果系統尚未安裝 Node 20 以上版本,請立即安裝。
建議:如果系統中尚未安裝 Node,您可以使用
nvm
和nvm-windows
工具,輕鬆安裝特定版本的 Node。這些工具會針對個別使用者安裝 Node,因此您不需要進行系統層級變更。如要安裝
nvm
:執行下列指令:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
按照 nvm-windows 說明文件所述下載並執行安裝程式。
接著,如要安裝 Node 和
npm
,請開啟新的 shell 並執行下列指令:nvm install 20
執行下列指令,安裝 Genkit CLI:
npm i -g genkit
這個指令會將 Genkit CLI 安裝到 Node 安裝目錄中,以便在 Node 專案外使用。
建立及探索範例專案
建立新的專案目錄:
mkdir genkit-intro && cd genkit-intro
初始化 Genkit 專案:
genkit init
選取
Go
做為執行階段環境。選取模型:
最簡單的入門方式,就是使用 Google AI Gemini API。確認該服務在您所在的地區可用。
使用 Google AI Studio 產生 Gemini API 的 API 金鑰。接著,將
GOOGLE_GENAI_API_KEY
環境變數設為金鑰:export GOOGLE_GENAI_API_KEY=<your API key>
如果您所在的地區無法使用 Google AI Gemini API,建議您使用 Vertex AI API,因為該 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/googlegenai" ) func main() { ctx := context.Background() // Initialize Genkit with 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. g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{})) if err != nil { log.Fatal(err) } // Define a simple flow that prompts an LLM to generate menu suggestions. genkit.DefineFlow(g, "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 := googlegenai.GoogleAIModel(g, "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 := genkit.Generate(ctx, g, ai.WithModel(m), ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}), ai.WithPromptText(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 }) <-ctx.Done() }
使用 Genkit 建構應用程式的 AI 功能時,您可能會建立包含多個步驟的工作流程,例如輸入預先處理、更複雜的提示建構、整合檢索增強生成 (RAG) 的來源等。
您現在可以在本機電腦上執行及探索 Genkit 功能和範例專案。下載並啟動 Genkit 開發人員 UI:
genkit start
Genkit Developer UI 目前正在您的電腦上執行。在下一個步驟中執行模型或流程時,機器會執行所需的調度任務,讓流程的步驟能相互搭配運作;對 Gemini API 等外部服務的呼叫會持續對實體伺服器進行。
此外,由於您處於開發環境,Genkit 會在本機檔案中儲存追蹤記錄和流程狀態。
執行
genkit start
指令時,Genkit Developer UI 會自動下載並開啟。開發人員 UI 可讓您查看已定義的流程和設定的模型,並執行及檢查先前執行的追蹤記錄。試試以下幾項功能:
在「執行」分頁中,您會看到已定義的所有流程清單,以及任何已由外掛程式設定的模型。
按一下「menuSuggestionFlow」,然後嘗試使用一些輸入文字 (例如
"cat"
) 執行。如果一切順利,您就會看到貓咪主題餐廳的菜單建議。在「檢查」分頁中,您會看到流程執行記錄。針對每個流程,您可以查看傳遞至流程的參數,以及每個步驟在執行時的追蹤記錄。