透過 Go 開始使用 Genkit (Alpha 版)

Genkit 程式庫的 Go 版現已推出預先發布版!由於 Go 程式庫目前處於 Alpha 版階段,您可能會在開發過程中看到 API 和功能變更。建議您只將其用於原型設計和探索。

如果您發現程式庫或本說明文件的問題,請在我們的 GitHub 存放區中回報。

如要開始使用 Genkit,請安裝 Genkit CLI,並在 Go 專案中執行 genkit init。本頁其餘部分會說明如何操作。

需求條件

  • Go 1.22 以上版本。請參閱官方 Go 說明文件中的「下載及安裝」一節。

  • Node.js 20 以上版本 (適用於 Genkit CLI 和 UI)。請參閱下一節,瞭解如何安裝 Node。

安裝 Genkit

  1. 如果系統尚未安裝 Node 20 以上版本,請立即安裝。

    建議:如果系統中尚未安裝 Node,您可以使用 nvmnvm-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
  2. 執行下列指令,安裝 Genkit CLI:

    npm i -g genkit

    這個指令會將 Genkit CLI 安裝到 Node 安裝目錄中,以便在 Node 專案外使用。

建立及探索範例專案

  1. 建立新的專案目錄:

    mkdir genkit-intro && cd genkit-intro
  2. 初始化 Genkit 專案:

    genkit init
    1. 選取 Go 做為執行階段環境。

    2. 選取模型:

      最簡單的入門方式,就是使用 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 定價

    3. 指定模組名稱。例如:example/genkit-intro

    4. 選擇其他問題的預設答案,系統就會使用一些範例程式碼初始化專案資料夾。

    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) 的來源等。

  3. 您現在可以在本機電腦上執行及探索 Genkit 功能和範例專案。下載並啟動 Genkit 開發人員 UI:

    genkit start

    歡迎使用 Genkit 開發人員 UI

    Genkit Developer UI 目前正在您的電腦上執行。在下一個步驟中執行模型或流程時,機器會執行所需的調度任務,讓流程的步驟能相互搭配運作;對 Gemini API 等外部服務的呼叫會持續對實體伺服器進行。

    此外,由於您處於開發環境,Genkit 會在本機檔案中儲存追蹤記錄和流程狀態。

  4. 執行 genkit start 指令時,Genkit Developer UI 會自動下載並開啟。

    開發人員 UI 可讓您查看已定義的流程和設定的模型,並執行及檢查先前執行的追蹤記錄。試試以下幾項功能:

    • 在「執行」分頁中,您會看到已定義的所有流程清單,以及任何已由外掛程式設定的模型。

      按一下「menuSuggestionFlow」,然後嘗試使用一些輸入文字 (例如 "cat") 執行。如果一切順利,您就會看到貓咪主題餐廳的菜單建議。

    • 在「檢查」分頁中,您會看到流程執行記錄。針對每個流程,您可以查看傳遞至流程的參數,以及每個步驟在執行時的追蹤記錄。