Pakistan Notice Helper is a bilingual safety assistant for confusing or suspicious Pakistani notices, bills, SMS messages, bank alerts, challans, and courier or customs messages. Paste text or upload a screenshot to receive:
The mobile-first interface has a persistent English/Urdu switch. Urdu mode uses a right-to-left layout and asks the live model to answer in Urdu. Roman Urdu and mixed-language inputs are also supported.
Pakistan Notice Helper checks common scam signals but does not provide official verification, legal advice, or financial advice. Verify through an official website or helpline before paying or sharing personal information.
| Resource | Link |
|---|---|
| Live app | Hugging Face Space |
| Source | GitHub repository |
| Open traces | Privacy-safe trace dataset |
| Demo video | Watch on YouTube |
| Build story | Building Pakistan Notice Helper |
| Social post | Project announcement on LinkedIn |
This is a Backyard AI submission for the Build Small. Play Big. Hackathon. It applies a small model to a practical regional safety problem: helping people in Pakistan understand unfamiliar notices before they pay, reply, click a link, or share personal information.
The app combines a custom bilingual interface built on gradio.Server with
Qwen3.5-4B Q8_0, served by a CUDA-enabled llama.cpp OpenAI-compatible endpoint
on a Modal L4 GPU. It accepts text or screenshots, structures the model response
into an actionable risk assessment, and can publish privacy-safe workflow
traces only after explicit user consent.
| Area | Project evidence |
|---|---|
| Core constraints | Public Gradio Space using Qwen3.5-4B, below the 32B limit |
| Backyard AI track | A real user tested the phone workflow and plans to use it for future suspicious messages |
| Off Brand badge | Custom mobile-first HTML, CSS, and JavaScript interface served through gradio.Server instead of the default Gradio UI |
| Tiny Titan badge | The 4B Q8 model passed the final 10-case internal regression suite |
| Best Demo badge | Public demo video, social post, live Space, source repository, and build story are linked above |
| Bonus Quest Champion badge | Meets the Backyard AI, Off Brand, Tiny Titan, Best Demo, Modal, open-source, and privacy-safe trace-sharing criteria |
| Modal sponsor prize | Qwen3.5-4B is hosted on a Modal L4 GPU endpoint |
| OpenAI sponsor prize | Codex was used throughout development with attributed commits in the connected repository |
The demo video includes a real user using the app on a phone, taking screenshots of messages, and checking them with Pakistan Notice Helper.
The user especially liked the app's speed and the accuracy of its responses. They said they plan to use it in the future to check different scam or suspicious messages.
Text or screenshot
|
v
Custom bilingual frontend on gradio.Server
|
v
Image preprocessing and structured safety prompt
|
v
Qwen3.5-4B Q8_0 MTP on llama.cpp
|
v
Modal L4 endpoint
|
v
Risk label, explanation, red flags, and safe next steps
Gradio provides queueing, API routes, and Hugging Face Spaces hosting without exposing a default Gradio UI. Live analyses always use the configured model endpoint. There is no heuristic fallback, and endpoint failures are shown explicitly. Bundled English examples are cached; Urdu analyses are generated live.
unsloth/Qwen3.5-4B-MTP-GGUF using Qwen3.5-4B-Q8_0.ggufllama.cpp OpenAI-compatible serverbase_urlThe focused test set covers banking notices, authority impersonation, prize scams, service messages, Urdu text, and screenshots. It is not a claim of general fraud-detection accuracy.
pip install -r requirements.txt
copy .env.example .env
python app.py
On macOS or Linux, use cp .env.example .env. Add MODAL_PROXY_KEY and
MODAL_PROXY_SECRET to .env before starting live inference. Model URL, name,
token limit, timeout, and retry settings are optional.
See docs/local_model_setup.md for full setup and deployment
instructions.
Users can explicitly consent to sharing a minimized workflow trace. Traces may include language, input type, risk label, latency, response length, and a coarse error category.
They do not include raw notice text, OCR text, screenshots, names, phone
numbers, credentials, or full model responses. See
the trace dataset card.
Audit the live trace dataset with:
python -m traces.scripts.analyze_trace_dataset
Never rely on a verification link contained inside a suspicious message.
Pakistan Notice Helper is a bilingual safety assistant for confusing or suspicious Pakistani notices, bills, SMS messages, bank alerts, challans, and courier or customs messages. Paste text or upload a screenshot to receive:
The mobile-first interface has a persistent English/Urdu switch. Urdu mode uses a right-to-left layout and asks the live model to answer in Urdu. Roman Urdu and mixed-language inputs are also supported.
Pakistan Notice Helper checks common scam signals but does not provide official verification, legal advice, or financial advice. Verify through an official website or helpline before paying or sharing personal information.
| Resource | Link |
|---|---|
| Live app | Hugging Face Space |
| Source | GitHub repository |
| Open traces | Privacy-safe trace dataset |
| Demo video | Watch on YouTube |
| Build story | Building Pakistan Notice Helper |
| Social post | Project announcement on LinkedIn |
This is a Backyard AI submission for the Build Small. Play Big. Hackathon. It applies a small model to a practical regional safety problem: helping people in Pakistan understand unfamiliar notices before they pay, reply, click a link, or share personal information.
The app combines a custom bilingual interface built on gradio.Server with
Qwen3.5-4B Q8_0, served by a CUDA-enabled llama.cpp OpenAI-compatible endpoint
on a Modal L4 GPU. It accepts text or screenshots, structures the model response
into an actionable risk assessment, and can publish privacy-safe workflow
traces only after explicit user consent.
| Area | Project evidence |
|---|---|
| Core constraints | Public Gradio Space using Qwen3.5-4B, below the 32B limit |
| Backyard AI track | A real user tested the phone workflow and plans to use it for future suspicious messages |
| Off Brand badge | Custom mobile-first HTML, CSS, and JavaScript interface served through gradio.Server instead of the default Gradio UI |
| Tiny Titan badge | The 4B Q8 model passed the final 10-case internal regression suite |
| Best Demo badge | Public demo video, social post, live Space, source repository, and build story are linked above |
| Bonus Quest Champion badge | Meets the Backyard AI, Off Brand, Tiny Titan, Best Demo, Modal, open-source, and privacy-safe trace-sharing criteria |
| Modal sponsor prize | Qwen3.5-4B is hosted on a Modal L4 GPU endpoint |
| OpenAI sponsor prize | Codex was used throughout development with attributed commits in the connected repository |
The demo video includes a real user using the app on a phone, taking screenshots of messages, and checking them with Pakistan Notice Helper.
The user especially liked the app's speed and the accuracy of its responses. They said they plan to use it in the future to check different scam or suspicious messages.
Text or screenshot
|
v
Custom bilingual frontend on gradio.Server
|
v
Image preprocessing and structured safety prompt
|
v
Qwen3.5-4B Q8_0 MTP on llama.cpp
|
v
Modal L4 endpoint
|
v
Risk label, explanation, red flags, and safe next steps
Gradio provides queueing, API routes, and Hugging Face Spaces hosting without exposing a default Gradio UI. Live analyses always use the configured model endpoint. There is no heuristic fallback, and endpoint failures are shown explicitly. Bundled English examples are cached; Urdu analyses are generated live.
unsloth/Qwen3.5-4B-MTP-GGUF using Qwen3.5-4B-Q8_0.ggufllama.cpp OpenAI-compatible serverbase_urlThe focused test set covers banking notices, authority impersonation, prize scams, service messages, Urdu text, and screenshots. It is not a claim of general fraud-detection accuracy.
pip install -r requirements.txt
copy .env.example .env
python app.py
On macOS or Linux, use cp .env.example .env. Add MODAL_PROXY_KEY and
MODAL_PROXY_SECRET to .env before starting live inference. Model URL, name,
token limit, timeout, and retry settings are optional.
See docs/local_model_setup.md for full setup and deployment
instructions.
Users can explicitly consent to sharing a minimized workflow trace. Traces may include language, input type, risk label, latency, response length, and a coarse error category.
They do not include raw notice text, OCR text, screenshots, names, phone
numbers, credentials, or full model responses. See
the trace dataset card.
Audit the live trace dataset with:
python -m traces.scripts.analyze_trace_dataset
Never rely on a verification link contained inside a suspicious message.