Đầu vào — Nhận tin nhắn từ khách
Khách gửi tin nhắn qua cửa sổ chat trên web hoặc app. Hệ thống nhận được cả chữ lẫn ảnh — ví dụ khách chụp ảnh một chiếc áo và hỏi "có sản phẩm nào giống thế này không?", AI sẽ nhận diện được.
Hệ thống nhận diện khách bằng 2 cách song song:
• Khách đã đăng nhập → biết chính xác là ai (theo User ID)
• Khách vãng lai → nhận diện qua Device ID
Máy chủ tiếp nhận — I/O Không đồng bộ
Tin nhắn được gửi đến máy chủ FastAPI. Server chạy theo mô hình Async: khi đang chờ LLM phản hồi cho User A, luồng thực thi (thread) được giải phóng để tiếp nhận User B, C, D.
Kiểm tra Semantic Cache Cost Saving
Hệ thống dùng thuật toán Cosine Similarity check xem câu hỏi hiện hành có khớp với lịch sử vừa hỏi không (Cache Hit).
• Hit (Khớp) → Trả câu trả lời cũ ngay lập tức (0.1 giây), bypass toàn bộ AI.
• Miss (Mới) → Chuyển sang LLM xử lý bình thường.
Truy xuất Ngữ Cảnh (Context window)
LLM là stateless (không có trí nhớ). Server phải inject (tiêm) lại 2 luồng data vào prompt text:
1. Short-term (Hội thoại) — 10 tin nhắn gần nhất để duy trì tư duy của cuộc trò chuyện.
2. Long-term (Hồ sơ) — Vector search kéo các notes về sở thích kích cỡ, màu sắc của riêng User ID này.
Vòng Lặp ReAct Agent LangGraph Logic
Thay vì chat thẳng 1 chiều, AI đóng vai trò Tác nhân tư duy tự động (Agent). Nó tự suy luận xem cần tra cứu tool nào để trả lời.
Kỹ thuật Hybrid Search
| Phương thức | Cách hoạt động | ✅ Ưu điểm | ❌ Nhược điểm |
|---|---|---|---|
| Vector (Semantic) | Mã hóa ý nghĩa câu -> Embedding -> Top N | Hiểu từ lóng, mơ hồ ("đi chơi") | Lọc sai giá trị tuyệt đối |
| Text-to-SQL | LLM viết câu lệnh WHERE price <= 500k | Chính xác 100% dữ liệu cứng | Chịu thua ngôn ngữ cảm xúc |
Toolset đang gắn cho Agent
Streaming Output
Vì vòng lặp Agent có thể tốn tận chục giây, hệ thống bắn tín hiệu Server-Sent Events (SSE) để render văn bản từng chữ một ngay khi AI đang trả lời.
Background Tasks Post-response
Lúc User đang đọc chữ, máy chủ xử lý tác vụ nền:
1. Lưu lịch sử DB Postgres
2. Push Telemetry data sang trung tâm đo lường Langfuse
3. Lưu Cache lại câu trả lời vừa sinh.
Hoàn tất chặng
Tin nhắn hiển thị hoàn chỉnh ở Frontend cùng các Block Product. Hệ thống standby chờ input tiếp theo.