FastAPI + Streamlit 기반의 AI 챗봇 시스템입니다. LangGraph를 활용한 React Agent로 웹 검색 기능을 제공합니다.
vctest6/
├── backend/ # FastAPI 백엔드
│ ├── app/
│ │ ├── api/ # API Layer
│ │ ├── services/ # Service Layer
│ │ └── agents/ # Agent Layer (AI)
│ └── tests/ # 테스트
├── frontend/ # Streamlit 프론트엔드
├── docs/ # 문서
├── .github/ # GitHub 설정
│ ├── workflows/ # GitHub Actions
│ └── ISSUE_TEMPLATE/ # 이슈 템플릿
└── .cursor/rules/ # 개발 정책
- Language: Python 3.11
- Framework: FastAPI
- Agent: LangGraph (React Agent)
- LLM: Gemini-2.5-flash-preview
- Tools: DuckDuckGo Search
- Framework: Streamlit
- Language: Python 3.11
- CI/CD: GitHub Actions
- Code Quality: Black, isort, flake8
- Security: Bandit, Safety
- Testing: pytest, pytest-cov
- Python 3.11+
- Git
- 저장소 클론
git clone https://github.com/KR9268/vibe_coding_w2-2.git
cd vibe_coding_w2-2- 가상환경 생성 및 활성화
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate- 의존성 설치
# Backend 의존성
pip install -r backend/requirements.txt
# Frontend 의존성 (해당시)
pip install -r frontend/requirements.txt- 환경 변수 설정
cp .env.example .env
# .env 파일을 편집하여 필요한 환경 변수 설정- Backend 서버 실행
cd backend
uvicorn app.main:app --reload- Frontend 실행
cd frontend
streamlit run main.py# 전체 테스트 실행
cd backend
python -m pytest
# 커버리지 포함 테스트
python -m pytest --cov=app --cov-report=htmlmain: 프로덕션 브랜치feature/기능명: 새로운 기능 개발bugfix/버그명: 버그 수정hotfix/핫픽스명: 긴급 수정
- 기능 브랜치 생성
- 개발 및 테스트
- PR 생성 (템플릿 활용)
- 자동 CI 실행
- 코드 리뷰
- Merge
- CI: 테스트 자동 실행
- PR 자동화: 댓글, 할당, 라벨링
- 코드 리뷰: 자동 코드 분석
- 이슈 관리: 자동 라벨링 및 할당
- Linting: flake8, black, isort
- Security: bandit, safety
- Testing: pytest, coverage
- Complexity: radon
- API 키 및 민감한 정보는 환경 변수로 관리
- 의존성 보안 취약점 자동 검사
- 코드 보안 취약점 자동 분석
- 이슈를 생성하거나 기존 이슈를 선택
- 브랜치를 생성하여 작업
- 테스트 작성 및 실행
- PR 생성 (템플릿 활용)
- 코드 리뷰 및 피드백 반영
- Merge
- PEP 8 준수
- Black으로 코드 포매팅
- isort로 import 정렬
- Type hints 사용 권장
- 이슈 등록: GitHub Issues
- 버그 리포트: 버그 리포트 템플릿
- 기능 요청: 기능 요청 템플릿
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
자동화된 개발 환경: 이 프로젝트는 GitHub Actions를 통한 자동화된 테스트, 코드 리뷰, 이슈 관리를 지원합니다.