Requirement — LLM Credit Quotas
Tài liệu mô tả chức năng quản lý hạn mức credit LLM theo tháng UTC hiện tại (YYYY-MM)
Quy ước chung
- 1 credit = $0.01 USD
- Số credit trên UI (limit / used / remaining / default) hiển thị số nguyên; phần trăm làm tròn tối đa 3 chữ số thập phân, bỏ số 0 thừa ở cuối (
12.3%, không phải12.300%) — cần thiết vì limit tổ chức có thể rất lớn nên % dùng thực tế nhiều khi < 0.01% và trước đây bị làm tròn xuống 0% - Ngôn ngữ UI theo lựa chọn của user (English / 日本語). Text lỗi/toast/banner dưới đây ghi cả hai
- Lỗi form admin: banner đỏ trên modal — prefix Error! / エラー! + text lỗi hiển thị theo
error_code(không hiện message thô từ server) - Lỗi khi chat: toast / banner theo
error_codehoặcblocked_reason(không hiện mã lỗi thô cho end-user) - Soft-admit: câu chat đã được phép gửi có thể khiến used vượt limit sau khi tính cost; chỉ câu tiếp theo mới bị chặn
default_credit: gợi ý hạn mức tự gán khi invite / create / update user (auto-allocate).0= không auto-allocate. Trên UI FE:default_creditlà số nguyên>= 0và không được lớn hơnlimit_creditscủa org
Mục 1 — Chức năng chính từng màn / modal
1.1 Màn Credit Budgets — tổ chức (System Admin)
Ai dùng: người có role System Admin.
Vào đâu: Governance → Credit Budgets (màn danh sách tổ chức).
Làm gì:
- Xem mọi organization: trần tháng (Limit), đã dùng (Used), đã chia cho member (Allocated), còn để chia (Remaining), trạng thái bật/tắt
- Gán trần mới (Set budget), sửa (Edit), xóa (Remove) — form gồm Limit + Default credit
- Bật / tắt ngân sách org
- Xem danh sách member và quota trong một org (View members — chỉ xem)
Không làm: không gán hạn mức cho từng member (việc đó thuộc Org Admin).
1.2 Màn Credit Budgets — member (Org Admin)
Ai dùng: người có role Org Admin
Vào đâu: Governance → Credit Budgets (màn phân bổ trong org của mình).
Làm gì:
- Xem tóm tắt ngân sách org: Org limit / Org used / Allocated / Remaining
- Xem danh sách member và hạn mức từng người
- Edit Default Credit — sửa
default_creditcủa org (không đổi Limit / Status) - Gán hàng loạt (Assign quotas) cho member chưa có quota
- Set / Edit / Remove / bật-tắt quota từng member
Điều kiện: org phải đã được System Admin gán budget. Chưa có thì màn báo ngân sách chưa thiết lập (xem UC-B1).
Quy tắc chọn người để gán: chỉ member chưa có quota; không gán cho tài khoản có role System Admin (họ bypass hạn mức chat, không nên nằm trong pool chia credit của org).
1.3 Modal Usage credit (menu avatar)
Ai thấy mục menu: mọi user đã đăng nhập trừ System Admin.
Làm gì: xem hạn mức tháng của chính mình (đã dùng / trần / %, còn lại, trạng thái). Chỉ đọc, không chỉnh sửa.
1.4 Chat — kiểm tra hạn mức khi gửi tin
Ai bị kiểm tra: mọi user gửi tin / retry, trừ System Admin (được bypass).
Làm gì:
- Trước khi chat: nếu tài khoản đang bị chặn hạn mức → khóa ô nhập + banner giải thích
- Khi gửi bị từ chối vì quota → toast + cập nhật trạng thái khóa nếu cần
- Sau khi một câu chat tính cost xong, nếu vượt mốc 80 / 85 / 90 / 95 / 100% → thông báo chuông + toast trong cuộc hội thoại đang mở (nếu có)
Mục 2 — Luồng tổng thể
2.1 Sơ đồ
Ảnh nằm trong docs/rate-limit/diagrams/ (file .png).
2.1.1 Tổng quan — phân bổ credit

Chú thích: SA = System Admin · OB = ngân sách org · OA = Org Admin · MQ = quota member · CHAT = kiểm tra hạn mức khi gửi tin (chi tiết ở 2.1.5)
2.1.2 Màn Credit Budgets — tổ chức (System Admin)

Ghi chú: Set / Edit validate Limit > 0; Default credit ≥ 0 và ≤ Limit. Edit Limit không thấp hơn used / allocated. Remove thường chỉ khi used = 0 và không còn quota member. Toggle tắt org → mọi member org bị chặn chat (ORG_QUOTA_DISABLED).
2.1.3 Màn Credit Budgets — member (Org Admin)

Ghi chú: danh sách Assign = member chưa có quota, không gồm System Admin (API GET …/without-llm-credit-quotas). Org Admin sửa Default credit qua nút Edit Default Credit (PATCH …/default-credit), không lẫn với form Assign / Set member quota.
2.1.4 Modal Usage credit

Ghi chú: chỉ xem, không chỉnh sửa; chỉ dữ liệu user đang đăng nhập.
2.1.5 Chat — kiểm tra hạn mức
Sequence — luồng gửi tin

Decision tree — mã lỗi khi gửi tin
