Skip to content

world-expansion/hi79-back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

64 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘« 칭ꡬ야(Chingoo-ya)

CBTΒ·ν–‰λ™ν™œμ„±ν™” 기반 감정 회볡 지원 RAG 챗봇(API + μ„œλΉ„μŠ€)

β€œλ‹Ήμ‹ μ˜ 감정을 μ΄ν•΄ν•˜κ³ , λ‹€μ‹œ μ‚΄μ•„κ°ˆ νž˜μ„ μ£ΌλŠ” AI μΉœκ΅¬β€

πŸ“Œ 2025 μƒˆμ‹Ή 해컀톀(SeSAC Hackathon) μΆœν’ˆμž‘

πŸ“Œ νŒ€λͺ…: 세계확μž₯

πŸ“Œ ꡬ성원: μ •μˆ˜λ―Έ Β· μ΄μž¬ν›ˆ Β· μ΄λ™ν˜Έ Β· μ‘°μ˜μ§„ Β· κΉ€μ§€μš΄


πŸ“– ν”„λ‘œμ νŠΈ κ°œμš”

  • *칭ꡬ야(Chingoo-ya)**λŠ”

μš°μšΈκ°Β·κ³ λ¦½κ°μ„ λŠλΌλŠ” 청년듀이 슀슀둜 감정을 μ΄ν•΄ν•˜κ³  회볡 행동을 μˆ˜ν–‰ν•˜λ„λ‘ λ•λŠ”

CBT 기반 감정 회볡 AI 챗봇이닀.

μ„œλΉ„μŠ€λŠ” λ‹€μŒ 두 κ°€μ§€ 핡심 κ°œμž…(Evidence-Based Intervention)을 μ€‘μ‹¬μœΌλ‘œ κ΅¬μ„±λœλ‹€:

πŸ”Ή 1. κ³Όκ±° 일기 기반 RAG

  • μ‚¬μš©μž κ³Όκ±° 감정·행동 기둝을 벑터DB(pgvector)μ—μ„œ 검색

  • β€œλΉ„μŠ·ν•œ 감정을 느꼈던 μˆœκ°„β€μ„ μ°Ύμ•„ 비ꡐ

  • 감정 νŒ¨ν„΄μ„ μž¬ν•΄μ„ν•  수 μžˆλ„λ‘ 도움

    [세계확μž₯] 칭ꡬ야

πŸ”Ή 2. CBTΒ·ν–‰λ™ν™œμ„±ν™” 맀뉴얼 기반 RAG

  • 치료 논문·심리학 맀뉴얼을 기반으둜

    사고 μž¬κ΅¬μ„± / 행동 ν™œμ„±ν™” / μžκΈ°μžλΉ„ ν›ˆλ ¨ 과제λ₯Ό μΆ”μ²œ

    [세계확μž₯] 칭ꡬ야

이 두 κ°€μ§€ RAGλ₯Ό 기반으둜

λ‹¨μˆœ 곡감 챗봇을 λ„˜μ–΄ μ‹€μ œ μ‹¬λ¦¬μΉ˜λ£Œ 원리λ₯Ό μ μš©ν•œ κ°œμž…ν˜• 챗봇을 μ œκ³΅ν•œλ‹€.


🎯 μ„œλΉ„μŠ€ λͺ©ν‘œ

βœ” μ²­λ…„ 우울·고립감 μ™„ν™”

βœ” μ „λ¬Έκ°€ 상담 μ ‘κ·Όμ„± λΆ€μ‘± 문제 ν•΄κ²°

βœ” 감정 뢄석 & 행동 μ œμ•ˆ 기반 μ‹€μ§ˆμ  회볡 촉진

βœ” 감정 νŒ¨ν„΄ 기둝 및 μ‹œκ°ν™”λ₯Ό ν†΅ν•œ 자기 이해

βœ” CBT 기반 과제 μΆ”μ²œ


🌟 μ£Όμš” κΈ°λŠ₯

1) CBT 기반 감정 λŒ€ν™” ꡬ쑰

  • 곡감 (Emotional Reflection)

  • 사고 탐색 (Cognitive Exploration)

  • 감정 λͺ…ν™•ν™” (Labeling)

  • 행동 μ œμ•ˆ (Behavioral Suggestion)

  • 인지 μ™œκ³‘ μžλ™ 탐지

    (흑백논리, κ³ΌμΌλ°˜ν™”, κ°œμΈν™”, νŒŒκ΅­ν™” λ“±)

    [세계확μž₯] 칭ꡬ야

2) κ·Όκ±° 기반 κ°œμž… (Evidence-based Intervention, EBI)

🟦 a. λ…Όλ¬Έ 기반 CBT / ν–‰λ™ν™œμ„±ν™” 과제 RAG

  • 챗봇 내에 CBT 메뉴얼 기반 λŒ€ν™” μœ λ„
  • λͺ¨λΈμ„ 톡해 λ‚˜μ˜¨ 감정 기반으둜 메뉴얼에 따라 과제 μΆ”μ²œ

🟨 b. 과거 일기 기반 RAG

  • μ‚¬μš©μž 개인 감정 κΈ°λ‘μ—μ„œ μœ μ‚¬ν•œ κ²½ν—˜ 검색
  • β€œκ·Έλ•Œ 무엇을 ν–ˆλŠ”μ§€β€ 비ꡐ β†’ 회볡 μ „λž΅ μ•ˆλ‚΄
  • 감정 νŒ¨ν„΄ 인식 & 자각 증진

3) 감정 λ³€ν™” 기둝/μ‹œκ°ν™”

  • 일/μ£Ό/μ›” λ‹¨μœ„ 감정 κ·Έλž˜ν”„
  • 감정 λΉ„μœ¨ 파이차트

