Tổng › Ngưỡng
4. Ngưỡng đang có trong code
Request và body
| Mục | Ngưỡng | File |
|---|---|---|
| API JSON body | 1 MiB | apps/api/src/main.ts |
| Core JSON body | 256 000 B → 413 | services/core-engine/src/server.mjs:49 |
| Core request / header timeout | 60 s / 10 s | server.mjs:309–310 |
| API → Core compile / submit | 15 s / 60 s | apps/api/src/core/http-core-client.ts:47 |
| Room prompt / ref / annotation | 4000 ký tự; 14 ref; 100 annotation; text 1000 | apps/api/src/core/function-params.ts:39–118 |
| Vùng (area) | ≤ 100 vùng, mỗi vùng 2–1000 điểm | function-params.ts:85, 118; FE canvas-parameters.ts:51 |
| Browser API timeout | 15 s; raster upload 120 s; source 300 s; trial claim 180 s | apps/web/src/lib/api.ts, lib/customer/api.ts |
Upload và ảnh
| Mục | Ngưỡng | File |
|---|---|---|
| Upload từ browser | 15 MiB; JPEG / PNG / WebP; retry sau 5 s, 8 s | apps/web/src/lib/customer/upload.ts:6 |
| Upload đồng thời | 2 request/process, trong đó 1 source → 503 upload_busy | apps/api/src/storage/upload-admission.ts:12 |
| Ảnh source | Cạnh ≤ 8192, ≤ 64 MP; stream ≤ 128 MiB | storage/image-types.ts, storage/source-image.ts |
| Upload / giờ | 300 / user (fallback) | common/settings/settings.service.ts |
| URL ký R2 | 600 s | apps/api/src/config/env.ts:76 |
| Tải output | 60 MiB/file, 120 MiB/job; socket không hoạt động 30 s | job-lifecycle.service.ts, common/http/safe-fetch.ts:73 |
| Preview output | 1 encoder (lease 180 s); hàng chờ 40 ảnh / 128 MiB | storage/output-preview.service.ts:20–21 |
Quote, job, hàng chờ
| Mục | Ngưỡng | File |
|---|---|---|
| Quote | TTL 5 phút; client debounce 250 ms, 4 request song song; server chưa giới hạn (G2) | jobs/jobs.service.ts:178, hooks/useGenerationQuotes.ts |
| Tạo job | 500 output / user / giờ (fallback) | jobs.service.ts:210 |
| Group Run | 1–50 intent; tổng ≤ 128 output; ≤ 4 output/intent | jobs/dto/create-job.dto.ts |
| Job đang chạy / user | 128 (setting 4–128); trial 1 | generation-protection/generation-admission.service.ts |
| Slot KIE | 90 tổng, 20/user (không áp dụng cho FAL và test) | job-lifecycle.service.ts:757–759 |
| Submit queue | 3 worker/lane; 16 request/10 s mỗi queue | config/env.ts:62–63, jobs/job-queue.service.ts:48–49 |
| Track queue | 5 worker/lane; 10 lượt kiểm/s | job-queue.service.ts:53–54 |
| Deadline job | 15 phút; chờ slot 30 phút; coi là kẹt sau 3 phút | jobs/job-timing.ts |
| Kiểm trạng thái job | Lần đầu sau 20 s; backoff tối đa 60 s; reaper chạy mỗi 60 s | job-timing.ts, job-lifecycle.service.ts |
| Timeout submit provider | KIE 45 s (Core); FAL 30 s | services/core-engine/src/provider.mjs, fal-orbit.client.ts:44 |
| Poll job (browser) | 3 s khi tab hiện; tái dùng list trong 2,5 s; list 100 | hooks/useGeneration.ts:38, 232 |
Draft, workspace, bộ nhớ trình duyệt
| Mục | Ngưỡng | File |
|---|---|---|
| Draft / recipe | 2 MiB / 1 MiB; 200 revision; 1000 annotation đã lưu | apps/api/src/jobs/editor-draft.ts |
| Mask (FE) | 1,5 MiB | apps/web/src/lib/customer/draft-masks.ts |
| Workspace | ≤ 200 ảnh; list ≤ 100 / trang; lịch sử 300 job | jobs/projects.service.ts |
| Cache decode ảnh | 6 ảnh / 64 MP; decode timeout 20 s | lib/customer/asset-image.ts |
Auth và chi phí
| Mục | Ngưỡng | File |
|---|---|---|
| Phiên | Access token 15 phút; refresh token 30 ngày, xoay mỗi lần dùng | auth/session.service.ts |
| Rate limit auth | Login 30/15 phút/IP; sai mật khẩu 5/15 phút/tài khoản; refresh 120/15 phút/IP | common/ratelimit/rate-limit.service.ts |
| Guest | Bắt đầu trial 10/giờ/IP; xem preview 120/giờ/IP; tối đa 1 Run | guest-trial/guest-trial.service.ts |
| Cost guard | User 20 USD/ngày; cảnh báo toàn hệ thống 300 USD/ngày (chỉ cảnh báo, không chặn); free 5 USD/giờ, 20 USD/ngày | jobs/cost-guard.service.ts |
| Trần chi tiêu guest | Setting 10 USD/ngày, chưa có nơi gọi (G4) | cost-guard.service.ts:61 |
Container (docker-compose.prod.yml)
| Service | mem_limit | Ghi chú |
|---|---|---|
| Postgres | 1536 MiB | shared_buffers 1 GiB; max_connections 100 |
| PgBouncer | 128 MiB | 25 kết nối tới server |
| Redis | 640 MiB | maxmemory 512 MB, noeviction |
| Core | 512 MiB | Journal SQLite WAL, busy_timeout 5 s |
| API | 1024 MiB | Heap Node 512 MiB; decode ảnh và Buffer dùng chung cgroup |
| Web | 512 MiB |
Ảnh 64 MP cần khoảng 244 MiB cho một buffer RGBA. Khi đặt giới hạn decode đồng thời của API, tính theo con số này.