review-bridge
My parents run a noodle restaurant. They don't read English, so in fifteen years they have never read a single one of their own Google Maps reviews. The 1-star reviews sit there unanswered — and every restaurateur knows that replying to reviews is what brings new customers in.
review-bridge is their review secretary. It watches Google Maps for them and runs a loop they can actually use:
盯着 → 汇总 → 预警 → 代笔回复 — watch, brief, alert, ghostwrite.
- 📊 中文简报 (brief) — every morning, a Chinese briefing: average rating, rating trend, which dishes customers praise most, what they complain about most. Google Translate can translate a review. It cannot do this.
- 🚨 差评预警 (alert) — 1–2 star reviews get flagged immediately with urgency. My parents never open Google Maps; the tool watches it for them.
- ✍️ 代笔回复 (ghostwrite) — for each flagged review, a polite, natural English reply draft they can post publicly, plus a Chinese explanation of what the reply says and why. This is the real unlock: non-English-speaking owners responding to customers in fluent English.
Translation happens underneath, as plumbing. It is never presented as the product.
Why open AI matters here
- Runs offline on the family laptop — no internet needed in a restaurant backroom.
- Customer feedback never leaves the laptop — no review data sent to a third-party AI API.
- Zero cost — a small family business shouldn't pay a SaaS subscription to read its own reviews.
- The family controls it — the whole UI is in Simplified Chinese, tuned for the owners, not for a generic dashboard.
The AI core is Gemma 3 running locally via Ollama. Review fetching uses SerpApi's Google Maps Reviews API (free tier: 100 searches/month — plenty for one restaurant).
Built for the Hacktoberfest 2026 Weekend Challenge (Build for a Friend). Entered prize categories: Best Use of Gemma ($200), Best Use of SerpApi ($100).
Quickstart (Windows laptop)
# 1. Install Ollama from https://ollama.com, then:
ollama pull gemma3:4b
# 2. Free SerpApi key from https://serpapi.com (no credit card), then:
setx SERPAPI_KEY "your-key-here"
# 3. Install and run:
pip install review-bridge
review-bridge serve --query "Best Noodle House Rosemead"
# open http://localhost:8080 on your phone (same Wi-Fi)
No SerpApi key? Paste mode needs nothing:
review-bridge paste < reviews.txt # blocks separated by ---
review-bridge serve --mock # demo with sample data, no network/AI
Paste format — blocks separated by a --- line:
author: Jane D.
rating: 2
date: 2026-09-20
The noodles were cold and we waited 40 minutes...
---
author: Bob
rating: 5
Best beef noodle soup ever!
CLI
review-bridge fetch --query "Restaurant Name" # pull + print Chinese briefing
review-bridge fetch --place-id <serpapi_id> # skip the name lookup
review-bridge paste [--file reviews.txt] # no API key needed
review-bridge serve [--port 8080] # Chinese web UI
review-bridge <cmd> --mock # canned data, no network/AI
Tests
python -m pytest tests/ -q # 26 tests, stdlib only
Honest limitations
- The SerpApi free tier caps at 100 searches/month; a busy restaurant chain would outgrow it.
- Review-reply drafts are AI-generated — the owners should skim the Chinese explanation before posting.
- Star ratings on aggregator mirrors are sometimes sub-ratings; the tool trusts what the API returns.
- The local model needs ~4GB RAM free; a very old laptop will be slow (the
--mockdemo still works). - This watches Google Maps reviews only — Yelp/DoorDash are separate worlds.
Metadata
Release files for review-bridge 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| review_bridge-0.1.0.tar.gz | 19.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| review_bridge-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.3 kB
Release files / review_bridge-0.1.0.tar.gz
| Download URL | review_bridge-0.1.0.tar.gz |
|---|---|
| Size | 19.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6e37b155d79611ecb32fd9971331a35562cbc16e612c0ab40bbe848feae12b37
|
|
BLAKE2b-256 checksum How to use checksums |
acf1e456583ce2328ab1cb7d868398c6bd739fe3a6ba87cd45f3a213e2f351de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / review_bridge-0.1.0-py3-none-any.whl
| Download URL | review_bridge-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3ab8f023fd3f569c41cbaa61813f6b92c65ac10a714282f8c6b1cf5d16c8b42f
|
|
BLAKE2b-256 checksum How to use checksums |
2b21a192fe846f012f5d9f03d73f5b5fcb21179ea72dc040f99440c6cdc3a8b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|