4 điểm bởi chlrhdmltkfkd 2026-04-02 | 3 bình luận | Chia sẻ qua WhatsApp

Xin chào. Mỗi khi nhìn thấy lượng lớn laptop hoàn trả được đẩy lên các chợ mở lớn, tôi luôn cảm thấy rất mệt mỏi khi phải tự mình kiểm tra chính xác cấu hình thực tế và so sánh với mức giá thấp nhất trên Danawa.

Để giải quyết vấn đề này, tôi đã phát triển 'Banpoom Laptop', một dịch vụ tích hợp và trực quan hóa bằng AI thông tin deal laptop từ nhiều nền tảng thương mại khác nhau cùng cơ sở dữ liệu khổng lồ của Danawa.

Link: https://banpoomlaptop.com

1. Stack công nghệ sử dụng (Tech Stack)

Tôi đã xây dựng lại toàn bộ cấu trúc, từ frontend cho tới pipeline dữ liệu.

  • Frontend: Next.js 16 (App Router), React 19, Tailwind CSS v4, Zustand

  • Backend / Database: Node.js, Next API Routes, MongoDB (Aggregation Pipeline), Redis

  • Crawling / Pipeline: Python (curl_cffi), Puppeteer, PM2 (daemon chạy nền)

  • AI / Data Matcher: OpenRouter API (Qwen 3.5), BM25 (thuật toán tìm kiếm độ tương đồng)

2. Những điểm khó chính trong quá trình phát triển

Khi xây dựng dự án này, tôi không chỉ làm web đơn thuần mà còn phải đối mặt với nhiều bài toán khó trong khâu thu thập và tinh chỉnh dữ liệu của pipeline.

A. Chuẩn hóa dữ liệu phi cấu trúc và cross-mapping giữa các nền tảng dị chủng

Thách thức lớn nhất là ghép nối giữa 'tiêu đề laptop hoàn trả rất thiếu nhất quán trên các chợ mở' và 'tên cấu hình phức tạp của Danawa'. Cách ghi khác nhau tùy từng nhà bán khiến việc dùng DB Join thông thường hay regex đều có giới hạn rất rõ ràng.
Để giải quyết, tôi đã xây dựng một pipeline AI 2 bước.

  1. Dùng thuật toán độ tương đồng văn bản BM25 để trích xuất trước các model ứng viên vòng 1 từ cơ sở dữ liệu Danawa khổng lồ.
  2. Sau đó đưa nhóm ứng viên đã tìm được vào cửa sổ ngữ cảnh của LLM (mô hình ngôn ngữ lớn) dựa trên Qwen 3.5 để mô hình hiểu ngữ cảnh và tìm ra đúng model phái sinh duy nhất (pcode). Xa hơn nữa, tôi cũng giao cho background worker nhiệm vụ để LLM cấu trúc hóa các thông số kỹ thuật dạng văn bản dài của Danawa thành JSON theo thời gian thực.

B. Áp dụng logic suy luận cho thuật toán xếp hạng chính nâng cao (Hidden Score)

Dữ liệu từ chợ mở về cơ bản thường khiến 'tỷ lệ giảm giá' trông nổi bật nhất, nhưng vấn đề là có rất nhiều hàng tồn cũ kém chất lượng theo năm sản xuất.
Để giải quyết, tôi đã cài một hệ thống 'điểm ẩn' ngay bên trong Aggregation Pipeline của MongoDB với công thức điểm = tỷ lệ giảm giá + (chỉ số hiệu năng / giá hiện tại) - penalty theo năm. Không dừng ở lọc theo điều kiện đơn thuần, tôi còn áp mức phạt -50 điểm cho các model trước đời 2022 và cộng trọng số +20 điểm cho các model mới nhất đời 2025~2026, để chỉ những thiết bị thật sự đáng tiền mới được ưu tiên hiển thị ở shelf trên cùng.

3. Kết luận

Ở phía frontend, tôi đã tối ưu để hàng chục bộ lọc đa thông số (panel, hãng sản xuất, trọng lượng, TGP, v.v.) phản hồi ngay lập tức và mượt mà thông qua việc liên kết giữa Zustand và tham số của Next.js.
Điều có ý nghĩa nhất với tôi trên cương vị kỹ sư là đã thử đưa LLM vào sử dụng một cách nghiêm túc không phải như chatbot đơn thuần, mà như một 'trình phân tích chuẩn hóa dữ liệu phi cấu trúc' và 'bộ ghép nối thông minh' trong pipeline chạy nền. Tôi rất hoan nghênh mọi trao đổi ý kiến hay phản hồi từ những ai quan tâm đến data crawling, AI matching hoặc môi trường phát triển Next.

3 bình luận

 
cnaa97 2026-04-02

Muốn mua ghê..

 
runableapp 2026-04-02

Hay đấy, một trang web tiện lợi.
Theo ý kiến cá nhân, thiết kế hơi quá giống một trang mua sắm và màu sắc có vẻ khiến mắt bị mỏi.
Chỉ với thuật toán thôi có lẽ cũng đã đủ, vậy điểm nào khiến LLM thực sự cần thiết?

 
kurthong 2026-04-02

Trên di động (Galaxy S25 Plus), nút gửi cuộc trò chuyện và nút đóng (X) trong cửa sổ chat AI đang bị chồng lên nhau.