Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

NannaDesk: An AI Assistant for My Dad That's Not Allowed to Guess

Description and use

NannaDesk is a local AI assistant that helps a non‑technical user manage medication, interpret medical reports, and draft emails without guessing, keeping all data offline and deterministic.

Problem

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.

Outcome

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.

Workflow

  • 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).

Evidence

NannaDesk is a personal AI assistant built for one real person: my dad.

Source

The LLM decides how to help. Deterministic software decides what actually happened.

Source

It runs on his laptop. A small open-weight model (Qwen3.5-0.8B) handles the conversation.

Source

A SQLite-backed state machine for medication and meal confirmations — SCHEDULED → REMINDER_SENT → TAKEN, with explicit SNOOZED, NOT_CONFIRMED, and SKIPPED states.

Source

A keyword/regex router instead of LLM tool-calling, on purpose.

Source

Playwright to fill in that form and read the results table directly.

Source

It runs on a laptop with no internet.

Source

All of it works with Wi‑Fi off, because I built and tested it that way deliberately.

Source

  • Record date: 2026-10-03T14:55:46.124Z