編寫 Genkit 外掛程式

Firebase Genkit 的功能必須由外掛程式來擴充。Genkit 外掛程式是可以設定的模組,可以提供模型、擷取器、索引器、 追蹤記錄存放區等您已經瞭解外掛程式的實際運作情形 Genkit:

import {
	"github.com/firebase/genkit/go/ai"
	"github.com/firebase/genkit/go/plugins/vertexai"
}
// Default to the value of GCLOUD_PROJECT for the project,
// and "us-central1" for the location.
// To specify these values directly, pass a vertexai.Config value to Init.
if err := vertexai.Init(ctx, nil); err != nil {
	return err
}

Vertex AI 外掛程式會進行相關設定 (如使用者的 Google Cloud 專案 ID),並使用 Genkit 註冊資料庫登錄的作用是 執行階段,並支援 Genkit 本機 UI,用於執行及檢查模型 提示等

建立外掛程式

在 Go 中,Genkit 外掛程式只提供一組 命名慣例單一模組可以包含多個外掛程式。

供應商 ID

每個外掛程式都必須有一個專屬 ID 字串,用來區別這個外掛程式與 其他外掛程式Genkit 會將這個 ID 當做每項資源的命名空間 您的外掛程式會定義 ,以避免與其他外掛程式的名稱發生衝突。

舉例來說,如果您的外掛程式 ID 為 yourplugin,且提供名為 yourplugin 的模型 text-generator,完整的模型 ID 為 yourplugin/text-generator

您不需要匯出提供者 ID,但必須定義 ,並在 Genkit 函式要求時持續使用該外掛程式。

const providerID = "yourplugin"

標準匯出

每個外掛程式都應該定義並匯出下列符號:

  • Init() 函式,內含如下所示的宣告:

    func Init(ctx context.Context, cfg *Config) (err error)
    

    省略任何未使用的參數 (例如,您可能沒有 cfg 參數 (如果外掛程式未提供任何全外掛程式的設定) 選項)。

    在這個函式中,執行外掛程式所需的任何設定步驟。例如:

    • 確認您已指定並指派所有必要的設定值 預設值設為任何未指定的選用設定。
    • 確認指定的設定選項彼此有效。
    • 建立其他外掛程式所需的任何共用資源。適用對象 例如為外掛程式存取的所有服務建立用戶端。

    在可能的情況下,外掛程式提供的資源不應 假設使用者採取了呼叫 Init 以外的任何動作。

    即使外掛程式不需要 任何初始化作業。在這種情況下,Init 只會傳回 nil 錯誤。

  • Config 結構類型。這個類型應會封裝所有設定 「Init」接受的選項。

    至於任何屬於密鑰值的外掛程式選項,例如 API 金鑰,請 提供 Config 選項和預設環境變數進行設定 基礎架構讓外掛程式能運用密鑰管理功能 許多代管服務供應商 (例如 Cloud Secret Manager) 搭配 Cloud Run 使用)。例如:

    type Config struct {
    	ExampleAPIKey string
    }
    
    func Init(cfg *Config) (err error) {
    	apiKey := cfg.ExampleAPIKey
    	if apiKey == "" {
    		apiKey = os.Getenv("EXAMPLE_API_KEY")
    	}
    	if apiKey == "" {
    		return fmt.Errorf(`the Example plug-in requires you to specify an API
     key for the Example service, either by passing it to example.Init() or by
     setting the EXAMPLE_API_KEY environment variable`)
    	}
    
    	return nil
    }
    

建構外掛程式功能

單一外掛程式可在 Genkit 中啟用許多新東西。舉例來說, Vertex AI 外掛程式會啟動數個新的模型和嵌入器,

模型外掛程式

Genkit 模型外掛程式能在 Genkit 中加入一或多個生成式 AI 模型 註冊資料庫模型代表任何能接收輸入內容的生成式模型 做為輸入內容並生成文字、媒體或資料

請參閱編寫 Genkit 模型外掛程式的相關說明。

遙測外掛程式

Genkit 遙測外掛程式將 Genkit 的 OpenTelemetry 檢測設定成 將追蹤記錄、指標和記錄檔匯出至特定監控作業或圖表 如果偏好在終端機視窗中工作 可使用 Google Cloud CLI gcloud 指令列工具

請參閱編寫 Genkit 遙測外掛程式

發布外掛程式

Genkit 外掛程式能以一般 Go 套件的形式發布。為了增加 但該套件的名稱應包含 genkit,以便其辨識 只要直接在 pkg.go.dev。下列任一項目 最佳選擇:

  • github.com/yourorg/genkit-plugins/servicename
  • github.com/yourorg/your-repo/genkit/servicename