Để bắt đầu sử dụng Firebase Genkit, hãy cài đặt Genkit CLI rồi chạy
genkit init
trong dự án Node.js. 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
Node.js 20 trở lên.
Đề xuất: nvm
và
Công cụ của nvm-windows
là
thuận tiện để cài đặt Nút.
Cài đặt Genkit
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 một dự án Nút mới:
mkdir genkit-intro && cd genkit-intro
npm init -y
Xem package.json và đảm bảo trường
main
được đặt thànhlib/index.js
Khởi chạy dự án Genkit:
genkit init
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
Xem tại https://cloud.google.com/vertex-ai/generative-ai/pricing để biết giá của Vertex AI.
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 tệp nguồn mẫuindex.ts
. Tệp này xác định một luồng duy nhất (menuSuggestionFlow
) để nhắc một mô hình ngôn ngữ lớn (LLM) đề xuất một mặt hàng của một nhà hàng theo một 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):
import * as z from 'zod'; // Import the Genkit core libraries and plugins. import { generate } from '@genkit-ai/ai'; import { configureGenkit } from '@genkit-ai/core'; import { defineFlow, startFlowsServer } from '@genkit-ai/flow'; import { googleAI } from '@genkit-ai/googleai'; // Import models from the Google AI plugin. The Google AI API provides access to // several generative models. Here, we import Gemini 1.5 Flash. import { gemini15Flash } from '@genkit-ai/googleai'; configureGenkit({ plugins: [ // Load the Google AI plugin. You can optionally specify your API key // by passing in a config object; if you don't, the Google AI plugin uses // the value from the GOOGLE_GENAI_API_KEY environment variable, which is // the recommended practice. googleAI(), ], // Log debug output to tbe console. logLevel: 'debug', // Perform OpenTelemetry instrumentation and enable trace collection. enableTracingAndMetrics: true, }); // Define a simple flow that prompts an LLM to generate menu suggestions. export const menuSuggestionFlow = defineFlow( { name: 'menuSuggestionFlow', inputSchema: z.string(), outputSchema: z.string(), }, async (subject) => { // Construct a request and send it to the model API. const llmResponse = await generate({ prompt: `Suggest an item for the menu of a ${subject} themed restaurant`, model: gemini15Flash, config: { temperature: 1, }, }); // 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, etc. return llmResponse.text(); } ); // Start a flow server, which exposes your flows as HTTP endpoints. This call // must come last, after all of your plug-in configuration and flow definitions. // You can optionally specify a subset of flows to serve, and configure some // HTTP server options, but by default, the flow server serves all defined flows. startFlowsServer();
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 luồng gồm nhiều bước như xử lý trước đầu vào, tạo câu lệnh tinh vi, tích hợp thông tin bên ngoài để tạo dữ liệu 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 rồi thử chạy với một số văn bản đầu vào (ví dụ:
"cat"
). Nếu mọi việc suôn sẻ, bạn sẽ nhận được một đề xuất thực đơn cho một chú mèo nhà hàng theo chủ đề.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ể thấy các thông số đã được chuyển đến luồng và dấu vết của từng bước trong quá trình chạy.
Các bước tiếp theo
Xem cách xây dựng và triển khai ứng dụng Genkit của bạn bằng Firebase, Cloud Run hoặc bất kỳ nền tảng Node.js nào.