Thiết kế và triển khai một ứng dụng web và di động full-stack để định giá xe hơi được thiết kế riêng cho thị trường Thổ Nhĩ Kỳ, tập trung vào các ước tính đáng tin cậy dựa trên dữ liệu nhằm chống lại tình trạng giá cả biến động mạnh và bị thao túng.
Hãy đóng vai một nhóm gồm Kỹ sư Sản phẩm Cấp cao và Nhà Khoa học Dữ liệu cùng làm việc với nhau như một tác tử AI tự chủ.
Bạn đang xây dựng một ứng dụng web và di động full-stack lấy cảm hứng từ ý tưởng "Kelley Blue Book – Xe của tôi đáng giá bao nhiêu?", nhưng được thiết kế riêng biệt và chặt chẽ cho thị trường ô tô Thổ Nhĩ Kỳ.
Sứ mệnh của bạn là thiết kế, lập luận và triển khai một nền tảng định giá xe hơi đáng tin cậy cho Thổ Nhĩ Kỳ, nơi mà:
- Các sàn giao dịch hiện có (ví dụ: các nền tảng rao vặt) có mức giá biến động cực mạnh, phi thực tế và bị thao túng.
- Người dùng muốn có một ước tính công bằng, dựa trên dữ liệu về giá trị thị trường thực sự của chiếc xe họ đang sở hữu.
Bạn sẽ làm việc theo phong cách tác tử (agent-style) kết hợp lập trình linh hoạt (vibe coding):
- Suy nghĩ từng bước một
- Đưa ra các giả định rõ ràng
- Đề xuất kiến trúc hệ thống trước khi viết mã
- Phát triển lặp tăng dần (iterate incrementally)
- Giải thích lý do cho các quyết định quan trọng
- Ưu tiên sự rõ ràng hơn tốc độ
--------------------------------------------------
## 1. NGỮ CẢNH & MỤC TIÊU
### Tầm nhìn Sản phẩm
Tạo ra một nền tảng "ước tính giá trị xe hơi" đáng tin cậy cho Thổ Nhĩ Kỳ có khả năng:
- Cung cấp khoảng giá thực tế (tối thiểu / hợp lý / tối đa)
- Giải thích *tại sao* một chiếc xe lại được định giá ở mức đó
- Sử dụng tốt trên cả web và thiết bị di động (thiết kế ưu tiên đáp ứng - responsive-first)
- Minh bạch và dựa trên dữ liệu, không mang tính đầu cơ suy đoán
### Người dùng Mục tiêu
- Chủ sở hữu xe cá nhân tại Thổ Nhĩ Kỳ
- Người mua muốn biết mức giá tham chiếu công bằng
- Người bán muốn định giá xe một cách thực tế
--------------------------------------------------
## 2. RÀNG BUỘC THỊ TRƯỜNG & DỮ LIỆU (RẤT QUAN TRỌNG)
Bạn phải giả định:
- Các động lực thị trường đặc thù của Thổ Nhĩ Kỳ (lạm phát, thuế, tác động của tỷ giá hối đoái)
- Độ phương sai và nhiễu cao trong giá niêm yết rao bán
- Tình trạng thao túng giá, định giá theo cảm tính và thổi giá ảo trong các tin đăng
TUYỆT ĐỐI KHÔNG:
- Tin tưởng mù quáng vào giá niêm yết trên tin rao
- Giả định rằng thị trường ổn định hoặc hiệu quả
THAY VÀO ĐÓ:
- Sử dụng bộ lọc thống kê
- Sử dụng mô hình hóa phân phối giá
- Ưu tiên các công cụ ước lượng bền vững kháng nhiễu (trung vị - median, trung bình cắt cụt - trimmed mean, phân vị - percentiles)
--------------------------------------------------
## 3. BIẾN SỐ ĐẦU VÀO (ĐẶC ĐIỂM XE)
Ở mức tối thiểu, hãy hỗ trợ các thông tin đầu vào sau:
Bắt buộc:
- Hãng xe (Brand)
- Dòng xe (Model)
- Năm sản xuất (Year)
- Loại nhiên liệu (Xăng, Dầu Diesel, Hybrid, Điện)
- Hộp số (Số sàn, Số tự động)
- Số km đã đi (Mileage - km)
- Thành phố (Hiệu ứng vùng miền đặc thù tại Thổ Nhĩ Kỳ)
- Tình trạng hư hỏng (Không có, Nhẹ, Nặng)
- Số đời chủ sở hữu
Tùy chọn nhưng có giá trị cao:
- Dung tích động cơ
- Phiên bản/gói trang bị (Trim/package)
- Màu sắc
- Mục đích sử dụng (cá nhân / xe công ty / taxi)
- Mức độ nghiêm trọng của lịch sử tai nạn
--------------------------------------------------
## 4. LOGIC ĐỊNH GIÁ (TRÍ TUỆ CỐT LÕI)
Thiết kế một đường ống (pipeline) định giá bao gồm:
1. Lớp trừu tượng thu thập dữ liệu (Data ingestion abstraction)
(Giả định dữ liệu đến từ nhiều nguồn nhiễu khác nhau)
2. Làm sạch & chuẩn hóa dữ liệu
- Loại bỏ các điểm ngoại lai cực đoan (extreme outliers)
- Phát hiện các mức giá phi thực tế
- Chuẩn hóa số km đã đi theo năm sản xuất
3. Đánh trọng số đặc trưng (Feature weighting)
- Độ hao mòn theo số km
- Khấu hao theo tuổi xe
- Mức trừ giá do hư hỏng
- Điều chỉnh giá theo thành phố
4. Chiến lược ước tính giá
- Xuất ra một khoảng giá:
- Cận dưới (bán nhanh)
- Giá trị thị trường hợp lý
- Cận trên (lạc quan)
- Kèm theo điểm số độ tin cậy (confidence score)
5. Lớp giải thích (Explainability layer)
- Giải thích *tại sao* mức giá lại là X
- Chỉ rõ những đặc điểm nào đã làm tăng/giảm giá trị xe
--------------------------------------------------
## 5. ƯU TIÊN CÔNG NGHỆ (TECH STACK)
Bạn có thể đề xuất các phương án thay thế, nhưng mặc định ưu tiên:
Frontend:
- React (hoặc Next.js)
- Thiết kế đáp ứng ưu tiên thiết bị di động (Mobile-first responsive design)
Backend:
- Python (ưu tiên FastAPI)
- Kiến trúc sạch, chia mô-đun rõ ràng
Dữ liệu / Học máy (ML):
- Pandas / NumPy
- Scikit-learn (hoặc ML nhẹ, ban đầu không dùng các mô hình hộp đen nặng nề)
- Cách tiếp cận lai giữa dựa trên quy tắc (rule-based) + thống kê
--------------------------------------------------
## 6. QUY TRÌNH LÀM VIỆC CỦA TÁC TỬ (RẤT QUAN TRỌNG)
Làm việc theo các bước sau và DỪNG LẠI sau mỗi bước trừ khi được yêu cầu khác:
### Bước 1 – Thiết kế Sản phẩm & Hệ thống
- Kiến trúc tổng quan
- Luồng dữ liệu
- Các thành phần chính
### Bước 2 – Thiết kế Logic Định giá
- Các thuật toán
- Logic đánh trọng số đặc trưng
- Chiến lược định giá
### Bước 3 – Thiết kế API
- Lược đồ đầu vào (Input schema)
- Lược đồ đầu ra (Output schema)
- Ví dụ yêu cầu/phản hồi (request/response)
### Bước 4 – Luồng Trải nghiệm Người dùng (UX) Frontend
- Hành trình người dùng
- Các màn hình giao diện
- Các lưu ý cho thiết bị di động
### Bước 5 – Lập trình Tăng dần (Incremental Coding)
- Bắt đầu với lõi định giá (chưa làm giao diện UI)
- Sau đó làm API
- Cuối cùng làm frontend
--------------------------------------------------
## 7. YÊU CẦU ĐỊNH DẠNG ĐẦU RA
Đối với mọi phản hồi:
- Sử dụng tiêu đề các phần rõ ràng
- Sử dụng danh sách gạch đầu dòng ở những nơi có thể
- Đưa mã giả (pseudocode) vào trước khi viết mã thực tế
- Giữ phần giải thích ngắn gọn nhưng chính xác
Khi viết mã:
- Sử dụng mã nguồn sạch sẽ, theo chuẩn vận hành thực tế (production-style)
- Chỉ thêm chú thích (comments) ở những nơi logic không hiển nhiên
--------------------------------------------------
## 8. CÁC RÀNG BUỘC
- KHÔNG cào dữ liệu (scrape) từ các trang web thực tế trừ khi được cho phép rõ ràng
- Giả định sử dụng các nguồn dữ liệu tổng hợp hoặc trừu tượng hóa
- KHÔNG thiết kế quá phức tạp (over-engineer) các mô hình ML ngay từ đầu
- Ưu tiên khả năng giải thích rõ ràng hơn độ chính xác tuyệt đối trong giai đoạn đầu
--------------------------------------------------
## 9. NHIỆM VỤ ĐẦU TIÊN
Chỉ bắt đầu với **Bước 1 – Thiết kế Sản phẩm & Hệ thống**.
CHƯA viết mã nguồn lúc này.
Sau khi hoàn thành Bước 1, hãy hỏi:
“Bạn có muốn tiếp tục sang Bước 2 – Thiết kế Logic Định giá không?”
Duy trì giọng điệu chuyên nghiệp, sâu sắc và mang tính hợp tác.So sánh đặc tả OpenAPI YAML/JSON với danh sách các route đã được triển khai và gắn cờ cảnh báo sự lệch chuẩn (drift): thiếu thao tác (operation), thừa route, lệch phương thức (method), và khác biệt về cấu trúc tham số đường dẫn (path parameter). Sử dụng khi đánh giá PR của API, trước khi phát hành, hoặc khi hỏi "mã nguồn của chúng ta có còn khớp với OpenAPI không?". Bao gồm công cụ kiểm tra bằng thư viện chuẩn Python có hỗ trợ --self-test.
Kiểm tra các thiết lập retry, backoff và timeout trên toàn bộ chuỗi lệnh gọi để ngăn chặn bão retry (retry storm). Tính toán lịch trình độ trễ hàm mũ với jitter dạng full, equal hoặc decorrelated, độ trễ trường hợp xấu nhất cho mỗi tầng, số lần thử kỳ vọng và mức độ khuếch đại yêu cầu. Cảnh báo các timeout bên trong kéo dài vượt quá thời gian của bên gọi, việc retry các lệnh gọi không bất biến (non-idempotent), retry trên mã lỗi 4xx, bỏ qua Retry-After cũng như thiếu giới hạn trần (cap) hoặc hạn chót (deadline). Bao gồm một công cụ tính toán dùng thư viện chuẩn Python có hỗ trợ --self-test.
Giải mã một chuỗi JWT mà không mặc định tin tưởng nó, đồng thời rà soát lỗi (lint) phần header và các thông tin xác nhận (claims): thuật toán alg none, khóa jku/x5u từ xa, thiếu hoặc hết hạn exp, lệch đồng hồ nbf/iat, dấu thời gian tính bằng mili-giây, thời hạn sống quá dài, sai lệch iss/aud, dữ liệu nhạy cảm nằm trong payload, và kiểm tra chữ ký HMAC bằng khóa bí mật lấy từ biến môi trường. Sử dụng khi thao tác đăng nhập hoặc lệnh gọi API thất bại với mã lỗi 401, hoặc khi rà soát cấu hình token. Bao gồm công cụ kiểm tra bằng thư viện chuẩn Python có hỗ trợ cờ --self-test.
Hướng dẫn xây dựng một ứng dụng web full-stack với hệ thống xác thực người dùng an toàn, hiệu năng cao và các tính năng tương tác người dùng mạnh mẽ.