<li><strong>Quy tắc 3 màu:</strong> Không diện quá 3 màu trên cùng 1 outfit để tránh rối mắt, kém sang trọng.</li>
<li><strong>Sắc độ tinh tế:</strong> Nếu mặc nguyên "cây" trung tính (vd: Full xám), phải dùng phụ kiện Kim loại (Gold/Silver) hoặc da bóng làm điểm nhấn.</li>
<li><strong>Du lịch:</strong> Đi biển chọn đồ rộng chất lanh/cotton mát, màu rực/trắng mộc. Đi núi/mạo hiểm chọn đồ dài, legging, chất cản gió ôm sát.</li>
<tdstyle="padding: 12px; border-left: 1px solid var(--border); color:var(--muted-fg); line-height:1.6;"><strong>Mọi dịp:</strong> Essential (Sơ mi Oversize + Tây dáng đứng + Bandana).</td>
<tdstyle="padding: 12px; border-left: 1px solid var(--border); color:var(--muted-fg); line-height:1.6;">Tuyệt vời cho Activewear (Bộ thể thao, Bra top, năng động).</td>
<tdstyle="padding: 12px; border-left: 1px solid var(--border); color:var(--muted-fg); line-height:1.5;">Nghiêng về nhóm Dark nam tính từ nhỏ.<br><br>VD: <em>TOP Vàng (Cam/Nổi) + BOTTOM Xanh Jeans (Dark)</em></td>
Cỗ máy AI Stylist hoạt động dựa trên sự kết hợp hoàn hảo giữa <strong>Luật thời trang cứng (Hard Rules)</strong> và <strong>Chấm điểm thẩm mỹ mờ (Weighted Scoring)</strong>. Đảm bảo Gợi ý luôn Đúng kiến thức và Đúng màu sắc nghệ thuật theo thời gian thực.
<h3style="color: var(--primary);">Lớp 1: Khung xương Định hướng (Postgres)</h3>
<p>Khống chế hoàn toàn AI, KHÔNG BAO GIỜ cho phép nó gợi ý mặc "Áo Polo" với "Quần Đùi Đồ Ngủ" (Sai kiến thức nền tảng). Bảng <code>chatbot_fashion_rules</code> sẽ ép thuật toán tìm đúng Thể loại Khớp nối. <em>Kết quả: Vớt được 1000 món đồ đúng Loại và Đang Còn Hàng.</em></p>
<h3style="color: var(--gold, #B45309);">Lớp 2: Đúc hồn Nghệ thuật (Point System)</h3>
<p>Trong 1000 món đồ đúng loại, hệ thống đẩy qua Thanh trượt UI 100đ <code>fashion_rules.json</code> để chấm điểm thẩm mỹ (Màu sắc, Form dáng, Chất liệu). Lọc ra TOP 3 xuất sắc nhất (Ví dụ: 95đ, loại bỏ Quần màu sai lệch được 20đ).</p>
</div>
</div>
</div>
<!-- TẠI SAO LẠI DÙNG HỆ ĐIỂM -->
<divclass="card-section">
<h2>⚖️ Bổ trợ: Tại sao dùng Hệ Điểm thay vì IF/ELSE tĩnh?</h2>
Thời trang không phải là toán học tuyệt đối (1+1=2). Lập trình theo luật cứng gán ép màu sắc (Ví dụ: Áo Vàng PHẢI ĐI VỚI Quần Đen) sẽ khiến AI trở nên nghèo nàn. Chúng ta sử dụng <strong>Hệ Điểm (Point System)</strong> để mô phỏng "sự đánh đổi" ở Lớp 2:
<listyle="margin-bottom: 8px;">Món đồ màu trung bình (15đ), form xuất sắc (22đ), hợp mùa hè (10đ) ➜ Tổng 47đ ➜ Vẫn lọt Top vì xuất sắc tổng thể.</li>
<li><strong>AI Tự Học:</strong> Agent tương lai có thể tự tăng/giảm trọng số (Ví dụ: Thấy khách thích mùa hè mát mẻ, tự ép trọng số chất liệu lên 20%).</li>
Hệ thống càn quét hàng ngàn SKUs, so từng sản phẩm đích với sản phẩm gốc qua 6 lăng kính, có tổng 100 điểm. Trọng số lớn nhất tập trung vào phần Giao diện thị giác (Màu sắc) dựa trên Framework Fashion.
<p>Thuật toán chi phối lớn nhất. Chia tất cả màu hệ thống thành rổ: Neutral, Light, Dark.</p>
</div>
</div>
<divclass="dimension-item">
<divclass="dim-icon">👗</div>
<divclass="dim-content">
<h3>Đồng điệu Phong cách (Style) <spanclass="badge-weight">22 ĐIỂM</span></h3>
<p>Mặc áo đẹp nhưng "sai Vibe" thì vẫn thảm họa. Áo mang tag `Dynamic` phối quần `Smart Casual` được điểm cao, nếu ép chung với quần `Lounge` sẽ bị trừ 0 điểm.</p>
<p>Tối ưu cho ngữ cảnh. Khi khách đang muốn tìm đồ "Đi làm", hệ thống tự động buff 20 điểm cho các Quần Âu, Áo Sơ mi trong kho để đẩy trồi lên ưu tiên.</p>
</div>
</div>
<divclass="dimension-item">
<divclass="dim-icon">📦</div>
<divclass="dim-content">
<h3>Vai trò Loại trừ (Role) <spanclass="badge-weight">12 ĐIỂM</span></h3>
<p>Ngăn lỗi vớ vẩn: "Không gợi ý Áo khi xem Áo". Nếu món gốc là TOP, AI chỉ đi tìm BOTTOM, OUTERWEAR, ACCESSORY. Món nào sai vai trò tự động điểm = 0.</p>
<p>Khắc phục lỗi cơ học (Phối quần đùi Linen mát mẻ của Hè với Áo Phao chần bông của Đông). Khác mùa là rớt đài.</p>
</div>
</div>
<divclass="dimension-item">
<divclass="dim-icon">🔀</div>
<divclass="dim-content">
<h3>Penalty Đa dạng hóa (Diversity) <spanclass="badge-weight">8 ĐIỂM</span></h3>
<p>Đã duyệt 1 cái Quần Khaki Trắng rồi, thì chiếc Khaki Trắng khác xuất hiện sẽ bị giáng "Phạt Trùng Lặp" (Trừ điểm mạnh) để nhường slot cho SKU khác màu khác dáng.</p>
</div>
</div>
</div>
</div>
<!-- TAB 2: FLOWCHART D3 -->
<divid="flowchart"class="tab-content">
<divclass="card-section">
<h2>🔄 Knowledge Graph: Luồng Thuật toán AI</h2>
<pstyle="font-size: 14px; color: var(--muted-fg); margin-bottom: 20px;">Kéo thả các node để tương tác. Đồ thị mô phỏng cách hệ thống càn quét và chấm điểm.</p>
<buttonclass="btn btn-outline btn-sm"onclick="openRulesModal()"title="Chỉnh sửa công thức"><idata-lucide="settings"class="icon-sm"></i> Công thức</button>
<buttonclass="btn btn-ghost active"id="btnGroupOcc"onclick="setGroupBy('occ')"style="font-weight:600;"><idata-lucide="shopping-bag"class="icon-sm"></i> Theo Dịp Mặc</button>
<buttonclass="btn btn-ghost"id="btnGroupColor"onclick="setGroupBy('color')"style="font-weight:600;"><idata-lucide="palette"class="icon-sm"></i> Theo Màu Sắc</button>
<buttonclass="btn btn-ghost"id="btnGroupMaterial"onclick="setGroupBy('material')"style="font-weight:600;"><idata-lucide="leaf"class="icon-sm"></i> Theo Chất Liệu</button>
<h4style="margin:0;font-size:14px;display:flex;align-items:center;gap:6px;"><idata-lucide="sparkles"class="icon-sm"></i> Tham khảo AI Outfit Suggestion</h4>
<divstyle="font-size:15px;font-weight:700;">📐 Công thức phối đồ — fashion_rules.json</div>
<divstyle="font-size:15px;font-weight:700;display:flex;align-items:center;gap:6px;"><idata-lucide="ruler"class="icon-md"></i> Công thức phối đồ — fashion_rules.json</div>
<divstyle="font-size:15px;font-weight:700;display:flex;align-items:center;gap:6px;color:var(--primary);"><idata-lucide="sparkles"class="icon-md"></i> Giải mã điểm số & Gợi ý phối đồ AI</div>
"neutral":"%trắng%' OR LOWER(master_color) LIKE '%white%' OR LOWER(master_color) LIKE '%đen%' OR LOWER(master_color) LIKE '%black%' OR LOWER(master_color) LIKE '%xám%' OR LOWER(master_color) LIKE '%grey%' OR LOWER(master_color) LIKE '%be%' OR LOWER(master_color) LIKE '%beige%",
"light":"%vàng%' OR LOWER(master_color) LIKE '%hồng%' OR LOWER(master_color) LIKE '%xanh da trời%",
"dark":"%đỏ%' OR LOWER(master_color) LIKE '%cam%' OR LOWER(master_color) LIKE '%xanh lá cây%' OR LOWER(master_color) LIKE '%xanh jeans%' OR LOWER(master_color) LIKE '%xanh than%"
}
# Material Season Queries
mat_groups={
"summer":"%cotton%' OR LOWER(description_text_full) LIKE '%linen%' OR LOWER(description_text_full) LIKE '%mát%' OR LOWER(description_text_full) LIKE '%hè%",
"winter":"%nỉ%' OR LOWER(description_text_full) LIKE '%len%' OR LOWER(description_text_full) LIKE '%phao%' OR LOWER(description_text_full) LIKE '%chần bông%' OR LOWER(description_text_full) LIKE '%đông%"
}
# Occasion Queries
# (Assuming Đi làm: sơ mi/quần âu/váy; Đi chơi: váy/áo phông/soóc)
occ_groups={
"di_lam":"%sơ mi%' OR LOWER(product_line_vn) LIKE '%chân váy%' OR LOWER(product_line_vn) LIKE '%quần âu%",
"di_choi":"%váy%' OR LOWER(product_line_vn) LIKE '%áo phông%' OR LOWER(product_line_vn) LIKE '%quần soóc%",
"o_nha":"%bộ mặc nhà%' OR LOWER(product_line_vn) LIKE '%quần lót%' OR LOWER(product_line_vn) LIKE '%áo lót%"