Backend CXK — phần khung ngoại tuyến T09
Hợp đồng API:
0.1.0-offline. T09 mới hoàn thành một phần, chưa được nghiệm thu.
1. Phạm vi hiện có
Đây là bản mô phỏng ban đầu, không phải bộ lọc an toàn (safety layer) y khoa.
T01/T02/T04/T07 còn vướng phê duyệt y khoa hoặc pháp lý.
T10/T11 chỉ có chuẩn bị kiểm tra kỹ thuật tổng hợp, chưa triển khai luồng thật; T12 chưa triển khai.
app/main.py: kiểm tra tiến trình, trạng thái chưa sẵn sàng và từ chối trò chuyện.app/__init__.py: khai báo gói, không khởi tạo dịch vụ.app/middleware/body_limit.py: chặn thân HTTP quá 16 KiB trước bước phân tích JSON.app/services/release_preflight.py: kiểm bản kê tổng hợp riêng biệt; không nạp nguồn hoặc nối HTTP.tests/test_offline_api.py: kiểm thử trong tiến trình bằng dữ liệu tổng hợp.- Đặc tả API và ngữ cảnh: hợp đồng và giới hạn vận hành.
Không gọi mô hình, nhà cung cấp, Internet hoặc cơ sở dữ liệu.
Không nạp kho tri thức, đọc khóa, đọc biến môi trường hoặc ghi nội dung yêu cầu.
Không có phân loại mức độ, trích dẫn, câu trả lời y khoa hoặc lưu hội thoại.
Không có cờ trong mã hoặc biến môi trường cho phép bật nhà cung cấp trực tiếp.
Muốn kết nối thật phải có triển khai mới, được xem xét và phê duyệt riêng.
2. Kiểm thử cục bộ
Dùng môi trường Python đã có FastAPI, Pydantic v2, httpx và pytest.
Từ thư mục gốc, chạy python -B -m pytest backend/tests -q -p no:cacheprovider bằng môi trường đã chọn.
Đặt PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 để không tự nạp phần mở rộng kiểm thử.
Đặt PYTHONDONTWRITEBYTECODE=1 và PYTHONIOENCODING=utf-8 để tránh tạo bộ nhớ đệm và lỗi ký tự.
Không cần thư viện nhà cung cấp hoặc trình điều khiển cơ sở dữ liệu cho phần khung này.
Phiên triển khai không mở máy chủ.
Nếu được phép kiểm thử thủ công sau này, chỉ dùng Uvicorn trên máy cục bộ.
Từ thư mục gốc, cấu hình backend.app.main:app, --host 127.0.0.1, --port 8000, --no-access-log.
Không dùng --reload, không mở IIS, không chuyển tiếp cổng hoặc đưa lên Internet.
Không bật ghi nội dung yêu cầu qua trình gỡ lỗi, máy chủ trung gian hoặc công cụ giám sát.
Chỉ gửi văn bản tổng hợp; không dùng dữ liệu bệnh nhân hoặc thông tin cá nhân.
3. Giới hạn kiểm chứng
Kiểm thử kỹ thuật không chứng minh an toàn y khoa, phê duyệt pháp lý hoặc khả năng triển khai thật.
Giới hạn byte không thay thế xác thực, giới hạn tần suất hoặc kiểm soát tại máy chủ trung gian.
Kết quả bản kê luôn có clinical_authority_verified: false và release_authorized: false.
Chuỗi APPROVED trong ví dụ tổng hợp không phải phê duyệt con người.
/api/health thành công không có nghĩa hệ thống được phép phục vụ người dùng.
Xem mục đích sử dụng và quy tắc dự án.