№ 31
VinStay là nền tảng tìm thuê nhà/căn hộ thông minh, kết hợp AI Chatbot, bản đồ và gợi ý cá nhân hóa để giúp người dùng nhanh chóng tìm được nơi ở phù hợp với ngân sách, vị trí di chuyển và nhu cầu sinh hoạt. Hệ thống cho phép người dùng mô tả nhu cầu bằng ngôn ngữ tự nhiên, tự động cập nhật bộ lọc và xếp hạng các tin thuê nhà theo mức độ phù hợp.
VinStay giải quyết bài toán tìm thuê nhà, căn hộ và phòng trọ bằng tiếng Việt tự nhiên. Người dùng không cần tự thao tác nhiều bộ lọc rời rạc mà nhập trực tiếp nhu cầu như: giá dưới 12 triệu, diện tích trên 40m2, 2 phòng ngủ, gần VinUni, gần khu công nghiệp hoặc thuận tiện di chuyển cho nhiều người.
Bài toán chính của hệ thống là chuyển câu nhập tự nhiên thành bộ lọc có cấu trúc, xác định đúng các địa điểm thường đến, tìm kiếm lại toàn bộ dữ liệu listing và xếp hạng kết quả theo mức độ phù hợp.
Các yêu cầu trọng tâm:
VinStay sử dụng LLM để trích xuất ý định, còn backend chịu trách nhiệm quyết định toàn bộ logic tìm kiếm, validate, merge state, geocode, route, ranking và trả kết quả. Cách thiết kế này giúp hệ thống dễ kiểm soát, dễ debug và không phụ thuộc vào việc để LLM tự chọn listing.
Luồng xử lý chính:
User
→ Next.js Frontend
→ FastAPI Backend
→ 3 nhánh LLM song song
→ Geocode bằng Nominatim
→ Route bằng OSRM
→ Search toàn bộ listing
→ Ranking nội bộ
→ Trả kết quả + bản đồ + lý do phù hợp
Ba nhánh LLM chạy song song:
Location Extraction: trích xuất thao tác thêm, sửa, xóa địa điểm thường đến.Preference Extraction: trích xuất giá, diện tích, số phòng, loại hình, nội thất, hướng và keyword mô tả.Conversation Response: phản hồi tự nhiên cho câu chào hỏi, cảm ơn, ngoài phạm vi hoặc tình huống hệ thống chưa hỗ trợ.Công nghệ chính:
gpt-5.4-mini.Ranking nội bộ sử dụng công thức:
match_score =
structured_score * 0.65
+ destination_score * 0.25
+ description_score * 0.10
- soft_penalty
Trong đó:
structured_score: đánh giá giá, diện tích, phòng, loại hình, nội thất và trạng thái tin.destination_score: đánh giá khoảng cách đến các địa điểm thường đến.description_score: đánh giá mức độ khớp keyword mô tả như máy lạnh, chỗ để xe, phòng gym, hồ bơi.soft_penalty: trừ điểm khi một số tiêu chí mềm không khớp.VinStay đáp ứng đầy đủ điều kiện để chạy demo/MVP vì hệ thống đã có backend API, frontend chat/filter/map, dữ liệu listing thật, cơ chế session, geocoding, routing, ranking và bộ đánh giá LLM.
Về dữ liệu, hệ thống đang sử dụng dataset listing đã làm sạch. Mỗi tin chứa các trường quan trọng như giá, diện tích, địa chỉ, tọa độ, số phòng ngủ, tiện ích, hình ảnh và mô tả. Cách lưu JSON đáp ứng giai đoạn demo; khi mở rộng sản phẩm, dữ liệu cần chuyển sang database để tăng tốc truy vấn và quản lý cập nhật.
Về công nghệ, các thành phần được xây dựng bằng stack phổ biến: FastAPI cho backend, Next.js cho frontend, Nominatim cho geocoding, OSRM cho route và gpt-5.4-mini cho trích xuất nhu cầu. Kiến trúc này rõ ràng, tách biệt trách nhiệm và thuận lợi cho kiểm thử.
Về đánh giá, golden dataset hiện có 50 case. Kết quả so sánh cho thấy gpt-5.4-mini đạt chất lượng tốt hơn gpt-4o-mini:
| Metric | gpt-4o-mini | gpt-5.4-mini |
|---|---|---|
| Case pass rate | 88.00% | 96.00% |
| Action accuracy | 90.54% | 98.65% |
| Fail cases | 6/50 | 2/50 |
| Front-stage p95 latency | 7504.66 ms | 2081.30 ms |
Về chi phí, gpt-5.4-mini có chi phí extraction cao hơn gpt-4o-mini, nhưng đổi lại chất lượng trích xuất và p95 latency tốt hơn trong bộ eval hiện tại. Với demo và đồ án, mức chi phí này chấp nhận được. Với production nhiều người dùng, hệ thống cần cache, rút gọn prompt, giới hạn lượt chat theo session và theo dõi token qua logs.
Các giới hạn hiện tại:
Các hướng phát triển tiếp theo:
Chuyển dữ liệu listing từ JSON sang PostgreSQL + PostGIS để hỗ trợ truy vấn không gian, lọc dữ liệu lớn và cập nhật tin hiệu quả hơn.
Tự động hóa pipeline crawl, clean, dedupe, normalize và geocode listing để dữ liệu luôn mới, giảm tin trùng, giảm tin hết hạn và tăng độ tin cậy.
Mở rộng golden dataset từ 50 case lên vài trăm case thực tế, bao phủ thêm câu nhập ngắn, câu nhập mơ hồ, câu đổi ý, câu xóa filter và câu có nhiều địa điểm.
Tách model theo nhánh để tối ưu chi phí: dùng model mạnh cho Preference Extraction, model nhẹ cho Conversation Response, và theo dõi riêng latency/cost của từng branch.
Nâng cấp ranking bằng dữ liệu hành vi người dùng như lưu tin, bỏ qua tin, bấm liên hệ và so sánh tin. Điều này giúp hệ thống học được tiêu chí phù hợp thực tế thay vì chỉ dựa vào công thức cố định.
Cải thiện trải nghiệm bản đồ bằng cách hiển thị route rõ hơn, hỗ trợ nhiều phương tiện di chuyển và gợi ý khu vực thuê tối ưu theo nhiều điểm đến.
Chuẩn hóa hạ tầng deploy bằng domain riêng, managed tunnel hoặc VPS ổn định. Endpoint geo, tile và API public cần rate limit, auth nhẹ, logging và monitoring.
Bổ sung tính năng sản phẩm: lưu nhu cầu tìm kiếm, so sánh nhiều căn, thông báo căn mới, đánh giá độ tin cậy tin đăng và đặt lịch xem nhà.