Chuyển tới nội dung chính

Việc tồn đọng

Nguồn duy nhất cho việc chưa làm, chưa kiểm thử và giới hạn đã biết của DX-OS, DX-Farm và DX-Lab. Làm xong một mục thì xóa dòng đó; không ghi lại diễn biến, chỉ ghi trạng thái hiện tại.

1. Trước khi nộp bài​

ViệcGhi chú
Báo cáo kỹ thuật 8-10 trang, slide tối đa 12Sườn báo cáo ở Sườn báo cáo kỹ thuật
Video demo 3-5 phút, rehearsal ít nhất một lầnKịch bản ở Hồ sơ nộp bài mục 2 và 3
Chụp ảnh giao diện hai chế độ (Farm, Lab) và màn hình giám sát lưu vào repository cho hồ sơChưa có; che IP và email thật khi chụp màn hình giám sát
Chốt ngày hạn nộp thậtChưa chốt

2. Việc còn lại trên VPS​

VPS chạy v1.1.0; không còn việc ở mục này.

3. Chưa kiểm thử​

ViệcGhi chú
Bên thứ ba tái lập đánh giá RAGCần người đánh giá độc lập kiểm tra nhãn và tính lại điểm từ qrels/run; cách chạy ở ai/README.md
Chấm nội dung Qwen trên 36 câu hỏi và 6 chủ đề chẩn đoánChưa có bảng chấm trọng tâm, bám nguồn và dễ đọc do người duyệt xác nhận; tỷ lệ generated không phải độ đúng nội dung
Kiểm nguyên nhân và cách phòng của hỏi đáp Farm với Qwen thậtChạy bộ câu hỏi Farm với Qwen để xem tỷ lệ câu bị chuyển sang insufficient_evidence
Khởi động bản Qwen từ clone sạchChạy full build/seed toàn stack từ clone sạch
backup.sh xóa snapshot quá 7 ngàyTrên VPS mới kiểm việc gom mọi snapshot vào một nhóm và giữ bản mới nhất mỗi ngày; chưa có snapshot nào quá 7 ngày
backup.sh với kho sao lưu từ xaThử BACKUP_REPOSITORY từ xa
Cầu dao AI với tải thậtThử khi AI chậm vì tải, lúc đó lỗi đọc quá hạn cũng tính là lỗi dịch vụ

4. Giới hạn của AI và dữ liệu​

