건κ°/ν μΌ κ΄λ¦¬ μμ΄μ νΈ μμ€ν with κ²μν (λ 벨μ μμ€ν )
λνν μ λ ₯μ ν΅ν΄ κ±΄κ° μ§νμ ν μΌμ μΆμ νκ³ , λ 벨μ μμ€ν μΌλ‘ λκΈ°λΆμ¬λ₯Ό μ 곡νλ AI μμ΄μ νΈ μμ€ν
- β DB κ΅¬μΆ (9κ° ν μ΄λΈ)
- β DataManagerAgent ꡬν
- β GamificationAgent ꡬν
- β κ°λ¨ν CLI μΈν°νμ΄μ€
- β νκ΅μ΄ νμ (λ μ§, μλ, ν¨ν΄)
- β ConversationAgent (μλ νμ )
- β CoachingAgent (μλ¦Ό κ·μΉ)
- β OrchestratorAgent (μμ΄μ νΈ μ‘°μ¨)
- β μμ°μ΄ CLI
- β Streamlit λμ보λ
- β μ±ν μΈν°νμ΄μ€
- β κ±΄κ° μ§ν μ°¨νΈ (Plotly)
- β λ 벨/κ²½νμΉ νλ‘κ·Έλ μ€ λ°
- β μ μ κ°€λ¬λ¦¬ (20κ°)
- β μ£Όκ° ν΅κ³ λ° λΆμ
# νκ²½ λ³μ μ€μ (.env νμΌ)
cp .env.example .env
# OpenAI API ν€ μ
λ ₯ νμ
# λ°μ΄ν°λ² μ΄μ€ μ΄κΈ°ν
python3 core/database.py
# λ©μΈ μ€νκΈ°
./run.sh
# λλ μ§μ μ΅μ
μ§μ
./run.sh web # μΉ λμ보λ
./run.sh chat # μμ°μ΄ λν
./run.sh cli # λͺ
λ Ήμ΄ λͺ¨λ
./run.sh test # ν
μ€νΈ μ€ν
# λ©μΈ λ©λ΄
python3 lifebot.py
# μΉ λμ보λ
streamlit run interfaces/app.py
μΉ λΈλΌμ°μ μμ http://localhost:8501
μ μ
κΈ°λ₯:
- π¬ μ±ν : μμ°μ΄λ‘ λννλ©° κΈ°λ‘
- π λμ보λ: μ€λ μμ½, μ£Όκ° νΈλ λ μ°¨νΈ
- π λΆμ: μ£Όκ° ν΅κ³, κ²½νμΉ λ΄μ
- π μ μ : μ μ κ°€λ¬λ¦¬ λ° μ§νλ
python3 interfaces/main_natural.py
# λλ
./run.sh chat
μ¬μ© μμ:
π¬ > μ΄μ 5μκ° μ€μ΄
β μλ©΄ κΈ°λ‘ μλ£: 5.0μκ°
β οΈ λͺ©ν(7μκ°)λ³΄λ€ 2.0μκ° λΆμ‘±ν©λλ€. μΆ©λΆν μλ©΄μ΄ μ€μν΄μ!
π¬ > 30λΆ μ΄λνμ΄
β μ΄λ κΈ°λ‘ μλ£: 30λΆ
β λͺ©ν λ¬μ±! 30λΆ μ΄λ νλ₯ν©λλ€!
+10 XP
π¬ > μΉ΄λλΉ κ³μ°ν΄μΌ ν΄
β ν μΌ μΆκ°: [1] μΉ΄λλΉ κ³μ°
π¬ > ν μΌ 1 μλ£
β ν μΌ μλ£: μΉ΄λλΉ κ³μ°
+20 XP
π¬ > μ€λ μμ½
π 2025-10-05 μμ½
π€ μλ©΄: 5.0μκ°
πͺ μ΄λ: 30λΆ
π λ¨λ°±μ§: κΈ°λ‘ μμ
π ν μΌ: μλ£ 1/1
π¬ > μ§νλ
π Level 1 (30/100 XP) | π μ
μ 0/6
μ§νλ: [====== ] 30.0%
python3 interfaces/main.py
# λλ
./run.sh cli
μ¬μ© μμ:
λͺ
λ Ή> add_sleep 7
β μλ©΄ κΈ°λ‘ μλ£: 7.0μκ°
+15 XP
λͺ
λ Ή> add_workout 30
β μ΄λ κΈ°λ‘ μλ£: 30λΆ
+10 XP
λͺ
λ Ή> summary
π 2025-10-05 μμ½
...
- μλ©΄ μκ°
- μ΄λ μκ°
- λ¨λ°±μ§ μμ·¨λ
- 체μ€
- 컀μ€ν λ©νΈλ¦ (BMI, νμ λ±)
- ν μΌ μΆκ°/μλ£
- μ°μ μμ μ€μ
- λ§κ°μΌ κ΄λ¦¬
- μ΅κ΄ μμ±
- Streak μΉ΄μ΄νΈ
- μ±κ³΅/μ€ν¨ κΈ°λ‘
- νλμ λ°λ₯Έ κ²½νμΉ νλ
- ν μΌ μλ£: +20 XP
- μλ©΄ λͺ©ν λ¬μ±: +15 XP
- μ΄λ: +10 XP
- 곡λΆ/컀리μ΄: +30 XP
- λ 벨μ μμ€ν (Level 1 β 2: 100 XP)
- μ μ μμ€ν (6κ° κΈ°λ³Έ μ μ )
- OrchestratorAgent - μ‘°μ¨μ (Phase 2)
- ConversationAgent - μμ°μ΄ νμ± (Phase 2)
- DataManagerAgent - λ°μ΄ν° κ΄λ¦¬ β
- CoachingAgent - μλ¦Ό λ° μΈμ¬μ΄νΈ (Phase 2)
- GamificationAgent - λ 벨μ μμ€ν β
daily_health
: μΌμΌ κ±΄κ° μ§νcustom_metrics
: 컀μ€ν λ©νΈλ¦habits
/habit_logs
: μ΅κ΄ μΆμ tasks
: ν μΌuser_progress
: λ 벨/κ²½νμΉexp_logs
: κ²½νμΉ λ‘κ·Έachievements
/achievement_logs
: μ μ
μΉ λμ보λμ μ£Όμ κΈ°λ₯:
- π¬ μ±ν : μμ°μ΄ μ λ ₯ λ° μ€μκ° λν
- π λμ보λ: κ±΄κ° λ©νΈλ¦ μΉ΄λ + μ£Όκ° νΈλ λ μ°¨νΈ
- π λΆμ: μ£Όκ° ν΅κ³ + κ²½νμΉ λΆμ
- π μ μ : μ μ κ°€λ¬λ¦¬ + λ¬μ±λ₯
μμΈν μ¬μ©λ²μ WEB_UI_GUIDE.md μ°Έμ‘°
- β
LangChain + GPT ν΅ν©
core/langchain_llm.py
: LangChain κΈ°λ° GPT-4o-mini μ°λ- 볡μ‘ν νκ΅μ΄ μ λ ₯ μ²λ¦¬ (λ³΅ν© λͺ λ Ή μ§μ)
- μμ°μ€λ¬μ΄ λνν μλ΅ μμ±
- β
μ§λ₯ν νμ±
- μ κ·μ μ€ν¨ μ LLM λ°±μ
- 볡μ‘ν μλ©΄ ν¨ν΄ μλ κ³μ°
- μλ νμ μ νλ 95%+
- β κ³ κΈ μ μ μμ€ν (6κ° β 20κ° νμ₯)
- β
νκ²½ μ€μ κ΄λ¦¬
- python-dotenvλ‘ νκ²½λ³μ κ΄λ¦¬
- config.yaml + .env ν΅ν©
LLM μ€μ :
# 1. νκ²½ λ³μ μ€μ
cp .env.example .env
# OPENAI_API_KEY μ
λ ₯ (νμ)
# 2. config.yaml νμΈ (κΈ°λ³Έκ°)
llm:
provider: "langchain" # LangChain + OpenAI
enabled: true
νμ μꡬμ¬ν:
- Python 3.9+
- SQLite3
μ£Όμ μμ‘΄μ±:
- μΉ UI: Streamlit, Plotly, Pandas
- LLM: LangChain, langchain-openai, OpenAI
- μ€μ : PyYAML, python-dotenv
- ν μ€νΈ: pytest, pytest-cov
μ€μΉ:
# λͺ¨λ μμ‘΄μ± μ€μΉ
pip install -r requirements.txt
# λλ κ°λ³ μ€μΉ
pip install streamlit plotly pandas
pip install langchain langchain-openai openai
pip install pyyaml python-dotenv
LifeBot/
βββ agents/ # μμ΄μ νΈ (5κ°)
β βββ conversation.py # μμ°μ΄ νμ± + LLM λ°±μ
β βββ coaching.py # μλ¦Ό + LLM μ‘°μΈ
β βββ data_manager.py # λ°μ΄ν° CRUD
β βββ gamification.py # XP/λ 벨/μ
μ
β βββ orchestrator.py # μ‘°μ¨μ
βββ core/
β βββ database.py # DB μ€ν€λ§ (9 ν
μ΄λΈ)
β βββ llm_client.py # LLM μΆμν
β βββ langchain_llm.py # LangChain ν΅ν©
β βββ config.py # μ€μ κ΄λ¦¬
βββ interfaces/ # UI μΈν°νμ΄μ€
β βββ app.py # μΉ λμ보λ (Streamlit)
β βββ main_natural.py # μμ°μ΄ CLI
β βββ main.py # λͺ
λ Ήμ΄ CLI
βββ parsers/ # νκ΅μ΄ νμ
β βββ korean_patterns.py
β βββ date_parser.py
β βββ number_parser.py
βββ tests/ # ν
μ€νΈ μ½λ
βββ scripts/ # μ νΈλ¦¬ν° μ€ν¬λ¦½νΈ
βββ docs/ # λ¬Έμ
β βββ CLAUDE.md # Claude Code μ§μΉ¨
β βββ PROMPTS.md # ν둬ννΈ ν
νλ¦Ώ
β βββ WEB_UI_GUIDE.md # μΉ UI κ°μ΄λ
βββ lifebot.py # λ©μΈ μ§μ
μ
βββ run.sh # μ€ν μ€ν¬λ¦½νΈ
βββ config.yaml # μ€μ
βββ .env.example # νκ²½λ³μ ν
νλ¦Ώ
βββ requirements.txt # μμ‘΄μ±
MIT