Spaces:
Runtime error
Runtime error
| # Architecture | |
| ## Current System | |
| ```text | |
| Browser UI | |
| -> FastAPI meeting/session routes | |
| -> local meeting JSON storage | |
| -> faster-whisper transcription | |
| -> OpenRouter transcript correction | |
| -> OpenRouter MoM generation | |
| -> Markdown persistence | |
| -> optional Hugging Face Dataset sync | |
| ``` | |
| Current UI metadata collected before transcription: | |
| - meeting title | |
| - meeting code | |
| - participant/device label | |
| - meeting type | |
| - recording mode | |
| - known terms | |
| - meeting context | |
| Room-recording processing safeguards: | |
| - upload size limit | |
| - audio metadata inspection | |
| - serialized Whisper transcription on CPU | |
| - merge-safe segment upserts for simultaneous participant submissions | |
| - original-audio persistence before transcription | |
| - atomic local metadata writes and locked segment upserts | |
| - Dataset metadata restore after Space rebuild | |
| - lazy original-audio and Markdown restore on host download | |
| ## Implemented Modules | |
| - `app.py` - FastAPI routes and page rendering | |
| - `config.py` - environment and path configuration | |
| - `models.py` - typed meeting/session structures | |
| - `storage.py` - local persistence and optional Dataset sync | |
| - `transcription.py` - Whisper loading and transcription | |
| - `llm.py` - OpenRouter transcript correction and MoM generation | |
| - `markdown.py` - transcript Markdown rendering | |
| ## Target System | |
| ```text | |
| Browser UI | |
| -> FastAPI meeting/session routes | |
| -> local meeting storage | |
| -> Whisper raw transcript | |
| -> LLM transcript correction | |
| -> LLM MoM generation | |
| -> Markdown persistence | |
| -> Hugging Face Dataset persistence | |
| ``` | |
| ## Meeting Data Shape | |
| ```json | |
| { | |
| "meeting_id": "client-sync-2026-06-08", | |
| "title": "Client Sync", | |
| "context": "Discuss launch blockers", | |
| "meeting_type": "hybrid", | |
| "participants": [ | |
| { | |
| "name": "Prashanth", | |
| "recording_mode": "room_recorder" | |
| } | |
| ], | |
| "segments": [ | |
| { | |
| "segment_id": "seg-001", | |
| "label": "Conference Room", | |
| "recording_mode": "room_recorder", | |
| "covered_participants": ["Prashanth", "Asha", "Rahul"], | |
| "created_at": "2026-06-08T10:30:00Z", | |
| "raw_transcript": "...", | |
| "corrected_transcript": "..." | |
| } | |
| ] | |
| } | |
| ``` | |
| ## Markdown Outputs | |
| ```text | |
| meetings/ | |
| meeting-id/ | |
| metadata.json | |
| recordings/ | |
| segment-id.aac | |
| raw_transcript.md | |
| corrected_transcript.md | |
| minutes.md | |
| ``` | |
| On Hugging Face Spaces, local disk is not durable by default. Production persistence should use a Hugging Face Dataset repo or another external storage backend. | |
| ## Route Plan | |
| ```text | |
| POST /api/meetings | |
| GET /api/meetings/{meeting_id} | |
| GET /api/meetings/{meeting_id}/host | |
| POST /api/meetings/{meeting_id}/segments | |
| POST /api/meetings/{meeting_id}/generate | |
| GET /api/meetings/{meeting_id}/downloads/{file_name} | |
| ``` | |
| These routes are implemented. | |