Giải quyết bài toán "1 Áo Polo có tới 100 Quần Khaki phù hợp" bằng thuật toán Hard-Filter & Soft-Scoring thay vì lưu trữ toàn bộ.
Kho hàng có hàng ngàn sản phẩm. Nếu theo Rule số 5 (Áo Polo -> Cần Quần Khaki), Magento có thể trả về 150 mẫu quần Khaki nam khác nhau. Nếu worker lưu cả 150 mẫu này cho 1 chiếc áo Polo:
Worker nhận diện sản phẩm Anchor mới hoặc quét định kỳ. Đọc bảng `ai_outfit_rules` để lấy công thức.
Query trực tiếp vào CSDL sản phẩm (`magento_product...`) để lấy TẤT CẢ sản phẩm thỏa mãn điều kiện CƠ BẢN của Rule.
Đây là trái tim của Worker. Chấm điểm 150 sản phẩm dựa trên các tiêu chí "Mềm" (Soft Rules) và Business Logic.
Chỉ lấy TOP 3 - 5 sản phẩm có điểm số cao nhất để ghi vào DB.
| Rank | Match Code | Score | AI Reason (Generated) |
|---|---|---|---|
| #1 | 8BK23S005 (Navy) | 85.5 | Màu Xanh Than tương phản hoàn hảo với màu Be. Đủ size. |
| #2 | 8BK23S012 (Đen) | 75.0 | Quần Khaki đen cơ bản, dễ mặc, hợp môi trường công sở. |
| #3 | 8BK23S001 (Xám) | 60.0 | Tone xám trung tính, an toàn và thanh lịch. |
Lúc khách hàng xem áo Polo 8TS23S001, Chatbot KHÔNG CẦN CHẠY AI MATCHING nữa. Nó chỉ cần query:
SELECT match_product_code, match_role, ai_reason FROM pg__dashboard_canifa__ai_outfit_product_matches WHERE anchor_product_code = '8TS23S001' ORDER BY id ASC; -- Đã được Worker sort sẵn lúc insert