A newer version of the Gradio SDK is available: 6.26.0
metadata
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
- Python 3.9+
- Install deps: pip install -r requirements.txt
- (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 - Start the app: python app.py
- Click “Sign in” to grant the app an access token for the Hugging Face Inference API.
Deploy on Hugging Face Spaces
- Create a new Space (SDK: Gradio).
- Add files (app.py, requirements.txt, README.md). Push via Git.
- Users click “Sign in” to authorize Inference API use.
- (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.