Firebase Genkit với Cloud Run

Bạn có thể triển khai quy trình Firebase Genkit dưới dạng dịch vụ web bằng Cloud Run. Trang này, làm ví dụ: hướng dẫn bạn qua quy trình triển khai mẫu mặc định luồng.

  1. Cài đặt các công cụ cần thiết:

    1. Đảm bảo bạn đang sử dụng Node.js phiên bản 20 trở lên (chạy node --version để kiểm tra).

    2. Cài đặt Google Cloud CLI.

  2. Tạo một dự án mới trên Google Cloud bằng Bảng điều khiển Cloud hoặc chọn một bảng điều khiển hiện có. Bạn phải liên kết dự án với một tài khoản thanh toán.

    Sau khi bạn tạo hoặc chọn một dự án, hãy định cấu hình Google Cloud CLI để sử dụng nó:

    gcloud init
    
  3. Tạo thư mục cho dự án mẫu Genkit:

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    Nếu bạn định dùng một IDE, hãy mở IDE vào thư mục này.

  4. Khởi chạy dự án Node.js trong thư mục dự án:

    npm init -y
    
  5. Khởi chạy Genkit trong dự án Node.js:

    genkit init
    
    • Chọn Google Cloud làm nền tảng triển khai.
    • Chọn nhà cung cấp mô hình bạn muốn sử dụng.

    Chấp nhận chế độ mặc định cho các câu lệnh còn lại. Công cụ genkit sẽ tạo một số tệp nguồn mẫu để giúp bạn bắt đầu phát triển các luồng AI của riêng mình. Tuy nhiên, trong phần còn lại của hướng dẫn này, bạn sẽ chỉ triển khai luồng mẫu.

  6. Cung cấp thông tin đăng nhập API cho chức năng bạn đã triển khai. Thực hiện một trong sau, tuỳ thuộc vào nhà cung cấp mô hình mà bạn đã chọn:

    Gemini (AI của Google)

    1. Đảm bảo AI của Google hoạt động ở khu vực của bạn.

    2. Tạo khoá API cho Gemini API thông qua Google AI Studio.

    3. Cung cấp khoá API trong môi trường Cloud Run:

      1. Trong bảng điều khiển Cloud, hãy bật Secret Manager API (API Trình quản lý bí mật).
      2. Trên Trình quản lý bí mật hãy tạo một mã thông báo bí mật mới có chứa khoá API của bạn.
      3. Sau khi bạn tạo khoá bí mật, trên cùng một trang, hãy cấp quyền mặc định tính toán quyền truy cập vào tài khoản dịch vụ vào mã thông báo bí mật bằng Vai trò Người truy cập bí mật của người quản lý bí mật. (Bạn có thể tra cứu tên của tài khoản dịch vụ điện toán mặc định trên trang IAM).

      Ở bước sau, khi triển khai dịch vụ, bạn sẽ cần phải tham chiếu đến tên của khoá bí mật này.

    4. Không bắt buộc: Nếu bạn muốn chạy quy trình cục bộ, như trong bước tiếp theo bước, hãy đặt biến môi trường GOOGLE_GENAI_API_KEY thành khoá của bạn:

      export GOOGLE_GENAI_API_KEY=<your API key>
      

    Gemini (AI Vertex)

    1. Trong bảng điều khiển Cloud, Bật Vertex AI API cho dự án của bạn.

    2. Trên IAM hãy đảm bảo rằng bạn đã cấp Tài khoản dịch vụ mặc định của Compute Engine vai trò Người dùng Vertex AI.

    3. Không bắt buộc: Nếu bạn muốn chạy quy trình cục bộ, như trong bước tiếp theo thiết lập một số biến môi trường bổ sung và sử dụng Công cụ gcloud để thiết lập thông tin xác thực mặc định của ứng dụng:

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      

    Bí mật duy nhất bạn cần để thiết lập cho hướng dẫn này là về mô hình nhưng nhìn chung, bạn phải thực hiện điều tương tự cho từng dịch vụ mà flow của bạn sử dụng.

  7. Không bắt buộc: Hãy thử quy trình của bạn trong giao diện người dùng dành cho nhà phát triển:

    1. Khởi động giao diện người dùng:

      genkit start
      
    2. Trong giao diện người dùng dành cho nhà phát triển (http://localhost:4000/), hãy chạy flow:

      1. Nhấp vào menusuggestedionFlow.

      2. Trên thẻ Input JSON, hãy cung cấp một chủ thể cho mô hình:

        "banana"
        
      3. Nhấp vào Run (Chạy).

  8. Nếu cho đến thời điểm này mọi thứ hoạt động như mong đợi, bạn có thể xây dựng và triển khai luồng:

    Gemini (AI của Google)

    npm run build
    gcloud run deploy --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (AI Vertex)

    npm run build
    gcloud run deploy
    

    Chọn N khi được hỏi bạn có muốn cho phép lời gọi chưa được xác thực hay không. Khi bạn trả lời N, dịch vụ của bạn sẽ được định cấu hình để yêu cầu thông tin đăng nhập IAM. Xem Xác thực trong tài liệu về Cloud Run để biết thông tin về cách cung cấp các thông tin đăng nhập này.

Sau khi triển khai xong, công cụ này sẽ in URL dịch vụ. Bạn có thể kiểm tra nó bằng curl:

curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '{"data": "banana"}'