# Sơ đồ hoạt động

Cách chatbot AI xử lý khi khách hàng gửi tin nhắn — từ lúc nhận câu hỏi đến khi trả lời

100%
Khách gửi tin nhắn
Tiếp nhận
Máy chủ
Đã hỏi trước?
Bộ nhớ tạm
Chưa → tiếp
Nhớ lại khách
Lịch sử + Hồ sơ
VÒNG LẶP AI
AI suy nghĩ
Cần tra?
Cần dữ liệu
Tra
Ghi
↩ Lặp
Hiển thị dần
Streaming
Ghi nhớ ngầm
4 tác vụ nền
Hoàn thành

#### 📥 Đầ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 mã khách hàng)
• Khách vãng lai → nhận diện qua thiết bị đang dùng

💡 Tại sao nhận diện 2 cách?
Nếu chỉ dùng tài khoản → khách chưa đăng nhập không chat được. Nếu chỉ dùng thiết bị → đổi điện thoại là mất hết lịch sử. Làm 2 cách thì khách vãng lai vẫn chat bình thường, còn khách đăng nhập thì lịch sử đi theo tài khoản.

#### 🌐 Máy chủ tiếp nhận — Xử lý song song

Tin nhắn của khách được gửi đến máy chủ. Máy chủ chạy theo mô hình không chờ đợi: khi đang chờ AI suy nghĩ cho khách A (mất 2-20 giây), server vẫn tiếp tục nhận tin của khách B, C, D... không bị tắc nghẽn.

Máy chủ chạy 4 tiến trình song song, mỗi tiến trình phục vụ hàng trăm khách cùng lúc.

💡 Tại sao quan trọng?
Vì AI mất 2-25 giây để suy nghĩ. Nếu máy chủ chờ xong mới phục vụ khách tiếp → 4 tiến trình chỉ serve 4 khách cùng lúc. Với mô hình song song → 4 tiến trình serve hàng trăm khách vì trong lúc chờ AI trả lời, máy chủ rảnh để nhận khách khác.

#### ⚡ Kiểm tra câu hỏi trùng Tiết kiệm 30-40% chi phí

Trước khi gọi AI (tốn tiền + mất 15-20 giây), hệ thống kiểm tra: "Câu hỏi này đã có ai hỏi trước đó chưa?"

• Đã từng hỏi rồi → Trả câu trả lời cũ ngay lập tức, không cần gọi AI lại
• Chưa từng hỏi → Tiếp tục gọi AI xử lý bình thường

Câu trả lời cũ được lưu trong 1 giờ. Những câu hỏi mang tính cá nhân (VD: "đơn hàng của tôi đâu?") sẽ không lưu vì mỗi khách khác nhau.

💡 Tại sao cần bước này?
Nhiều khách hay hỏi giống nhau: "có khuyến mãi gì?", "áo polo nam?", "chính sách đổi trả?". Thống kê cho thấy ~35% câu hỏi là trùng lặp. Mỗi lần gọi AI tốn tiền + mất 15-20 giây. Nhớ lại câu trả lời cũ giúp tiết kiệm 30-40% chi phí và khách được trả lời nhanh gần như ngay lập tức.

#### 💾 Nhớ lại khách hàng là ai

Trước khi AI trả lời, hệ thống tìm lại 2 loại thông tin về khách:

1. Trí nhớ ngắn hạn — 10 tin nhắn gần nhất trong cuộc hội thoại hiện tại. Giúp AI nhớ đang nói chuyện về chủ đề gì.

2. Trí nhớ dài hạn (Hồ sơ khách) — Bản tóm tắt ngắn gọn: giới tính, size hay mặc, phong cách yêu thích, sản phẩm đã xem. Được AI tự động cập nhật sau mỗi cuộc hội thoại.

💡 Tại sao tách ngắn hạn vs dài hạn?
Ngắn hạn giúp AI nhớ cuộc chat hiện tại. Dài hạn giúp AI nhớ khách xuyên suốt nhiều lần chat mà không cần lưu toàn bộ lịch sử (rất tốn kém).

