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 Google Cloud CLI nếu bạn chưa làm.

  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 auth login
    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 một mô-đun Go trong thư mục dự án:

    go mod init example/cloudrun
    
  5. Khởi chạy Genkit trong dự án của bạn:

    genkit init
    

    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 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. Chỉnh sửa tệp mẫu (main.go hoặc genkit.go) để chỉ định rõ cổng mà máy chủ luồng sẽ theo dõi:

    if err := genkit.Init(ctx,
        &genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
        log.Fatal(err)
    }
    
  7. 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.

    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.

    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.

  8. 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. Thiết lập môi trường cục bộ cho nhà cung cấp mô hình mà bạn đã chọn:

      Gemini (AI của Google)

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (AI Vertex)

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      
    2. Khởi động giao diện người dùng:

      genkit start
      
    3. 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).

  9. 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)

    gcloud run deploy --port 3400 \
      --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (AI Vertex)

    gcloud run deploy --port 3400 \
      --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \
      --set-env-vars GCLOUD_LOCATION=us-central1
    

    (GCLOUD_LOCATION định cấu hình khu vực Vertex API mà bạn muốn sử dụng.)

    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 '"banana"'