Views
No views yet
Full documentation: seedocumentation.htmlfor architecture, every concept explained, the testing approach, and a log of real bugs found and fixed while building this. This README is just the practical quick-start.
| Form | Collects |
|---|---|
| Job Application | Contact details, experience, availability, relocation |
| School Admission | Student and guardian details, grade applying for |
| Patient Intake | Patient details, reason for visit, insurance, appointment date |
| Support Request | Contact details, product/issue, priority level |
forms.py — no route,
template, or dialogue logic changes needed.pip install -r requirements.txt1ollama pull llama3.2
2ollama serveen_US-lessac-medium.onnx and en_US-lessac-medium.onnx.json
— into the voices/ folder.python app.pyhttp://localhost:5000.1python tests/test_validators.py
2python tests/test_app.pyapp.py Flask routes, sessions, the voice API
forms.py Registry of all 4 forms
form_schema.py FormField definition + Whisper context hints
validators.py One validator per field type
state_manager.py Tracks a form's filled/missing fields per turn
extractor.py Calls the local LLM to extract fields from speech
dialogue_manager.py Decides what the assistant says next
stt.py Whisper transcription
tts.py Piper speech synthesis
templates/ Jinja2 pages (form select, manual form, voice UI, success)
static/ style.css + voice_assistant.js
tests/ test_validators.py, test_app.py
voices/ Piper voice files go heredocumentation.html for the reasoning behind each of these.