Spaces:
Sleeping
Sleeping
File size: 2,612 Bytes
9a6e931 65a8715 b093192 65a8715 9a6e931 65a8715 9a6e931 65a8715 b093192 9a6e931 65a8715 b093192 | 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 | ---
title: VoxDoc Voice Symptom Triage Assistant
# emoji:
colorFrom: blue
colorTo: green
sdk: docker
app_port: 7860
pinned: false
license: apache-2.0
short_description: Voice intake and clinical documentation demo
thumbnail: >-
https://cdn-uploads.huggingface.co/production/uploads/696a57ff06f0d3d8e09b7433/whTfF2UGXkXM5zhjWvt46.png
---
# VoxDoc β HF Space Deployment
Demo deployment of [voice-symptom-triage-assistant](https://github.com/JoelJohnsonThomas/voice-symptom-triage-assistant) on Hugging Face Spaces.
> **Demo only.** Hugging Face Spaces are **not HIPAA-compliant**. Do not submit
> real protected health information (PHI). Use synthetic transcripts only.
## How this Space is configured
This Space runs the FastAPI backend on the **free CPU tier**. To stay within
the 2-vCPU / 16-GB RAM budget, MedGemma generation is delegated to **HF
Inference Providers** rather than loaded in-process. ASR (`whisper-small`)
and biomedical NER still run locally on CPU.
| Setting | Value | Why |
|---|---|---|
| `MEDGEMMA_PROVIDER` | `hf-inference` | Avoid loading the 4b model on CPU |
| `DEVICE` / `ENABLE_GPU` | `cpu` / `false` | Free tier has no GPU |
| `ENABLE_IMAGE_ANALYSIS` | `false` | Vision routing not configured here |
| `app_port` | `7860` | HF Spaces default |
## Required Space secrets
Add these in **Settings β Variables and secrets β New secret**:
- `HF_TOKEN` β read-token from [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) with access to MedGemma
- `ENCRYPTION_MASTER_KEY` β any strong random string (`openssl rand -hex 32`)
- `JWT_SECRET_KEY` β same; used even with auth disabled
## Optional: persist sessions across restarts
The default SQLite store lives on the ephemeral Space filesystem and is lost
on restart. To keep sessions, either:
1. Enable **persistent storage** (Settings β paid feature) and point
the SQLite file at `/data/voxdoc.db`, **or**
2. Set `DATABASE_URL` to a free hosted Postgres (Neon / Supabase) using the
`postgresql+asyncpg://...` form.
## Frontend
The React frontend (`frontend/`) is **not** built into this Space β deploy it
separately to Vercel/Netlify and point its API base URL at this Space's URL.
The legacy server-rendered UI under `app/static/` is still reachable for
quick testing.
## Local equivalent
```bash
docker build -f deploy/huggingface/Dockerfile -t voxdoc-hf .
docker run -p 7860:7860 \
-e HF_TOKEN=hf_xxx \
-e ENCRYPTION_MASTER_KEY=$(openssl rand -hex 32) \
-e JWT_SECRET_KEY=$(openssl rand -hex 32) \
voxdoc-hf
```
Open [http://localhost:7860](http://localhost:7860). |