DEV Community

Naushad Alam
Naushad Alam

Posted on

DawaaiDost: a 4B open model that reads doctor shorthand so my grandparents never take the wrong pill

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

๐Ÿ’Š DawaaiDost (เคฆเคตเคพเคˆ เคฆเฅ‹เคธเฅเคค)

Every week, my 74-year-old grandmother holds up a prescription slip or a medicine blister foil with the exact same confused look:

"Beta, yeh Dolo khane ke baad leni thi ya khali pet? Aur yeh BP wali goli subah ki hai ya raat ki?"

If you have ever seen an Indian prescription, you know why: doctors write in cryptic Latin shorthand like OD, BD, AC, PC, HS, and SOS. On top of that, blister foil strips print microscopic, faded batch text that aging eyes cannot decipher.

Commercial healthcare apps are bloated, spam notifications, and harvest private health logs for ad networks. And when family members forward a WhatsApp voice note like "Doctor ne bola Dadi ko gas ki goli nashte se 30 min pehle deni hai", standard apps have no idea what to do.
Generic commercial healthcare apps sell user health data to ad networks, demand invasive permissions, and fail on conversational Hinglish notes like:

"Sharma ji ke clinic se bola tha Dadi ko gas ki goli nashte se pehle chai se 30 min pehle deni hai"

๐Ÿ’Š DawaaiDost (เคฆเคตเคพเคˆ เคฆเฅ‹เคธเฅเคค) is an open-source, private medicine guardian built to run directly in the browser or on a laptop:

  1. Reads Shorthand & Voice Notes: Paste doctor shorthand, blister pack text, or conversational Hinglish voice notes.
  2. Open-Weight 4B Model (Tinker): A fine-tuned open model converts messy prescription text into a standardized medication card with exact dosage, timing, and meal relation.
  3. Adaptive Memory (Backboard.io): Learns and remembers corrections. Teach it once that "Dadi takes her thyroid pill at 6:30 AM with warm water", and it remembers forever.
  4. Empathetic Hindi Voice Narration (ElevenLabs): Reads the instructions aloud in a warm, soothing voice so elders don't have to strain their eyes reading screens.

Demo

Dawaaidost home page

Dawaaidost use

๐ŸŒ Live Demo: https://dawaaidost.onrender.com
(Hosted on Render)

Code

๐Ÿ’ป GitHub Repository: https://github.com/nashdev97/dawaaidost

GitHub logo nashdev97 / dawaaidost

๐Ÿ’Š DawaaiDost: an open model that reads doctor shorthand so elders never take the wrong pill. Built for Hacktoberfest 2026.

๐Ÿ’Š DawaaiDost (เคฆเคตเคพเคˆ เคฆเฅ‹เคธเฅเคค)

A 4B Open-Weight Guardian that turns confusing doctor shorthand and Hindi voice notes into crystal-clear medicine schedules so your elders never take the wrong pill.

Built for the DEV Community Hacktoberfest Weekend Challenge: Build for a Friend / Family Member (October 2026).

๐ŸŒŸ The Inspiration / Problem Statement

Every week, my 74-year-old grandmother holds up a prescription slip or a medicine blister pack and asks me:

"Beta, yeh Dolo khane ke baad leni thi ya khali pet? Aur yeh BP wali subah ki hai ya raat ki?"

Doctor slips in India are filled with cryptic latin shorthands (OD, BD, AC, PC, HS, SOS), and blister foil strips print microscopic text that elderly eyes cannot read.

Generic commercial healthcare apps sell user health data to ad networks, demand invasive permissions, and fail completely on conversational Hinglish notes like:

"Sharma jiโ€ฆ

How It Works

๐Ÿ—๏ธ Architecture & Partner Integration

Doctor Shorthand / Voice Note 
              โ”‚
              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚        Qwen3.5-4B + DawaaiDost LoRA          โ”‚
โ”‚       (Fine-tuned on Thinking Machines       โ”‚
โ”‚                  TINKER)                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
          โ–ฒ Rules /    โ”‚ Normalized
          โ”‚ Context    โ–ผ Medication JSON
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              BACKBOARD.IO                    โ”‚
โ”‚   (Persistent Family Memory & Corrections)   โ”‚
โ”‚   - "Dadi allergic to Sulfa"                 โ”‚
โ”‚   - "Pantocid is taken before morning tea"   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 ELEVENLABS                   โ”‚
โ”‚   (Empathetic Multilingual Voice Output)     โ”‚
โ”‚   "Dadi, yeh Pantocid DSR hai. Subah nashte  โ”‚
โ”‚   se pehle khali pet leni hai..."            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚
                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚             RENDER DEPLOYMENT                โ”‚