ViệcGhi chú
Model bệnh chưa được đánh giá độc lập ngoài ruộngAccuracy 89,43% trên 1.466 ảnh theo người huấn luyện, xem Đánh giá AI; cần ít nhất 100 ảnh ruộng thật có nhãn kỹ sư để đo toàn pipeline và ngưỡng 0.70
Crop classifier nhận 6/15 ảnh ngô và 15/15 ảnh mía là lúa, chặn 8/50 ảnh lúa nền ruộngClassifier 10 lớp không có lớp ngô, mía, cỏ; cần thay classifier hoặc thêm dữ liệu ngoài miền; kỹ sư vẫn chốt bệnh
Ngưỡng độ nét mới thử trên ảnh công khai và ảnh mờ nhân tạoChưa có ảnh mờ thật ngoài ruộng; chưa tách vùng lá
Chẩn đoán AI chạy trên CPU mất 50 đến 70 giây mỗi ảnhĐo trên máy chủ 8 nhân; lượt đo ngày 30/10/2026 trên AI đã chạy 14 giờ mất 68 giây; gateway chờ tới 95 giây, lượt dài hơn nhận 504 nhưng chẩn đoán vẫn được tạo và hiện khi tải lại báo cáo; chưa có GPU hay mô hình nhỏ hơn để rút ngắn
Qwen tắt trên VPSCPU ảo chỉ có SSE2/SSE3 nên Qwen đọc prompt khoảng 2 token/giây; VPS đặt AI_ANSWER_GENERATION=false và AI_CHAT_CANDIDATE_COUNT=10, chatbot trả tài liệu nguyên văn trong khoảng 5 giây. Bật lại Qwen cần CPU có AVX2
Nộp báo cáo cần AI service chạyChưa có đường nhận ảnh chưa kiểm khi AI dừng; hàng đợi offline thử lại
Chưa có mô hình nhận diện sâu hạiClassifier nhận Healthy và 5 bệnh lá
Hoàn thiện coverage tri thức canh tác FarmTrang tập huấn còn chủ yếu mục lục, cần nội dung tài liệu con và nguồn cho các chủ đề còn thiếu
Rà nhãn RAG tường minh cho toàn bộ chunkQrels hiện chỉ có nhãn dương; cần rà đủ 0/1/2 trước khi chuyển trạng thái reviewed, xem data/rag/evaluation/README.md
Đánh giá chatbot hybrid mở rộngRà nhãn 30 câu bổ sung, tách bộ hiệu chỉnh và bộ kiểm tra độc lập. Câu hỏi gián tiếp về mượn tài liệu còn bị lọc ở ngưỡng cosine 0,40; độ bao phủ câu tổng quan Farm cần cải thiện
Đánh giá truy xuất trên corpus lớnChưa đo gần giới hạn 20.000 đoạn mỗi chỉ mục BM25; số liệu hiện có trên 244 đoạn, với 1/2/5 người dùng đồng thời
Đo đầy đủ tải chatbot hybridChạy đủ 36 lượt theo cấu hình mặc định và đo riêng nhóm câu hỏi bị từ chối
Truy xuất legacy dựa trên MiniLM đa ngữDiagnosis/ticket vẫn dùng cosine và ngưỡng legacy; diễn đạt gián tiếp còn phụ thuộc embedding, không có reranker như chatbot
Kiểm nguyên nhân và cách phòng của hỏi đáp Farm dựa trên từCâu cách phòng dùng lại từ của nguồn nhưng ngược nghĩa (ví dụ "bón nhiều đạm" khi nguồn ghi "tránh dư đạm") vẫn có thể qua; câu hỏi không nêu tên bệnh không qua bước kiểm này
Luật phân loại của Lab là luật tayChưa đo độ chính xác trên dữ liệu thật
Kho tri thức Lab chỉ có 12 bài từ 9 văn bản công khai của HaUIChưa có bài về máy in, VPN, quy chế phòng máy của khoa, đặt phòng máy; sổ tay LMS là bản năm học 2019-2020
Gợi ý tri thức ticket Lab chưa có hybrid/gate chatbotTicket vẫn dùng retrieve legacy; đoạn gần nghĩa chưa chắc đúng sự cố. Chưa đánh giá riêng độ phù hợp trên dữ liệu ticket thật
Snapshot thời tiết chỉ có 5 điểm ĐBSCL, chụp ngày 07/10/2026Chụp lại nếu cần dữ liệu dự phòng mới hơn
Giới hạn tốc độ ở gateway tính theo IP và ở backend theo người dùng (60 câu hỏi tri thức, 60 lần tạo ticket, 30 lần upload ảnh, chẩn đoán AI, đặt phòng hoặc đính kèm, 120 lượt đăng nhập, 600 lượt API mỗi phút) là số tạm; mới thử giới hạn câu hỏi tri thức theo người dùng qua Cloudflare, chưa thử tảiSuperset dùng SQLite cho metadata, AI service là một tiến trình; chatbot có hàng đợi rerank CPU giới hạn

5. Chức năng chưa có​

ViệcGhi chú
Chặn SQLi và XSS chung ở CloudflareCần gói trả phí; gói Free chỉ có managed ruleset chặn khai thác đã biết, Backend dùng truy vấn tham số hóa
Xóa audit theo thời hạnBảng audit_log chỉ thêm, chưa có cách xóa theo thời hạn; theo dõi dung lượng bảng
Chạy backup.sh theo lịch và chép kho ra ngoài máy chủLịch cron, kho từ xa và diễn tập khôi phục định kỳ do người vận hành đặt
Cảnh báo đăng nhập sai theo tài khoảnSự kiện LOGIN_ERROR của Keycloak không ghi tên tài khoản (chỉ user_id), nên cần thêm user_id vào view vw_auth_events
Metric tài nguyên (CPU, RAM, đĩa) và phân vị độ trễMàn hình giám sát chỉ có sự kiện bất thường và trạng thái dịch vụ; thêm Prometheus nếu cần
Gộp lớp gửi Mattermost của monitor với ChatWebhook của coredx-monitor không được phụ thuộc core nên hai nơi cùng đọc webhook; cảnh báo ACCESS_DENIED theo địa chỉ vẫn do AuditAlertJob của backend gửi
Phân trang tra cứu chi tiết ở phía máy chủHiện lấy tối đa 200 bản ghi mới nhất rồi chia trang trong trình duyệt
Tên chức năng ở biểu đồ lỗi lấy từ danh sách cố định trong monitor.jsĐường dẫn ngoài danh sách hiện là "Chức năng khác"; thêm app mới thì bổ sung danh sách
Cảnh báo monitor không nhớ điều kiện đã báo sau khi khởi động lạiKhởi động lại trong lúc điều kiện còn thì tin được gửi lại; bộ nhớ chống lặp nằm trong tiến trình
Cảnh báo khi chính monitor ngừngCần một kiểm tra từ ngoài (Cloudflare Health Check hoặc dịch vụ uptime); hiện kiểm bằng docker compose ps
Backend tự gọi AI sau khi upload ảnhChẩn đoán AI do kỹ sư bấm; đang giữ thủ công có chủ đích
Push thật (FCM, UnifiedPush)Hộp thông báo chỉ kéo về khi mở app
ClamAV bật mặc địnhĐang tắt vì cần khoảng 1 GB RAM; chưa đo trên máy chủ thật
Hộp thông báo cho engineer và adminHọ dùng hàng chờ và Mattermost
Phun lặp lại trên cùng một chẩn đoánMỗi chẩn đoán một lần phun; phun lại phải qua báo cáo và chẩn đoán mới
Thu hoạch thay hộ không có trong timeline workflowThu hoạch không có case; thông tin nằm trên vụ và log backend
Phạm vi phụ trách theo khu vực cho engineerPhân quyền hiện theo thao tác, không theo khu vực
Thông báo chat chỉ có gửi lại khi lỗi tạm thờichat_outbox lưu tin sau lần gửi đầu thất bại; tin chưa kịp vào bảng khi backend tắt giữa lúc commit và lúc gửi vẫn mất, chưa có cảnh báo khi tồn đọng
Trường "Phương pháp áp dụng" và lượng nước của phác đồTreatmentRule.notes trộn nhiều loại thông tin; cần field riêng được chuyên gia xác thực
Email cho thông báo trong hộp thưChưa có. Cần spring-boot-starter-mail, tắt management.health.mail (biến SPRING_MAIL_HOST rỗng vẫn tạo bộ gửi và làm /actuator/health báo lỗi), hàng đợi gửi lại chung với tin chat, địa chỉ lấy từ Keycloak lúc gửi, bảng lựa chọn của từng tài khoản và màn hình bật tắt
Che thông tin cá nhân trong logNội dung log chưa đi qua PiiMask
Mật khẩu demo cũ của tech1, tech2Stack có sẵn hai tài khoản này giữ mật khẩu tech123; chỉ stack dựng mới nhận tech1234
Cải tiến core và vận hành chưa làm: metric và Alertmanager, trang trạng thái công khai, WAF Coraza, nâng cấp có đường lùi, compose profiles, kiểm giấy phép tự động, sổ kiểm toán chuỗi bămChưa làm

