ReviewRadar 挑戰 2:找出餐飲評論中的重複問題
Review Radar Challenge 2
ReviewRadar 以瀏覽器端 AI 分析咖啡店及餐廳評論,將措辭不同但涉及相同問題的評論歸為一組,並列出原始評論及預設建議行動。它使用 Transformers.js 和量化句嵌入模型 Xenova/all-MiniLM-L6-v2,模型首次下載後會在瀏覽器執行,評論毋須傳送至推理 API。每組至少需要兩則評論,優先次序按問題出現次數反映,並不估算營收損失或業務影響。
ReviewRadar: finding the same complaint before it becomes the next review
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle.
What I Built
ReviewRadar helps café and restaurant owners find recurring problems in customer reviews.
An owner uploads a CSV or pastes their reviews. The app groups related concerns, shows the original comments behind each group, and suggests a next step. They can add that step to an action list, mark it complete, and download a text report.
The useful part is seeing several customers describe the same problem in different words. “The queue barely moved” and “twenty minutes for a takeaway coffee” belong in the same conversation about service speed.
Small hospitality businesses are the intended customers. I would test charging for a recurring review report, particularly for owners managing more than one location. That is still a business hypothesis; this version has no payment flow or paying customers.
Demo
The hosted preview currently requires owner access, so the repository includes instructions for running it locally.
The app opens with sample café reviews. You can inspect the source comments, try the action list, or replace the sample with your own feedback. CSV files need a review or text column; a rating column is optional.
Code
There is no build step. From the project folder, run:
python3 -m http.server 8000 --directory dist
Then open http://localhost:8000.
How I Built It
The interface uses HTML, CSS and JavaScript. I kept the dependencies small because the main workflow is just importing feedback, checking evidence and deciding what to do.
For analysis, ReviewRadar uses Transformers.js with the quantized Xenova/all-MiniLM-L6-v2 sentence embedding model. The model runs in the browser after an initial download.
The app compares review embeddings with six restaurant-related concerns, including waiting times, food temperature and cleanliness. Related reviews outside those categories can form separate clusters. Each group needs at least two reviews.
Suggested actions come from predefined next steps. They are not generated advice, and the original comments remain available so the owner can judge whether a suggestion fits.
Priority currently reflects how often a concern appears. It does not estimate lost revenue or business impact.
I tested CSV parsing, including quoted commas, multiline fields and invalid input. I also checked the browser workflow for analysis, searching, creating and completing actions, and downloading a report.
Why Does Open Innovation Matter?
Customer feedback can contain names and details that an owner would rather keep off another service. Running an open-weight model locally means the review text does not need to be sent to an inference API.
It also avoids a per-request inference bill. That matters for a small product where the potential customer might only upload a few dozen reviews each month. Hosting and maintenance still have costs, but each analysis runs on the visitor’s device.
The tradeoff is accuracy. This version is intended for English café and restaurant reviews. Unrated positive comments can sometimes appear in a concern group, so checking the source quotes is part of the workflow.
The next improvement I would make is better separation of praise and complaints. I would also add report history: right now, a new import replaces the current report and action list.
來源:DEV Community · dev.to