🧠 μ‹œμŠ€ν…œ ꡬ쑰

μ‚¬μš©μž μž…λ ₯(λŒ€ν™” 전체)
      ↓
감정 뢄석 λͺ¨λΈ (BERT/RoBERTa)
      ↓
인지 μ™œκ³‘ 탐지
      ↓
[RAG] κ³Όκ±° 일기 검색 (pgvector)
[RAG] CBT λ…Όλ¬Έ 기반 검색
      ↓
GPT-4.1이 CBT λŒ€ν™” 생성
      ↓
[RAG] 행동 ν™œμ„±ν™” 과제 μΆ”μ²œ
      ↓
감정 일기 μžλ™ μ €μž₯ β†’ κ·Έλž˜ν”„ 생성


🧩 기술 μŠ€νƒ

Backend(API)

  • FastAPI
  • PostgreSQL + pgvector
  • LangChain RAG Pipeline
  • OpenAI GPT-4o-mini

NLP & ML

  • text-embedding-3-small
  • 감정 라벨링 BERT λͺ¨λΈ

πŸ“¦ λ°±μ—”λ“œ API μ„€λͺ… (RAG 챗봇 API)

πŸš€ μ„€μΉ˜ 방법

python -m venv venv
source venv/bin/activate  # mac/Linux
# venv\Scripts\activate   # Windows

pip install -r requirements.txt

βš™ ν™˜κ²½ μ„€μ •

cp .env.example .env
# OPENAI_API_KEY=your_api_key_here μž…λ ₯

πŸ“š PDF ν•™μŠ΅ 데이터 μ€€λΉ„

data/ 폴더에 PDF νŒŒμΌλ“€μ„ λ„£μœΌλ©΄,

μ΄ˆκΈ°ν™” μ‹œ μžλ™ ν•™μŠ΅(RAG 벑터 μŠ€ν† μ–΄ 생성)λœλ‹€.

mkdir -p data
cp ~/Downloads/*.pdf data/

β–Ά μ„œλ²„ μ‹€ν–‰

python run.py

λ˜λŠ”:

uvicorn app.main:app --reload

πŸ’¬ API μ‚¬μš©λ²•

1) 챗봇 μ΄ˆκΈ°ν™”

curl -X POST http://localhost:8000/api/chatbot/initialize

μ˜ˆμ‹œ 응닡:

{
  "success": true,
  "message": "챗봇 μ΄ˆκΈ°ν™” μ™„λ£Œ! 2개의 PDF νŒŒμΌμ„ λ‘œλ“œν–ˆμŠ΅λ‹ˆλ‹€.",
  "data": {
    "document_count": 245,
    "vector_db_path": "./chroma_db",
    "loaded_files": ["support_guide.pdf", "program_info.pdf"]
  }
}

2) 챗봇 μƒνƒœ 확인

curl http://localhost:8000/api/chatbot/status

3) μ§ˆλ¬Έν•˜κΈ°

curl -X POST http://localhost:8000/api/chatbot/chat \
  -H "Content-Type: application/json" \
  -d '{"question": "μš°μšΈκ°μ„ ν•΄μ†Œν•˜κΈ° μœ„ν•œ 지원 ν”„λ‘œκ·Έλž¨μ—λŠ” μ–΄λ–€ 것듀이 μžˆλ‚˜μš”?"}'

πŸ“˜ API μ—”λ“œν¬μΈνŠΈ μš”μ•½

κΈ°λŠ₯ λ©”μ„œλ“œ/URL μ„€λͺ…
Health GET /api/health μ„œλ²„ μƒνƒœ 확인
μ΄ˆκΈ°ν™” POST /api/chatbot/initialize PDF λΆˆλŸ¬μ™€ RAG DB 생성
μƒνƒœμ‘°νšŒ GET /api/chatbot/status 벑터DB/λͺ¨λΈ μ΄ˆκΈ°ν™” μ—¬λΆ€ 확인
질문 POST /api/chatbot/chat RAG 기반 상담 λ‹΅λ³€ 생성

πŸ“‘ API λ¬Έμ„œ


πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

h-sw-h-back/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ main.py
β”‚   β”œβ”€β”€ config.py
β”‚   β”œβ”€β”€ routers/
β”‚   β”‚   β”œβ”€β”€ health.py
β”‚   β”‚   └── chatbot.py
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── vector_store.py
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── pdf_loader.py
β”‚   └── schemas/
β”‚       └── chatbot.py
β”œβ”€β”€ data/
β”œβ”€β”€ chroma_db/
β”œβ”€β”€ .env
β”œβ”€β”€ .env.example
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ run.py
└── README.md


πŸ”„ μž‘λ™ 원리 (RAG Pipeline)

  1. PDF λ‘œλ“œ
  2. ν…μŠ€νŠΈ 청크 λΆ„ν•  (500자 / overlap 100자)
  3. OpenAI μž„λ² λ”© 생성
  4. postgreDB μ €μž₯
  5. 질문 β†’ 벑터 검색 (Top-k)
  6. GPT-4o-miniκ°€ CBT μŠ€νƒ€μΌ λ‹΅λ³€ 생성

✨ κΈ°λŒ€νš¨κ³Ό

1) μ ‘κ·Όμ„± 높은 μ •μ„œ 지원 도ꡬ

2) μ „λ¬Έκ°€ μƒλ‹΄μ˜ 보쑰자료둜 ν™œμš© κ°€λŠ₯

3) μ²­λ…„ 고립·우울 문제 μ™„ν™”

4) 감정 κ·Έλž˜ν”„ 기반 자기 이해 증진

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages