File size: 2,475 Bytes
4ff45b3 670e9a7 4ff45b3 fd9552e 4ff45b3 fd9552e 3ab287a 4ff45b3 c7ed502 3ab287a c7ed502 01601b9 4ff45b3 c4e364e 670e9a7 c4e364e 4ff45b3 c4e364e 7825141 c4e364e 670e9a7 f234692 6f92dc6 4ff45b3 7825141 8620950 c7ed502 8620950 3ab287a 7825141 3ab287a 7825141 0834a09 7825141 0834a09 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | ---
title: Patient Virtuel · Français en médecine dentaire
emoji: 🦷
colorFrom: red
colorTo: gray
sdk: gradio
sdk_version: 6.16.0
app_file: src/server_app.py
pinned: false
license: apache-2.0
tags:
- hackathon
- build-small-hackathon
- backyard-ai
- voice-ai
- french-learning
- dental
- gradio
- modal
- llama-cpp
- gemma
- track:backyard
- sponsor:modal
- achievement:offgrid
- achievement:offbrand
- achievement:llama
- achievement:sharing
- achievement:fieldnotes
---
# Patient Virtuel · Français en médecine dentaire
Hackathon submission for [build-small-hackathon](https://huggingface.co/build-small-hackathon).
**Track**: Backyard AI — a real tool for a real learner: a dental hygienist training professional French.
Uses `gradio.Server` with a custom HTML/CSS/JS frontend (Off-Brand Award entry).
**Llama Champion badge**: Model runs through the llama.cpp runtime via `llama-cpp-python` with flash attention and L4 GPU optimizations.
**Off the Grid badge**: Zero cloud APIs. STT → faster-whisper (local), LLM → Gemma 4 (local), TTS → piper-tts (local neural, `fr_FR-siwis-medium` voice).
See [`space_README.md`](space_README.md) for the full description.
📖 [Field Notes](FIELD_NOTES.md) — architecture decisions, lessons learned, and the story behind the app.
📡 [Agent Trace](https://huggingface.co/datasets/build-small-hackathon/patient-virtuel-trace) — curated build log on HF Hub (Sharing is Caring badge).
[Demo video](https://youtu.be/oP3KrlZFUPk) · [LinkedIn post](https://www.linkedin.com/posts/carlosduplar_my-wife-is-a-dentist-re-entering-the-workforce-activity-7471897489332289536-p5Ne)
## Architecture
```
src/
server_app.py → gr.Server backend (API endpoints)
core.py → Shared session logic
llm_engine.py → Gemma 4 26B-A4B via Modal (llama.cpp runtime)
stt_engine.py → faster-whisper via Modal
tts_engine.py → piper-tts (local neural, fr_FR-siwis-medium)
prompts.py → System prompts
parse_feedback.py → Feedback parsing
frontend/
custom_index.html → Custom vanilla HTML/CSS/JS frontend
style.css → Styles
modal/
modal_app.py → Modal deployments (llama.cpp + CUDA)
```
## Running locally
```bash
pip install -r requirements.txt
python src/server_app.py
```
## Deploying to HF Spaces
The Space uses `space_README.md` as its README and `src/server_app.py` as the entry point.
|