Sửa lỗi phân tích JSON trên Python 3.12
AI_CHECKED · 26/09/2026 · Chờ NCS1 và người kiểm kỹ thuật review mã.
Đầu vào JSON sâu 3.000 mức nằm dưới giới hạn 16 KiB đã trả 400 trên môi trường mới.
Hợp đồng API ngoại tuyến yêu cầu 422 đã loại dữ liệu đầu vào.
FastAPI bọc lỗi đọc JSON thành HTTP 400, nên bộ xử lý RequestValidationError không nhận trường hợp này.
Đã thêm bộ xử lý HTTP tại 📄 main.py.
Chỉ đổi phản hồi khi phương thức POST, đường dẫn chat, mã 400 và nguyên nhân là lỗi độ sâu hoặc mã hóa.
Các lỗi HTTP khác đi qua bộ xử lý mặc định.
Thêm ca byte UTF-8 không hợp lệ vào 📄 bộ test API.
Kết quả thực thi
Môi trường TEMP dùng Python 3.12.10; phiên bản gói tại 📄 bản kê kiểm.
Đã chạy python -m pytest -q backend/tests/test_offline_api.py bằng trình thông dịch TEMP.
Đặt PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 và PYTHONDONTWRITEBYTECODE=1.
- 77 test đạt sau sửa, gồm ca JSON sâu và lỗi mã hóa mới.
- Còn một cảnh báo Starlette về TestClient/httpx; không tự đổi thư viện để che cảnh báo.
- Yêu cầu hợp lệ vẫn 503; không thêm kết nối, kho dữ liệu hoặc nhánh mở dịch vụ.
- Chưa kiểm lại trên Python 3.14 của các phiên lịch sử.
NCS cần kiểm
- Đọc điều kiện bắt lỗi; xác nhận không đổi mọi HTTP 400 thành 422.
- Kiểm thông báo cố định không chứa dữ liệu, tên trường lạ hoặc thông báo lỗi gốc.
- Chạy lại cùng lệnh trên môi trường được chọn trước khi nhận bản thay đổi.
- Giữ phần triển khai API thật trong nhiệm vụ gốc; bản sửa này chỉ xử lý hợp đồng ngoại tuyến.