Spaces:
Sleeping
Sleeping
| # Dialog Emotion Timeline Demo Plan | |
| ## Goal | |
| Build a readable Gradio demo for Hugging Face Spaces that tracks emotional color across a dialogue over time. | |
| The interface reads model-like outputs from CSV instead of calling a model directly. The default demo uses synthetic Russian messenger-style data, and users can upload another CSV with the same contract. | |
| ## Decisions | |
| - Chunk unit: one dialogue message per CSV row. | |
| - Data mode: bundled synthetic CSV plus optional CSV upload. | |
| - Refresh mode: static viewer, no live polling in v1. | |
| - Probability semantics: six probabilities in `[0, 1]`; each row must sum to `1`. | |
| - Emotions: `joy`, `warmth`, `sadness`, `anger`, `anxiety`, `neutral`. | |
| - UI language: Russian. | |
| - Chunk details: shown inside each message block on hover/focus. | |
| ## CSV Contract | |
| Required columns: | |
| - `turn_index` | |
| - `timestamp` | |
| - `sender` | |
| - `text` | |
| - `joy` | |
| - `warmth` | |
| - `sadness` | |
| - `anger` | |
| - `anxiety` | |
| - `neutral` | |
| ## Checklist | |
| - [x] Add dependencies and HF Spaces metadata. | |
| - [x] Generate deterministic synthetic dialogue CSV. | |
| - [x] Implement CSV loading and validation. | |
| - [x] Implement smoothing and Plotly figure generation. | |
| - [x] Build Gradio Blocks UI. | |
| - [x] Add focused tests. | |
| - [x] Run local verification. | |
| - [x] Commit changes in logical steps. | |
| ## Commit Log | |
| - Done: `docs: add project plan` | |
| - Done: `chore: add gradio dependencies and space config` | |
| - Done: `feat: add csv contract and synthetic dialogue` | |
| - Done: `feat: build emotion timeline ui` | |
| - Done: `test: cover data loading and smoothing` | |
| - Done: `docs: update implementation tracker` | |
| - Done: `style: refine emotion timeline interface` | |
| - Current: graph supports line/stacked area modes, emotion focus, and a per-message slice chart. | |
| ## Verification | |
| - `uv run pytest` | |
| - `uv run python -m compileall app.py main.py dialog_emo_demo scripts tests` | |
| - `uv run python app.py` | |
| - Browser smoke test at `http://127.0.0.1:7860` | |
| ## Non-goals For v1 | |
| - Model inference inside the UI. | |
| - Automatic CSV refresh or file watching. | |
| - Plot-hover to message-block synchronization. | |
| - Authentication, persistence, or multi-session state. | |