LG U+ 요금제/구독 서비스 추천 AI 대화 시스템
OpenAI GPT-4o-mini + LangChain + FastAPI + Redis 기반으로 구축된 강화된 AI 인텐트 감지와 Nonsense 입력 처리를 탑재한 Template-based 대화 AI입니다.
4단계 멀티턴 플로우를 통해 사용자 성향을 파악하고, 개인 맞춤형 서비스를 자연스럽게 추천하며, 이상한 입력이나 오프토픽 질문에도 적절하게 대응합니다.
MoonuZ 프로젝트의 AI 대화 엔진으로 개발되었습니다.
# 1. 프로젝트 클론
git clone https://github.com/Ureca-Middle-Project-Team4/4EVER0-AI
cd chatbot-server
# 2. 가상환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. 패키지 설치
pip install -r requirements.txt
# 4. .env 설정
# 5. 서버 실행
uvicorn app.main:app --reloadTemplate-based Conversational AI로 RAG 대비 빠른 응답속도와 일관된 품질을 제공하면서도 자연스러운 대화를 구현합니다.
- Smart Intent Detection: GPT-4o-mini + 폴백 로직으로 99% 정확도
- Nonsense Input Handling: "ㅁㄴㅇㄹ", "asdf", "1234" 등 의미없는 입력 감지
- Multiturn Answer Recognition: 멀티턴 대화 중 답변을 정확히 인식
- Greeting Priority: 인사말을 최우선으로 처리하여 자연스러운 시작
- Context-Aware Processing: 대화 상황에 맞는 적응형 응답
- Unified Session Keys: 일관된 세션 키로 안정성 향상
- Flow State Preservation: 대화 중단 시에도 정확한 상태 복원
- Smart Flow Transition: 플로우 완료 후 새로운 대화 자동 전환
- Redis Session Migration: 기존 세션과 새 세션 간 자동 마이그레이션
- Error Recovery: 오류 발생 시 graceful 복구 메커니즘
- Differentiated Latency: 질문 0.05초, AI 응답 0.01초
- Natural User Experience: 실제 타이핑 패턴 모방
- Async Processing: FastAPI 기반 동시 다중 사용자 지원
- Memory Efficient: Redis TTL 30분으로 효율적 메모리 관리
- Dual Character System: 전문 상담원과 친근한 무너 중 선택
- 2025 Trendy Language: 최신 유행어 반영한 자연스러운 대화
- Tone Adaptation: 사용자 선호에 따른 실시간 톤 변경
- Emotional Intelligence: 상황에 맞는 감정적 응답
- Off-topic Classification: 재미있는/지루한/불분명한 오프토픽 세분화
- Technical Issue Detection: 기술적 문제 자동 감지 및 대응
- Input Validation: 사용자 입력의 유효성 실시간 검증
- Graceful Degradation: 시스템 오류 시에도 자연스러운 응답 유지
| 항목 | 내용 |
|---|---|
| Language | Python 3.9+ |
| Framework | FastAPI |
| AI Engine | OpenAI GPT-4o-mini |
| AI Pipeline | LangChain Template-based Chain |
| Session Management | Redis (TTL 1800초) |
| ORM / DB | SQLAlchemy (ORM), MySQL |
| 환경 관리 | .env, python-dotenv |
| 백엔드 연동 | Spring Boot (RestTemplate) |
| Intent Classification | GPT-4o-mini + Fallback Logic |
| Conversation Guard | Multi-layered Response System |
📄 API 문서:
4EVER0-AI/
├── chatbot-server/
│ ├── app/
│ │ ├── api/ # API 엔드포인트
│ │ │ ├── chat.py # 일반 채팅 및 추천
│ │ │ ├── chat_like.py # 좋아요 기반 추천
│ │ │ ├── ubti.py # UBTI 성향 분석
│ │ │ ├── usage.py # 사용량 기반 추천
│ │ │ └── user.py # 사용자 관리
│ │ ├── chains/ # LangChain 대화 체인
│ │ │ ├── chat_chain.py # 멀티턴 대화 체인
│ │ │ └── usage_chain.py # 사용량 분석 체인
│ │ ├── db/ # 데이터베이스 관련
│ │ │ ├── database.py # DB 연결 설정
│ │ │ ├── models.py # SQLAlchemy 모델
│ │ │ └── *_db.py # 각 테이블별 쿼리
│ │ ├── prompts/ # AI 프롬프트 템플릿
│ │ │ ├── get_prompt_template.py # 통합 프롬프트 관리
│ │ │ ├── plan_prompt.py # 요금제 추천 프롬프트
│ │ │ ├── subscription_prompt.py # 구독 추천 프롬프트
│ │ │ ├── like_prompt.py # 좋아요 기반 프롬프트
│ │ │ ├── ubti_prompt.py # UBTI 분석 프롬프트
│ │ │ └── usage_prompt.py # 사용량 분석 프롬프트
│ │ ├── schemas/ # Pydantic 스키마
│ │ │ ├── chat.py # 채팅 요청/응답 모델
│ │ │ ├── ubti.py # UBTI 관련 모델
│ │ │ ├── usage.py # 사용량 관련 모델
│ │ │ └── user.py # 사용자 모델
│ │ ├── services/ # 비즈니스 로직
│ │ │ ├── handle_chat.py # 채팅 처리 서비스
│ │ │ ├── handle_chat_likes.py # 좋아요 기반 처리
│ │ │ ├── handle_ubti.py # UBTI 처리 서비스
│ │ │ └── handle_usage.py # 사용량 처리 서비스
│ │ ├── utils/ # 유틸리티
│ │ │ ├── intent.py # 인텐트 감지 통합
│ │ │ ├── intent_classifier.py # AI 인텐트 분류기
│ │ │ ├── conversation_guard.py # 대화 가드레일
│ │ │ ├── redis_client.py # Redis 세션 관리
│ │ │ ├── langchain_client.py # LangChain 설정
│ │ │ └── price_parser.py # 가격 파싱 유틸
│ │ ├── config.py # 환경 설정
│ │ └── main.py # FastAPI 애플리케이션
│ ├── requirements.txt # 패키지 의존성
│ └── run.py # 서버 실행 스크립트