Spaces:
Running
title: Emotion Chatbot
emoji: π€
colorFrom: indigo
colorTo: blue
sdk: docker
app_port: 7860
app_file: run.py
pinned: false
Emotion Diary π€
ν루λ₯Ό λ§λ¬΄λ¦¬νλ©° μ°λ λΉμ μ μΌκΈ°, κ·Έ μμ μ¨κ²¨μ§ μ§μ§ κ°μ μ 무μμΌκΉμ?
μ΄ νλ‘μ νΈλ AIλ₯Ό ν΅ν΄ λΉμ μ κΈμ μ΄ν΄νκ³ , κ°μ μ λͺ°μ νκ±°λ νΉμ μλ‘μ΄ νλ ₯μ΄ νμν λ λ§μΆ€ν μ½ν μΈ λ₯Ό μΆμ²ν΄μ£Όλ λΉμ λ§μ κ°μ± λΉμμ λλ€.
β¨ Live Demo
π https://huggingface.co/spaces/taehoon222/emotion-chatbot-app
πΈ Screenshots
(μ€ν¬λ¦°μ·μ μ¬κΈ°μ μΆκ°νμΈμ. μ: λ©μΈ νμ΄μ§, μΌκΈ° μμ±, κ²°κ³Ό νλ©΄)
π ν΅μ¬ κΈ°λ₯
- π€ ν
μ€νΈ μ κ°μ νμ:
klue/roberta-baseλͺ¨λΈμ κΈ°λ°μΌλ‘, μΌκΈ° μμ λ΄κΈ΄ 볡ν©μ μΈ κ°μ μ 80% μ΄μμ μ νλλ‘ λΆμν©λλ€. - π κ°μ± λ§μΆ€ νλ μ΄μ : λΆμλ κ°μ μ λ°λΌ 'μμ©'κ³Ό 'μ ν' λ κ°μ§ μλ리μ€μ λ§μΆ° μν, μμ , μ± μ μΆμ²ν©λλ€.
- π λλ§μ κ°μ κΈ°λ‘: μμ±νλ μΌκΈ°μ AIμ κ°μ λΆμ κ²°κ³Όλ₯Ό λ¬λ ₯ ννλ‘ νμΈνκ³ , κ³Όκ±°μ κ°μ νλ¦μ μΈμ λ μ§ λ€μ λμλ³Ό μ μμ΅λλ€.
- π¨ 컀μ€ν ν λ§: λ€μν μμκ³Ό λ°°κ²½ μ΄λ―Έμ§λ‘ μ±μ λΆμκΈ°λ₯Ό μ·¨ν₯μ λ§κ² λ³κ²½ν μ μμ΅λλ€.
- π» μ§κ΄μ μΈ λ°μν UI: Flaskμ JavaScriptλ‘ κ΅¬μΆλ κ°κ²°νκ³ μ¬μ©νκΈ° μ¬μ΄ μΈν°νμ΄μ€λ₯Ό μ 곡ν©λλ€.
π οΈ κΈ°μ μ€ν
| κ΅¬λΆ | κΈ°μ |
|---|---|
| Backend | Python, Flask, Gunicorn, SQLAlchemy |
| Frontend | HTML, CSS, JavaScript |
| AI / Data | PyTorch, Hugging Face Transformers, Scikit-learn, Pandas |
| Database | Supabase (PostgreSQL) |
| Deployment | Docker, GitHub Actions (CI/CD), Hugging Face Spaces |
| Version Control | Git, GitHub, Git LFS |
ποΈ μν€ν μ²
κ°λ²Όμ΄ μ± μ½λμ λ¬΄κ±°μ΄ AI λͺ¨λΈμ λΆλ¦¬νμ¬ ν¨μ¨μ μΈ CI/CD νμ΄νλΌμΈμ ꡬμΆνμ΅λλ€.
[Local PC] --(git push)--> [GitHub] --(Action)--> [Hugging Face Spaces]
|
| (App Start)
V
[Hugging Face Hub] <--(Download Model)-- [Spaces Server]
π μμνκΈ°
μ¬μ μꡬμ¬ν
- Python 3.10
- Anaconda (κΆμ₯)
μ€μΉ λ° μ€ν
νλ‘μ νΈ λ³΅μ
git clone https://github.com/kootaeng2/Emotion-Chatbot-App.git cd Emotion-Chatbot-Appκ°μνκ²½ μμ± λ° νμ±ν (Anaconda μ¬μ©)
conda create -n emotion_env python=3.10 conda activate emotion_envνμ λΌμ΄λΈλ¬λ¦¬ μ€μΉ
pip install -r requirements.txtνκ²½ λ³μ μ€μ
.envνμΌμ μμ±νκ³ μλ λ΄μ©μ μΆκ°νμΈμ. Gemini APIλ₯Ό ν΅ν μΆμ² κΈ°λ₯μ νμν©λλ€.GEMINI_API_KEY="YOUR_GEMINI_API_KEY"μΉ μ ν리μΌμ΄μ μ€ν
python run.pyμλ² μ μ μΉ λΈλΌμ°μ μμ
http://127.0.0.1:5000μ£Όμλ‘ μ μνμΈμ.
π νλ‘μ νΈ κ΅¬μ‘°
Emotion/
β
βββ .github/ # GitHub Actions μν¬νλ‘μ° (CI/CD)
βββ data/ # AI λͺ¨λΈ νμ΅μ© λ°μ΄ν°
βββ notebooks/ # λ°μ΄ν° νμ λ° μ μ²λ¦¬μ© Jupyter Notebook
βββ results/ # λͺ¨λΈ νμ΅ κ²°κ³Ό
βββ scripts/ # λͺ¨λΈ νλ ¨, νκ°μ© μ€ν¬λ¦½νΈ
βββ src/ # ν΅μ¬ μ ν리μΌμ΄μ
μμ€ μ½λ
β βββ templates/ # HTML ν
νλ¦Ώ
β βββ static/ # CSS, JS νμΌ
β βββ __init__.py # Flask μ± μ΄κΈ°ν (Application Factory)
β βββ auth.py # μΈμ¦ κ΄λ ¨ λ‘μ§
β βββ emotion_engine.py # κ°μ λΆμ λͺ¨λΈ λ‘λ© λ° μμΈ‘
β βββ main.py # λ©μΈ νμ΄μ§, μΌκΈ°/μΆμ² κΈ°λ₯
β βββ models.py # λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈ
β
βββ supabase/ # Supabase DB λ§μ΄κ·Έλ μ΄μ
βββ Dockerfile # λ°°ν¬μ© Docker 컨ν
μ΄λ μ€μ
βββ requirements.txt # Python λΌμ΄λΈλ¬λ¦¬ μ’
μμ±
βββ run.py # μ ν리μΌμ΄μ
μ€ν μ€ν¬λ¦½νΈ
Frontend (Templates) ꡬ쑰 μμΈ (ν΄λ¦νμ¬ νΌμΉκΈ°)
src/templates ν΄λλ Flaskμ Jinja2 ν
νλ¦Ώ μμ§μ μ¬μ©νμ¬ UIλ₯Ό ꡬμ±ν©λλ€. μν μ λ°λΌ νμΌμ΄ λͺ
ννκ² λΆλ¦¬λμ΄ μμΌλ©°, μμκ³Ό λ§€ν¬λ‘λ₯Ό ν΅ν΄ ν¨μ¨μ μΌλ‘ UIλ₯Ό κ΄λ¦¬ν©λλ€.
- κΈ°λ³Έ λ μ΄μμ (
base.html,base_auth.html): μ 체 νμ΄μ§μ 곡ν΅μ μΈ λΌλ(λ€λΉκ²μ΄μ λ° λ±)λ₯Ό μ 곡ν©λλ€. - κ°λ³ νμ΄μ§ (
main.html,diary.html,page.html,login.html,signup.html): κ° κΈ°λ₯μ λ§λ μ€μ νμ΄μ§ UIλ₯Ό λ΄λΉνλ©°, κΈ°λ³Έ λ μ΄μμμ μμλ°μ μ¬μ©ν©λλ€. - μ¬μ¬μ© μ»΄ν¬λνΈ (
_macros.html): λ‘κ·ΈμΈ νΌ, μΆμ² ν λ± λ°λ³΅μ μΌλ‘ μ¬μ©λλ UI μ‘°κ°μ λ§€ν¬λ‘ ννλ‘ μ μνμ¬ μ½λ μ€λ³΅μ μ€μ λλ€. - μ μ νμΌ (
static/):css/: κ° νμ΄μ§μ νΉνλ μ€νμΌμνΈμ μ μ μ€νμΌμ ν¬ν¨ν©λλ€.js/: νμ΄μ§λ³ ν΅μ¬ λ‘μ§(API ν΅μ , λ¬λ ₯ κΈ°λ₯), ν λ§ λ³κ²½, μ¨λ³΄λ© λ± λμ μΈ κΈ°λ₯μ λ΄λΉνλ JavaScript νμΌλ€μ ν¬ν¨ν©λλ€.
π§ββοΈ κ°λ° κ³Όμ λ° λ¬Έμ ν΄κ²°
νλ‘μ νΈλ₯Ό μ§ννλ©° κ²ͺμλ μ£Όμ κΈ°μ μ λμ κ³Ό ν΄κ²° κ³Όμ μ λν μμΈν λ΄μ©μ DEVELOPMENT.md νμΌμμ νμΈνμ€ μ μμ΅λλ€.
π λͺ¨λΈ μ±λ₯
| Metric | Score |
|---|---|
| Accuracy | 0.7905 |
| F1 Score | 0.7910 |
| Loss | 0.6943 |
π λΌμ΄μ μ€
This project is licensed under the MIT License.

