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