NannaDesk: An AI Assistant for My Dad That's Not Allowed to Guess
说明与用途
NannaDesk 是一个本地 AI 助手,帮助用户管理药物、解读医疗报告并草拟邮件,所有操作均不做猜测,数据完全离线。
问题
A government employee in Telangana, India needed a personal AI assistant that could remember medication, explain blood reports and government paperwork, follow up on office emails, and perform small administrative tasks without guessing or making unverified claims.
结果
NannaDesk delivers a safe, deterministic AI assistant that respects user privacy, operates offline, and avoids uncertain predictions by delegating all state changes to deterministic code.
工作流
- 1. User speaks or types a query to the local LLM (Qwen3.5‑0.8B via llama.cpp).
- 2. Whisper.cpp transcribes voice input, handling mixed Telugu and English.
- 3. A keyword/regex router deterministically classifies the intent (medication confirmation, report explanation, email draft, government lookup).
- 4. For medication: the SQLite-backed state machine updates only after explicit user confirmation, sending macOS notifications via APScheduler.
- 5. For email: the LLM drafts the email; the user reviews and taps a confirm button to trigger an HTTP send endpoint.
- 6. For government lookup: Playwright scripts a headless browser to submit a form on goir.telangana.gov.in and parse the results table.
- 7. ElevenLabs TTS optionally reads the assistant’s response back to the user.
- 8. All data (medication history, reports, emails) remains in a local SQLite file, never uploaded.
- 9. The system informs the user when a network call fails (e.g., email send or government lookup).
证据
NannaDesk is a personal AI assistant built for one real person: my dad.
The LLM decides how to help. Deterministic software decides what actually happened.
It runs on his laptop. A small open-weight model (Qwen3.5-0.8B) handles the conversation.
A SQLite-backed state machine for medication and meal confirmations — SCHEDULED → REMINDER_SENT → TAKEN, with explicit SNOOZED, NOT_CONFIRMED, and SKIPPED states.
A keyword/regex router instead of LLM tool-calling, on purpose.
Playwright to fill in that form and read the results table directly.
It runs on a laptop with no internet.
All of it works with Wi‑Fi off, because I built and tested it that way deliberately.
- 记录日期: 2026-10-03T14:55:46.124Z