Bạn hiện có thể xem trước thư viện Firebase Genkit dành cho phiên bản Go! Vì Thư viện Go hiện đang ở giai đoạn Alpha, bạn có thể thấy các thay đổi về API và chức năng như sau: tiến trình phát triển của mình. Bạn chỉ nên sử dụng đối tượng này để tạo nguyên mẫu và khám phá.
Nếu bạn phát hiện có vấn đề với thư viện hoặc tài liệu này, vui lòng báo cáo chúng trong kho lưu trữ GitHub của chúng tôi.
Để bắt đầu sử dụng Genkit, hãy cài đặt Genkit CLI rồi chạy
genkit init
trong một dự án Go. Phần còn lại của trang này sẽ hướng dẫn bạn cách thực hiện.
Yêu cầu
Phiên bản 1.22 trở lên. Xem phần Tải xuống và cài đặt trong các tài liệu Go chính thức.
Node.js 20 trở lên (dành cho CLI và giao diện người dùng của Genkit). Xem phần tiếp theo để biết hướng dẫn ngắn gọn về cách cài đặt Nút.
Cài đặt Genkit
Nếu bạn chưa có Nút 20 trở lên trên hệ thống, hãy cài đặt ngay.
Đề xuất:
nvm
và Công cụ củanvm-windows
là cách thuận tiện để cài đặt các phiên bản Nút cụ thể nếu chưa có trên hệ thống của bạn. Các công cụ này cài đặt Nút cho mỗi người dùng, vì vậy, bạn không cần thực hiện các thay đổi trên toàn hệ thống.Cách cài đặt
nvm
:Linux, macOS, v.v.
Chạy lệnh sau:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Windows
Tải xuống và chạy trình cài đặt theo mô tả trong tài liệu về nvm-windows.
Sau đó, để cài đặt Nút và
npm
, hãy mở một shell mới rồi chạy lệnh sau :nvm install 20
Cài đặt Genkit CLI bằng cách chạy lệnh sau:
npm i -g genkit
Lệnh này sẽ cài đặt Genkit CLI vào thư mục cài đặt Nút để có thể sử dụng bên ngoài dự án Nút.
Tạo và khám phá một dự án mẫu
Tạo thư mục dự án mới:
mkdir genkit-intro && cd genkit-intro
Khởi chạy dự án Genkit:
genkit init
Chọn
Go
làm môi trường thời gian chạy.Chọn mô hình của bạn:
Gemini (AI của Google)
Cách đơn giản nhất để bắt đầu là sử dụng Gemini API của Google AI. Đảm bảo đó là hoạt động ở khu vực của bạn.
Tạo khoá API cho Gemini API thông qua Google AI Studio. Sau đó, đặt giá trị
GOOGLE_GENAI_API_KEY
biến môi trường vào khoá của bạn:export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (AI Vertex)
Nếu Gemini API của Google AI không có ở khu vực của bạn, hãy cân nhắc dùng Vertex AI API, vốn cũng cung cấp Gemini và các mô hình khác. Bạn sẽ cần có một dự án Google Cloud có hỗ trợ thanh toán, bật AI API Nền tảng và đặt một số biến môi trường bổ sung:
gcloud services enable aiplatform.googleapis.com
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
Chỉ định bất kỳ thông tin nào cho tên mô-đun. Ví dụ:
example/genkit-intro
Chọn câu trả lời mặc định cho các câu hỏi còn lại. Điều này sẽ khởi chạy thư mục dự án của bạn với một số mã mẫu.
Lệnh
genkit init
tạo một mô-đun Go mẫu và cài đặt các phần phụ thuộc bắt buộc. Tệpmain.go
chứa một luồng duy nhất,menuSuggestionFlow
để nhắc một LLM đề xuất một mục cho một nhà hàng có chủ đề nhất định.Tệp này có dạng như sau (các bước định cấu hình trình bổ trợ có thể trông khác nếu bạn chọn 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/googleai" ) func main() { ctx := context.Background() // Initialize 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. if err := googleai.Init(ctx, nil); err != nil { log.Fatal(err) } // Define a simple flow that prompts an LLM to generate menu suggestions. genkit.DefineFlow("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 := googleai.Model("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 := ai.Generate(ctx, m, ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}), ai.WithTextPrompt(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 }) // Initialize Genkit and start a flow server. This call must come last, // after all of your plug-in configuration and flow definitions. When you // pass a nil configuration to Init, Genkit starts a local flow server, // which you can interact with using the developer UI. if err := genkit.Init(ctx, nil); err != nil { log.Fatal(err) } }
Khi xây dựng các tính năng AI cho ứng dụng của mình bằng Genkit, có thể bạn sẽ tạo có nhiều bước như xử lý trước đầu vào, phức tạp hơn tạo nhanh, tích hợp các nguồn thông tin bên ngoài cho tạo tăng cường truy xuất (RAG), v.v.
Giờ đây, bạn có thể chạy và khám phá các tính năng của Genkit cũng như dự án mẫu trên thiết bị trên máy của bạn. Tải xuống và khởi động giao diện người dùng dành cho nhà phát triển Genkit:
genkit start
Giao diện người dùng dành cho nhà phát triển Genkit hiện đang chạy trên máy của bạn. Khi bạn chạy mô hình hoặc luồng ở bước tiếp theo, máy của bạn sẽ thực hiện các nhiệm vụ điều phối cần thiết để các bước trong quy trình hoạt động cùng nhau; lệnh gọi đến các nguồn bên ngoài các dịch vụ như Gemini API sẽ tiếp tục được triển khai để so sánh máy chủ.
Ngoài ra, do bạn đang ở trong môi trường nhà phát triển, nên Genkit sẽ lưu trữ dấu vết và trạng thái luồng trong tệp cục bộ.
Giao diện người dùng dành cho nhà phát triển Genkit sẽ tự động tải xuống và mở khi bạn chạy Lệnh
genkit start
.Giao diện người dùng dành cho nhà phát triển cho phép bạn xem những quy trình mà bạn đã xác định và các mô hình mà bạn đã định cấu hình, chạy chúng và kiểm tra dấu vết của các lần chạy trước đó. Hãy thử một vài các tính năng này:
Trên thẻ Run (Chạy), bạn sẽ thấy danh sách tất cả các quy trình mà bạn có đã xác định và bất kỳ mô hình nào đã được định cấu hình bởi trình bổ trợ.
Nhấp vào menusuggestedionFlow và thử chạy với một số văn bản nhập (cho ví dụ:
"cat"
). Nếu mọi việc suôn sẻ, bạn sẽ nhận được một thực đơn gợi ý cho một nhà hàng chủ đề mèo.Trên thẻ Inspect (Kiểm tra), bạn sẽ thấy nhật ký thực thi luồng. Đối với mỗi luồng, bạn có thể xem các thông số đã được truyền đến luồng và một dấu vết của từng bước trong quá trình chạy.