6. Phụ thuộc người ngoài​

ViệcẢnh hưởng
Chuyên gia duyệt disease_management_policies (hiện 0/6 policy đủ điều kiện, bảng để trống)Chẩn đoán chưa trả management_policy cho nhánh NO_CHEMICAL_CONTROL; có policy được duyệt thì mới thêm trường này vào contract AI và Backend
Bổ sung văn bản chuyên môn cho rule đốm nâuHelp 400SC đã mở theo yêu cầu chủ dự án ngày 2026-10-20 với trạng thái EXPERT_APPROVED; chưa kèm văn bản chuyên môn riêng. Seed có ba rule; than lá, Tungro và lá khỏe không có rule thuốc
Kỹ sư nông nghiệp xác nhận mốc tháng loại vụ và danh mục giống (đang IN_REVIEW)Gợi ý loại vụ và ngày thu hoạch dựa trên số tạm; đổi app.season-start-months khi có xác nhận, không cần migration
Khoa cung cấp văn bản về máy in, VPN, quy chế và đặt phòng máyCó văn bản thì thêm bài vào data/rag/lab/ theo nguyên tắc ở data/README.md
Ảnh lá lúa thật cho seed_demo.py --imagesDemo chẩn đoán AI có ý nghĩa; chart "Tỷ lệ AI đúng/sai" có dữ liệu

7. Backlog của DX-Lab​

  • Mobile cho Lab.
  • Ticket tương tự bằng pg_trgm.
  • Leo thang và tự đóng ticket.
  • Dashboard Superset riêng của Lab.
  • Tích hợp email và thời khóa biểu thật.
  • Biến ticket đã giải quyết thành bài tri thức.

8. Để sau (dài hạn)​

ViệcĐiều kiện đưa vào làm
Carbon/AWD, IoT mô phỏng mực nước, tự xác nhận phun từ IoTCó dữ liệu thu hoạch thật qua ít nhất một vụ hoàn chỉnh
Polygon ruộng với PostGISCần tính diện tích chính xác từ bản đồ thay vì nhập tay; GPS điểm đơn đang đủ cho định vị
GraphRAG hoặc multi-agentCorpus tri thức lớn đáng kể, RAG đơn giản không còn đủ
Domain và HTTPS cho APK phát hànhPhát hành ngoài phạm vi cuộc thi; địa chỉ backend và Keycloak hiện nhúng trong APK
Scale thật (100 đến 100.000 người dùng)Vận hành thật; hướng mở rộng ở Câu hỏi hội đồng câu 9

9. Đã chốt không làm​

  • Mattermost tương tác hai chiều (duyệt hoặc từ chối ngay trong chat).
  • SSO cho Mattermost: Team Edition không hỗ trợ OpenID Connect với IdP tùy ý.
  • Frontend low-code (ToolJet, Appsmith) thay cho giao diện tự viết.