chore: Update README with new emoji and color scheme, and revise short description to reflect AI-based nurse handover training platform.
7df763f
| title: Nurse Handover Simulator | |
| emoji: π₯ | |
| colorFrom: purple | |
| colorTo: pink | |
| sdk: docker | |
| pinned: false | |
| short_description: AI κΈ°λ° κ°νΈμ¬ SBAR μΈμμΈκ³ νλ ¨ νλ«νΌ - EMR λ°μ΄ν°λ‘ μ€μ μ°μ΅ | |
| # π₯ κ°νΈ μΈμμΈκ³ κ΅μ‘ νλ«νΌ | |
| Clinical Handover Training Chatbot utilizing SBAR/ISBAR, EMR data, and immersive technology (Metaverse/VR) for standardized, high-fidelity nursing handover practice. | |
| ## π κ°μ | |
| κ°νΈμ¬ SBAR νμ μΈμμΈκ³ νλ ¨μ μν AI κΈ°λ° κ΅μ‘ νλ«νΌμ λλ€. Gradio κΈ°λ° μΉ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ€μ EMR λ°μ΄ν°λ₯Ό νμ©ν μΈμμΈκ³ μ°μ΅μ μ 곡ν©λλ€. | |
| ## π μμνκΈ° | |
| ### 1. μ μ₯μ ν΄λ‘ | |
| ```bash | |
| git clone https://github.com/your-username/nurse-handover-simulator.git | |
| cd nurse-handover-simulator | |
| ``` | |
| ### 2. νκ²½ λ³μ μ€μ | |
| #### Supabase μ¬μ© (κΆμ₯) | |
| 1. `ENV_EXAMPLE` νμΌμ `.env`λ‘ λ³΅μ¬ν©λλ€: | |
| ```bash | |
| cp ENV_EXAMPLE .env | |
| ``` | |
| 2. Supabase νλ‘μ νΈ μ€μ μμ νμν μ 보λ₯Ό 볡μ¬ν©λλ€: | |
| - Project URL: `https://project_id.supabase.co` | |
| - API Key (anon key) | |
| - Database URL (Connection String) | |
| 3. `.env` νμΌμ Supabase μ 보λ₯Ό μ λ ₯ν©λλ€: | |
| ```env | |
| SUPABASE_URL=https://[project_id].supabase.co | |
| SUPABASE_ANON_KEY=your_anon_key_here | |
| SUPABASE_DB_URL=postgresql://postgres:[password]@aws-0-[region].pooler.supabase.com:6543/postgres | |
| GOOGLE_API_KEY=your_google_api_key_here | |
| ``` | |
| #### λ‘컬 PostgreSQL μ¬μ© (κ°λ° νκ²½) | |
| νκ²½ λ³μμ `SUPABASE_DB_URL`μ μ€μ νμ§ μμΌλ©΄ μλμΌλ‘ λ‘컬 PostgreSQLμ μ¬μ©ν©λλ€. | |
| ### 3. μμ‘΄μ± μ€μΉ | |
| ```bash | |
| # uvλ₯Ό μ¬μ©νλ κ²½μ° | |
| uv sync | |
| # λλ μΌλ° pip μ¬μ© | |
| pip install -e . | |
| ``` | |
| ### 4. Google Gemini API ν€ λ°κΈ | |
| 1. [Google AI Studio](https://makersuite.google.com/app/apikey)μμ API ν€ λ°κΈ | |
| 2. `.env` νμΌμ `GOOGLE_API_KEY` μΆκ° | |
| ### 5. μ ν리μΌμ΄μ μ€ν | |
| ```bash | |
| # start.sh μ¬μ© (κΆμ₯) | |
| bash start.sh | |
| # λλ μ§μ μ€ν | |
| uv run app.py | |
| ``` | |
| ## π³ Docker λ°°ν¬ | |
| ### λ‘컬 Docker μ€ν | |
| ```bash | |
| # Docker μ΄λ―Έμ§ λΉλ | |
| docker build -t nurse-handover-simulator . | |
| # Docker 컨ν μ΄λ μ€ν (νκ²½ λ³μ ν¬ν¨) | |
| docker run -p 7860:7860 \ | |
| -e SUPABASE_URL="https://your-project.supabase.co" \ | |
| -e SUPABASE_ANON_KEY="your_key" \ | |
| -e SUPABASE_DB_URL="postgresql://..." \ | |
| -e GOOGLE_API_KEY="your_key" \ | |
| nurse-handover-simulator | |
| # λλ .env νμΌ μ¬μ© | |
| docker run -p 7860:7860 --env-file .env nurse-handover-simulator | |
| ``` | |
| ### Hugging Face Spaces λ°°ν¬ | |
| 1. Hugging Face Spacesμ μ Space μμ± (Docker νμ μ ν) | |
| 2. Repository Secretsμ λ€μ νκ²½ λ³μ λ±λ‘: | |
| - `SUPABASE_URL` | |
| - `SUPABASE_ANON_KEY` | |
| - `SUPABASE_DB_URL` | |
| - `GOOGLE_API_KEY` | |
| 3. Dockerfileκ³Ό μ½λ νΈμ | |
| 4. μλ λΉλ λ° λ°°ν¬ μλ£ | |
| ## π νλ‘μ νΈ κ΅¬μ‘° | |
| ``` | |
| nurse-handover-simulator/ | |
| βββ app.py # Gradio λ©μΈ μ ν리μΌμ΄μ | |
| βββ config/ | |
| β βββ database.py # λ°μ΄ν°λ² μ΄μ€ μ°κ²° μ€μ | |
| βββ models/ | |
| β βββ patient_data.py # νμ λ° μλλ¦¬μ€ λͺ¨λΈ | |
| β βββ handoff_record.py # μΈμμΈκ³ κΈ°λ‘ λͺ¨λΈ | |
| β βββ chat_history.py # μ±ν νμ€ν 리 λͺ¨λΈ | |
| βββ services/ | |
| β βββ db_service.py # λ°μ΄ν°λ² μ΄μ€ CRUD μλΉμ€ | |
| β βββ gemini_service.py # Google Gemini AI μλΉμ€ | |
| βββ data/ | |
| β βββ scenarios.json # μλλ¦¬μ€ λ°μ΄ν° | |
| βββ Dockerfile # Docker λ°°ν¬ μ€μ | |
| βββ docker-compose.yml # λ‘컬 PostgreSQL μ€μ | |
| βββ ENV_EXAMPLE # νκ²½ λ³μ ν νλ¦Ώ | |
| βββ start.sh # μμ μ€ν¬λ¦½νΈ | |
| βββ init_db.py # λ°μ΄ν°λ² μ΄μ€ μ΄κΈ°ν μ€ν¬λ¦½νΈ | |
| ``` | |
| ## π νκ²½ λ³μ μ€λͺ | |
| | λ³μ | μ€λͺ | νμ μ¬λΆ | | |
| |------|------|---------| | |
| | `SUPABASE_URL` | Supabase νλ‘μ νΈ URL | Supabase μ¬μ© μ | | |
| | `SUPABASE_ANON_KEY` | Supabase Anon API Key | Supabase μ¬μ© μ | | |
| | `SUPABASE_DB_URL` | Supabase λ°μ΄ν°λ² μ΄μ€ μ°κ²° URL | Supabase μ¬μ© μ | | |
| | `GOOGLE_API_KEY` | Google Gemini API ν€ | νμ | | |
| | `DB_HOST` | λ‘컬 PostgreSQL νΈμ€νΈ | λ‘컬 PostgreSQL μ¬μ© μ | | |
| | `DB_PORT` | λ‘컬 PostgreSQL ν¬νΈ | λ‘컬 PostgreSQL μ¬μ© μ | | |
| ## π 보μ κ°μ΄λ | |
| ### νκ²½ λ³μ κ΄λ¦¬ | |
| 1. **μ λ `.env` νμΌμ Gitμ 컀λ°νμ§ λ§μΈμ** | |
| - `.gitignore`μ `.env`κ° μ΄λ―Έ ν¬ν¨λμ΄ μμ΅λλ€ | |
| 2. **Supabase Keys** | |
| - `SUPABASE_ANON_KEY`: ν΄λΌμ΄μΈνΈ λ ΈμΆ κ°λ₯ (RLSλ‘ λ³΄νΈλ¨) | |
| - `SUPABASE_DB_URL`: μλ²μμλ§ μ¬μ©, λ ΈμΆ κΈμ§ | |
| 3. **Google API Key** | |
| - μλ²μμλ§ μ¬μ©, λ ΈμΆ κΈμ§ | |
| 4. **Hugging Face Spaces** | |
| - Repository Secretsλ₯Ό μ¬μ©νμ¬ νκ²½ λ³μλ₯Ό μμ νκ² κ΄λ¦¬ | |
| ## π μ£Όμ κΈ°λ₯ | |
| - π **EMR μ 보 μ‘°ν**: μ€μ λ³μ EMRκ³Ό μ μ¬ν μΈν°νμ΄μ€ | |
| - π¬ **AI νΌλλ°±**: Google Gemini AIλ₯Ό νμ©ν μ€μκ° νΌλλ°± | |
| - π **SBAR νμ μΈμμΈκ³**: νμ€ μΈμμΈκ³ νμ μ°μ΅ | |
| - π **νκ° μμ€ν **: μμ μ±, μ νμ±, λͺ λ£μ±, μ°μ μμ νκ° | |
| - π **νμ μ΄λ ₯ μ‘°ν**: νμλ³ νμ΅ μ΄λ ₯ λ° ν΅κ³ | |
| ## π οΈ κΈ°μ μ€ν | |
| - **Backend**: Python 3.12 | |
| - **UI**: Gradio | |
| - **Database**: Supabase (PostgreSQL) / λ‘컬 PostgreSQL | |
| - **AI**: Google Gemini 2.0 Flash | |
| - **ORM**: SQLAlchemy | |
| ## π λΌμ΄μ μ€ | |
| MIT License | |
| ## π€ κΈ°μ¬νκΈ° | |
| Pull Requestλ μΈμ λ νμν©λλ€! | |