프로젝트4(2026-08-27)
환경부 가이드·지자체 조례·아파트 관리규약을 근거로 분리배출을 안내하는 RAG 챗봇입니다. 3차(FastAPI + React SPA)를 Django 단일 서버로 이식하고 아파트 단지를 추가하여 고도화했으며, 도메인을 사서 개인 서버에서 HTTPS 로 배포해 운영 중입니다.
github.com/SKNETWORKS-FAMILY-AICAMP/SKN32-4th-3Team ·
ecobotapt.com (운영 중 (서버가 꺼져있으면 링크가 안들어가 질수 있습니다.) )
개요
기간 : 2026년 8월 18일 ~ 8월 27일 (10일)
인원 : 4명 — Backend·AI / Data·Search / Frontend·Dashboard / Infra·Data
역할 : 팀장(3차부터 같은 팀), Infra · Data — Django 이식, 배포·운영, 법령·지역 데이터 수집
기여 : 조직 저장소 main 기준 커밋 28/81 — 팀원 브랜치 병합 7건, 3차→4차 이식 전체와 배포·운영 전반.
스택 : Django 5 · gunicorn · Caddy 2 · MySQL 8 · FAISS · OpenAI
gpt-4o-mini·text-embedding-3-small규모 : 근거 문서 33건 / 청크 1,006개 · 지원 지역 11종 · 요구사항 85건 · 화면 22종
아키텍처
flowchart TD
B["브라우저"] -->|"HTTPS 443"| C["Caddy · TLS 자동 발급·갱신"]
C -->|"127.0.0.1:8000"| G["gunicorn · 3 workers x 4 threads"]
G --> D["Django 앱 8종 + WhiteNoise"]
D --> R["rag/service.py · RAG 파이프라인"]
D --> M[("MySQL 8")]
R --> F[("FAISS 인덱스")]
R --> O["OpenAI · 임베딩 · 답변 생성"]
D -.->|"재색인 예약만"| X["ecobot-reindex · systemd path + timer"]
X --> F의존성에서 torch계열 제외함. sentence-transformers 가 끌어오는 torch 만 2~3GB. 지연 임포트로 분리해 가상환경을 238MB 로 축소.
2026년 8월 26일 15시 47분 첫 기동 이후 계속 돌고 있음. 열린 포트는 443 하나, 인증서는 자동 갱신.
데이터는 3차 프로젝트에서 구축한 법령/가이드 데이터에 지자체 가이드 10곳을 추가.
팀 지표 (검색 담당 팀원 측정, 100문항 평가셋) : R@5 0.607 → 0.730, 환각률 9.0% → 6.0%, 질문 1,000건당 $0.54