chatbot-ai - 백엔드 프로젝트



AI 기반 챗봇 API 프로젝트입니다.
FastAPI 기반의 Office/Character API 서버와 Llama 기반 AI 모델을 Docker로 통합 운영합니다.

github-link

프로젝트 구성원

구성원 업무 사용 기술
서정훈 (CutTheWire) 프로젝트 매니저, 백엔드 FastAPI, Llama CPP CUDA

👨‍💻 담당 업무

📁 프로젝트 디렉토리 구조

파일을 클릭하면 해당 GitHub에 main 브런치 기준 파일로 이동합니다.

📦 루트 디렉토리 구조


 ┣ 📜[.env](None)
 ┣ 📜.gitignore
 ┣ 📜CODE_OF_CONDUCT.md
 ┣ 📜docker-compose.yml
 ┣ 📜LICENSE
 ┣ 📜README.md
 ┗ 📜rebuild.bat

📦 fastapi 디렉토리 구조


 ┣ 📂ai_model
 ┃ ┣ 📂QuantFactory
 ┃ ┃ ┣ 📜[Meta-Llama-3.1-8B-Claude.Q4_0.gguf](https://huggingface.co/QuantFactory/Meta-Llama-3.1-8B-Claude-GGUF/blob/main/Meta-Llama-3.1-8B-Claude.Q4_0.gguf)
 ┃ ┃ ┗ 📜[Meta-Llama-3.1-8B-Claude.Q4_1.gguf](https://huggingface.co/QuantFactory/Meta-Llama-3.1-8B-Claude-GGUF/blob/main/Meta-Llama-3.1-8B-Claude.Q4_1.gguf)
 ┃ ┗ 📜README.md
 ┣ 📂batch
 ┃ ┣ 📜venv_install.bat
 ┃ ┗ 📜venv_setup.bat
 ┣ 📂certificates
 ┃ ┣ 📜DNS_README.md
 ┃ ┗ 📜PEM_README.md
 ┣ 📂logs
 ┣ 📂prompt
 ┃ ┣ 📜config-Llama.json
 ┃ ┣ 📜config-OpenAI.json
 ┃ ┗ 📜config-Venice.json
 ┣ 📂src
 ┃ ┣ 📂api
 ┃ ┃ ┣ 📂character
 ┃ ┃ ┃ ┗ 📜llm_controller.py
 ┃ ┃ ┣ 📂office
 ┃ ┃ ┃ ┗ 📜llm_controller.py
 ┃ ┃ ┗ 📜__init__.py
 ┃ ┣ 📂core
 ┃ ┃ ┣ 📂character
 ┃ ┃ ┃ ┗ 📜app_state.py
 ┃ ┃ ┣ 📂office
 ┃ ┃ ┃ ┗ 📜app_state.py
 ┃ ┃ ┗ 📜__init__.py
 ┃ ┣ 📂docs
 ┃ ┃ ┗ 📜api_specification.md
 ┃ ┣ 📂domain
 ┃ ┃ ┣ 📂character
 ┃ ┃ ┃ ┣ 📜config.py
 ┃ ┃ ┃ ┗ 📜schema.py
 ┃ ┃ ┣ 📂office
 ┃ ┃ ┃ ┣ 📜config.py
 ┃ ┃ ┃ ┗ 📜schema.py
 ┃ ┃ ┣ 📂shared
 ┃ ┃ ┃ ┣ 📜base_config.py
 ┃ ┃ ┃ ┣ 📜error_tools.py
 ┃ ┃ ┃ ┣ 📜mongodb_client.py
 ┃ ┃ ┃ ┣ 📜queue_tools.py
 ┃ ┃ ┃ ┗ 📜search_adapter.py
 ┃ ┃ ┗ 📜__init__.py
 ┃ ┣ 📂llm
 ┃ ┃ ┣ 📂llama
 ┃ ┃ ┃ ┣ 📜character.py
 ┃ ┃ ┃ ┗ 📜office.py
 ┃ ┃ ┣ 📂openai
 ┃ ┃ ┃ ┣ 📜character.py
 ┃ ┃ ┃ ┗ 📜office.py
 ┃ ┃ ┣ 📂venice
 ┃ ┃ ┃ ┗ 📜character.py
 ┃ ┃ ┗ 📜__init__.py
 ┃ ┣ 📂server
 ┃ ┃ ┣ 📂character
 ┃ ┃ ┃ ┣ 📜Dockerfile
 ┃ ┃ ┃ ┗ 📜server.py
 ┃ ┃ ┗ 📂office
 ┃ ┃ ┃ ┣ 📜Dockerfile
 ┃ ┃ ┃ ┗ 📜server.py
 ┃ ┣ 📂test
 ┃ ┃ ┣ 📂performance_results
 ┃ ┃ ┃ ┗ 📜visualization.html
 ┃ ┃ ┣ 📜test.bat
 ┃ ┃ ┣ 📜test_character_load.py
 ┃ ┃ ┗ 📜test_office_load.py
 ┃ ┣ 📜[.env](None)
 ┃ ┣ 📜bot.yaml
 ┃ ┣ 📜Dockerfile.base
 ┃ ┣ 📜Dockerfile.libs
 ┃ ┗ 📜install_libs.sh
 ┣ 📜.dockerignore
 ┣ 📜requirements.txt
 ┗ 📜requirements_llama.txt

📦 nginx 디렉토리 설명


 ┣ 📜404.html
 ┗ 📜nginx.conf

🏗️ 전체 아키텍처

📋 시스템 아키텍처 다이어그램

System-Architecture-Diagram-ChatBot

📋 패키지 다이어그램

Package-Diagram-ChatBot(AI)

🌐 API Gateway (nginx) 구조

📊 요청 성능

📅 개발 로드맵 및 버전 릴리즈 일정

간트 차트 (ChatBot AI 버전 릴리즈)

Gantt-Chart-ChatBot(AI)

주요 마일스톤

버전 기간 주요 성과 아키텍처 변화
v1.0.x 2024.09-2024.10 단일 Llama 모델, 스트리밍 지원 Transformers 기반 스트리밍
v1.1.x 2024.10-2025.01 듀얼 GPU 구성, Bllossom 모델 추가 Llama + Bllossom 멀티모델
v1.2.x 2025.01-2025.02 Lumimaid GGUF 전환 성능 최적화 (GGUF)
v1.3.x 2025.02 DuckDuckGo 검색 API 연동 외부 검색 통합
v1.4.x 2025.02-2025.03 SSL/TLS 보안, 인증서 관리 HTTPS 프로덕션 환경
v1.5.x 2025.03-2025.04 라우터 분리, OpenAI 모델 추가 하이브리드 API 아키텍처
v1.6.x 2025.04-2025.05 MVC 구조, GitHub Actions 체계적인 개발 파이프라인
v1.7.x 2025.05-2025.06 Docker 컨테이너화, nginx 게이트웨이 마이크로서비스 완성

개발 통계

📄 v1.0.x

📄 v1.1.x

📄 v1.2.x

📄 v1.3.x

📄 v1.4.x

📄 v1.5.x

📄 v1.6.x

📄 v1.7.x