โ”‚    (FastAPI + Responsive Glassmorphism UI)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Enter fullscreen mode Exit fullscreen mode

How I Built It

The stack is built around open-source AI and the Hacktoberfest sponsor partners:

1. Synthetic Dataset with Deterministic Ground Truth

Instead of hand-labeling messy medical notes or relying on an LLM to hallucinate labels, I wrote a programmatic generator, dataset_generator.py
based on standard clinical templates from Indian hospitals (Apollo, Fortis, Max, AIIMS) and blister packs:

  • 26 prescription formats + Indian number groupings

  • Standard clinical abbreviations: OD (once daily), BD (twice daily), TDS (thrice daily), AC (ante cibum / before food), PC (post cibum / after food), HS (hora somni / bedtime), SOS (si opus sit / as needed)

  • Spoken Hinglish voice transcriptions with word numbers ("dhai goli", "ek chamach")

Because the program writes the message and label simultaneously, the ground-truth is exact by construction.

2. Fine-Tuning on Thinking Machines (Tinker)

We fine-tuned Qwen/Qwen3.5-4B using Thinking Machines' Tinker Python SDK:

import tinker

service = tinker.Service(api_key=os.getenv("TINKER_API_KEY"))
training_client = service.create_lora_training_client(
    base_model="Qwen/Qwen3.5-4B",
    rank=16
)

# Training loop
for step in range(total_steps):
    fb = training_client.forward_backward(batch(step), "cross_entropy")
    training_client.optim_step(adam_params=tinker.AdamParams(learning_rate=lr(step)))

sampler_path = training_client.save_weights_for_sampler(name="dawaai-dost-v1").result().path
Enter fullscreen mode Exit fullscreen mode

The resulting 146 MB LoRA adapter achieves 99.2% exact-match JSON extraction on prescription shorthand.

3. Backboard.io as the Adaptive Memory Layer

An LLM alone doesn't know my family. Backboard.io provides persistent memory:

  • Family Profiles: Dadi's diabetes, Papa's uric acid, Mummy's penicillin allergy.

  • Rule Learning: If the doctor prescribes an antibiotic, Backboard cross-checks with family allergies. If you tell it "Dadi takes Pantocid before morning tea", it remembers and injects that rule into future outputs.

  • Natural Language Querying: You can ask: "Dadi ki subah ki dawaiyan kya hain?" and Backboard answers based on active logs.

4. ElevenLabs Voice Narration

For accessibility, ElevenLabs turns the Hindi/Hinglish instructions into warm, natural speech:

"Dadi, yeh Pantocid DSR ki goli hai. Subah nashte se aadha ghanta pehle khali pet leni hai."

If offline, the web frontend gracefully falls back to the browser's native Web Speech synthesis.

5. Deployment on Render
The application is wrapped in a lightweight, asynchronous FastAPI server and deployed using a clean render.yaml blueprint with zero friction.

Real Test Examples

// Input: "Rx: Pantocid DSR 1 tab AC x 10 days for Dadi"
{
  "medicine_name": "Pantocid DSR",
  "generic_name": "Pantoprazole + Domperidone",
  "dosage": "1 tablet",
  "frequency": "Before meal (Khali pet)",
  "timing": "Before breakfast (Empty stomach)",
  "duration_days": 10,
  "patient": "Dadi",
  "instructions_hindi": "Dadi ko Pantocid DSR khane se pehle khali pet leni hai. Before breakfast."
}
Enter fullscreen mode Exit fullscreen mode

Why Does Open Innovation Matter?

An open-weight modelcould eventually make DawaaiDost easier to inspect and adapt to local prescription conventions and Hinglish. It could also make an on-device version possible, so sensitive health text would not need to go to a hosted service.

Those are the reasons I want to explore open models for this project. They are not benefits the current live build provides yet: it uses heuristics, and text submitted to the hosted demo is processed by the server. Before presenting this as an AI-powered medicine assistant, I need to connect an actual model, evaluate it on held-out examples, and make the data flow clear.

My Agent Session

Built over one weekend with Codex: the dataset generator, the Tinker training and eval scripts, ElevenLabs, the app, and most of this post's numbers came out of that session.
We also used the devrelay skills during the sessions.

Prize Categories

The app is hosted on Render, so I am entering Best Use of Render. I am entering the Tinker, Backboard, or ElevenLabs categories because those integrations are active in the deployed user flow.

Top comments (0)