#### 🤖 AI suy nghĩ — Vòng lặp Agent ⭐ Trái tim hệ thống

Đây là phần quan trọng nhất. AI đóng vai trò một tư vấn viên thông minh — tự đọc câu hỏi, tự phân tích ý định, tự quyết định cần tra gì.

#### 🔍 Hybrid Search — 2 cách tìm cùng lúc

Bot dùng 2 kỹ thuật song song, mỗi cách bù yếu điểm của cách kia:

Kỹ thuật | Cách hoạt động | ✅ Mạnh | ❌ Yếu
--- | --- | --- | ---
Semantic Search | AI viết mô tả → chuyển thành vector → top 200 giống nhất | Hiểu ý nghĩa mơ hồ: "xinh xinh", "đi chơi" | Có thể sai màu, sai giá
SQL Filter | AI điền filter → `WHERE color='trắng' AND gender='men' AND price≤500K` | Lọc chính xác 100% màu/giá/giới tính | Không hiểu "thanh lịch", "tối giản"

→ Kết hợp: Semantic tìm top 200 giống ý → SQL lọc chính xác → Kết quả vừa đúng ý vừa chính xác

#### ⚙️ AI có 6 công cụ tra cứu

🔍
Tìm sản phẩm Tên, loại, màu, giá
📚
Kiến thức Canifa Chính sách, đổi trả, bảo hành
🎁
Khuyến mãi Giảm giá, voucher hiện có
📦
Tồn kho Còn hàng không, size nào có
🏪
Cửa hàng Chi nhánh gần nhất
📋
Thu thập liên hệ Ghi lại SĐT, tên khách
💡 Tại sao để AI tự quyết thay vì lập trình sẵn?
Nếu lập trình sẵn kiểu A→B→C, phải dự đoán trước mọi kịch bản — rất khó và cứng nhắc. Để AI tự phân tích + tự quyết định tra gì → linh hoạt hơn nhiều, giống nhân viên tư vấn giỏi tự suy nghĩ chứ không theo script.

#### 📡 Hiển thị câu trả lời dần dần (Streaming)

Thay vì đợi AI viết xong toàn bộ rồi mới hiện, câu trả lời được hiện ra từng chữ — giống cách ChatGPT hoạt động.

Khách thấy chữ bắt đầu xuất hiện sau 2-3 giây. Ngoài text, hệ thống cũng gửi kèm card sản phẩm (hình ảnh, giá, link mua, tồn kho) nếu AI gợi ý sản phẩm.

💡 Tại sao không đợi xong mới hiện?
Vì AI cần 15-25 giây để viết xong toàn bộ. Hiện dần dần giúp khách bắt đầu đọc ngay sau 2-3 giây — cảm giác chờ đợi giảm ~85% dù tổng thời gian không đổi.

#### ⚙️ Ghi nhớ và xử lý ngầm Chạy sau khi khách đã nhận câu trả lời

Sau khi khách đã nhận được câu trả lời, hệ thống âm thầm làm thêm 4 việc (song song, không bắt khách đợi):

1. 💾 Lưu lịch sử — Ghi lại cuộc hội thoại để lần sau AI nhớ

2. 🧠 Cập nhật hồ sơ khách — AI tóm tắt thông tin mới (size, sở thích...) → bổ sung vào trí nhớ dài hạn

3. ⚡ Lưu câu trả lời — Nhớ lại để khách khác hỏi giống thì trả nhanh hơn

4. 📊 Ghi log theo dõi — Thời gian, chi phí, công cụ đã dùng → team review chất lượng

💡 Tại sao chạy ngầm?
4 việc này mất thêm 3-8 giây. Chạy ngầm: khách nhận xong → xong việc với khách → server tự ghi nhớ phía sau.

#### ✅ Khách nhận câu trả lời

Khách nhận câu trả lời dạng text có định dạng đẹp, kèm card sản phẩm nếu AI gợi ý: ảnh, tên, giá, link mua, trạng thái còn hàng.

Mỗi câu trả lời kèm nút 👍 👎 để khách đánh giá → team dùng để review và cải thiện chất lượng.