Các tính năng của Genkit được thiết kế để mở rộng bằng các trình bổ trợ. Trình bổ trợ Genkit là các mô-đun có thể định cấu hình có thể cung cấp mô hình, trình truy xuất, trình lập chỉ mục, cửa hàng theo dõi và nhiều tính năng khác. Bạn đã thấy các trình bổ trợ hoạt động chỉ bằng cách sử dụng Genkit:
import (
"github.com/firebase/genkit/go/ai"
"github.com/firebase/genkit/go/genkit"
"github.com/firebase/genkit/go/plugins/googlegenai"
"github.com/firebase/genkit/go/plugins/server"
)
g, err := genkit.Init(ctx,
ai.WithPlugins(
&googlegenai.GoogleAI{APIKey: ...},
&googlegenai.VertexAI{ProjectID: "my-project", Location: "us-central1"},
),
)
Trình bổ trợ Vertex AI lấy cấu hình (chẳng hạn như mã dự án Google Cloud của người dùng) và đăng ký nhiều mô hình, trình nhúng mới và nhiều nội dung khác bằng sổ đăng ký Genkit. Cấu phần đăng ký đóng vai trò là dịch vụ tra cứu cho các thao tác được đặt tên trong thời gian chạy và hỗ trợ giao diện người dùng cục bộ của Genkit để chạy và kiểm tra các mô hình, lời nhắc, v.v.
Tạo trình bổ trợ
Trong Go, trình bổ trợ Genkit là một gói tuân thủ một số quy ước nhỏ. Một mô-đun có thể chứa một số trình bổ trợ.
Mã nhận dạng nhà cung cấp
Mỗi trình bổ trợ phải có một chuỗi giá trị nhận dạng duy nhất để phân biệt với các trình bổ trợ khác. Genkit sử dụng giá trị nhận dạng này làm không gian tên cho mọi tài nguyên mà trình bổ trợ của bạn xác định, để tránh xung đột tên với các trình bổ trợ khác.
Ví dụ: nếu trình bổ trợ của bạn có mã nhận dạng yourplugin
và cung cấp một mô hình có tên là text-generator
, thì giá trị nhận dạng mô hình đầy đủ sẽ là yourplugin/text-generator
.
Bạn cần xuất mã nhận dạng nhà cung cấp này và xác định một lần cho trình bổ trợ của mình, đồng thời sử dụng mã nhận dạng này một cách nhất quán khi hàm Genkit yêu cầu.
const providerID = "yourplugin"
Xuất dữ liệu chuẩn
Mỗi trình bổ trợ phải xác định và xuất các ký hiệu sau để tuân thủ giao diện genkit.Plugin
:
Một loại cấu trúc đóng gói tất cả các tuỳ chọn cấu hình mà trình bổ trợ chấp nhận.
Đối với mọi tuỳ chọn trình bổ trợ là giá trị bảo mật, chẳng hạn như khoá API, bạn nên cung cấp cả tuỳ chọn cấu hình và biến môi trường mặc định để định cấu hình tuỳ chọn đó. Điều này cho phép trình bổ trợ của bạn tận dụng các tính năng quản lý bí mật do nhiều nhà cung cấp dịch vụ lưu trữ cung cấp (chẳng hạn như Trình quản lý bí mật trên đám mây mà bạn có thể sử dụng với Cloud Run). Ví dụ:
type MyPlugin struct { APIKey string // Other options you may allow to configure... }
Phương thức
Name()
trên cấu trúc trả về mã nhận dạng trình cung cấp.Phương thức
Init()
trên cấu trúc có nội dung khai báo như sau:func (m *MyPlugin) Init(ctx context.Context, g *genkit.Genkit) error
Trong hàm này, hãy thực hiện mọi bước thiết lập mà trình bổ trợ của bạn yêu cầu. Ví dụ:
- Xác nhận rằng mọi giá trị cấu hình bắt buộc đều được chỉ định và gán giá trị mặc định cho mọi chế độ cài đặt không bắt buộc chưa được chỉ định.
- Xác minh rằng các tuỳ chọn cấu hình đã cho là hợp lệ với nhau.
- Tạo mọi tài nguyên dùng chung mà phần còn lại của trình bổ trợ cần. Ví dụ: tạo ứng dụng cho mọi dịch vụ mà trình bổ trợ của bạn truy cập.
Trong phạm vi có thể, các tài nguyên do trình bổ trợ của bạn cung cấp không được giả định rằng bất kỳ trình bổ trợ nào khác đã được cài đặt trước trình bổ trợ này.
Phương thức này sẽ được gọi tự động trong
genkit.Init()
khi người dùng truyền trình bổ trợ vào tuỳ chọnWithPlugins()
.
Xây dựng tính năng trình bổ trợ
Một trình bổ trợ có thể kích hoạt nhiều tính năng mới trong Genkit. Ví dụ: trình bổ trợ Vertex AI kích hoạt một số mô hình mới cũng như trình nhúng.
Trình bổ trợ mô hình
Trình bổ trợ mô hình Genkit thêm một hoặc nhiều mô hình AI tạo sinh vào sổ đăng ký Genkit. Mô hình đại diện cho mọi mô hình tạo sinh có thể nhận một câu lệnh làm dữ liệu đầu vào và tạo văn bản, nội dung nghe nhìn hoặc dữ liệu làm dữ liệu đầu ra.
Xem phần Viết trình bổ trợ mô hình Genkit.
Trình bổ trợ đo từ xa
Trình bổ trợ đo từ xa Genkit định cấu hình khả năng đo lường OpenTelemetry của Genkit để xuất dấu vết, chỉ số và nhật ký sang một công cụ giám sát hoặc trực quan hoá cụ thể.
Xem phần Viết trình bổ trợ đo từ xa Genkit.
Phát hành trình bổ trợ
Bạn có thể phát hành các trình bổ trợ Genkit dưới dạng gói Go thông thường. Để tăng khả năng khám phá, gói của bạn phải có genkit
ở đâu đó trong tên để có thể tìm thấy gói đó bằng một thao tác tìm kiếm đơn giản trên pkg.go.dev
. Bạn có thể chọn bất kỳ tên nào sau đây:
github.com/yourorg/genkit-plugins/servicename
github.com/yourorg/your-repo/genkit/servicename