| --- |
| title: Maya – Klinik Sehat Sentosa (Role‑Play) |
| emoji: 🩺 |
| colorFrom: green |
| colorTo: blue |
| sdk: gradio |
| sdk_version: "4.44.1" |
| app_file: app.py |
| pinned: false |
| hf_oauth: true |
| --- |
| |
| Maya – Klinik Sehat Sentosa (Role‑Play) |
|
|
| Overview |
| - Gradio app where students interview “Maya,” a clinic owner persona, to practice requirements elicitation for an appointment & queueing system. |
| - “Generate Requirements JSON” creates a structured summary from the chat transcript. No data is persisted. |
|
|
| Run Locally |
| 1. Python 3.9+ |
| 2. Install deps: |
| pip install -r requirements.txt |
| 3. (Optional) Model selection (default uses GPT‑OSS via Together): |
| export HF_MODEL=openai/gpt-oss-20b |
| # If using GPT‑OSS/Together, set provider key: |
| export TOGETHER_API_KEY=xxxxxxxxxxxxxxxx |
| 4. Start the app: |
| python app.py |
| 5. Click “Sign in” to grant the app an access token for the Hugging Face Inference API. |
| |
| Deploy on Hugging Face Spaces |
| 1. Create a new Space (SDK: Gradio). |
| 2. Add files (app.py, requirements.txt, README.md). Push via Git. |
| 3. Users click “Sign in” to authorize Inference API use. |
| 4. (Optional) Set Space Variables: |
| - `HF_MODEL` (e.g., `openai/gpt-oss-20b`) |
| - `TOGETHER_API_KEY` (required for GPT‑OSS via Together) |
|
|
| Persona & Scope |
| - Persona: Maya is friendly, busy, non‑technical; answers concretely; asks clarifying questions when prompts are vague. |
| - Scope: scheduling, queue order, reminders, daily counts only. No billing, insurance, or EMR details. |
| - Constraints: low digital literacy, intermittent internet, must run on existing Android phones, small budget. |
|
|
| Usage Tips |
| - Ask clear, specific questions (who, what, when, where, how, constraints, edge cases). |
| - Click “Generate Requirements JSON” to see a structured summary of established requirements. |
| - JSON fields: actors, goals, constraints, functional & non‑functional requirements, user stories, edge cases, assumptions, open questions, acceptance criteria. |
|
|
| Notes |
| - Uses Hugging Face Inference (`huggingface_hub.InferenceClient`) with streaming responses. |
| - No database — state is in memory per session. |
| - If the JSON fails to parse, the raw text is shown instead. |
|
|