Firebase Genkit với Cloud Run

Bạn có thể triển khai các luồng Firebase Genkit dưới dạng dịch vụ web bằng Cloud Run. Ví dụ: trang này sẽ hướng dẫn bạn thực hiện quy trình triển khai quy trình mẫu mặc định.

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

    1. Đảm bảo bạn đang 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 dự án có sẵn. 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 dự á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 IDE, hãy mở IDE đó vào thư mục này.

  4. Khởi động một dự án Node.js trong thư mục dự án của bạn:

    npm init -y
    
  5. Khởi động 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 mà bạn muốn sử dụng.

    Chấp nhận giá trị 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 quy trình 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 hàm đã triển khai. Thực hiện một trong các thao tác 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 có ở khu vực của bạn.

    2. Tạo khoá API cho APIGemini bằng 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 trang Secret Manager (Trình quản lý bí mật), hãy tạo một khoá bí mật mới chứa khoá API của bạn.
      3. Sau khi bạn tạo khoá bí mật, trên cùng trang đó, hãy cấp quyền truy cập vào tài khoản dịch vụ điện toán mặc định của bạn cho khoá bí mật bằng vai trò Người truy cập bí mật của Trình 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 tham chiếu 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 flow cục bộ, như trong bước tiếp theo, 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 (Vertex AI)

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

    2. Trên trang IAM, hãy đảm bảo rằng Tài khoản dịch vụ điện toán mặc định đã được cấp vai trò Người dùng Vertex AI.

    3. Không bắt buộc: Nếu bạn muốn chạy flow cục bộ, như trong bước tiếp theo, hãy thiết lập thêm một số biến môi trường 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
      

    Khoá bí mật duy nhất bạn cần thiết lập cho hướng dẫn này là dành cho trình cung cấp mô hình, nhưng nhìn chung, bạn phải thực hiện thao tác tương tự cho từng dịch vụ mà luồng của bạn sử dụng.

  7. Không bắt buộc: 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 quy trình:

      1. Nhấp vào menusuggestedionFlow.

      2. Trên thẻ Đầu vào JSON, hãy cung cấp tiêu đề 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 quy trình này:

    Gemini (AI của Google)

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

    Gemini (Vertex AI)

    npm run build
    gcloud run deploy
    

    Chọn N khi được hỏi xem bạn có muốn cho phép các lệnh gọi chưa được xác thực hay không. Việc trả lời N sẽ định cấu hình dịch vụ của bạn để yêu cầu thông tin xác thực IAM. Hãy xem phần Xác thực trong tài liệu về Cloud Run để biết thông tin về cách cung cấp những 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 thử 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"}'