법률 문서를 기반으로 한 RAG(Retrieval-Augmented Generation) 기반 AI 챗봇 서비스입니다. LangGraph를 활용한 고급 RAG 파이프라인과 React 기반의 현대적인 웹 인터페이스를 제공합니다.
- GitHub Repository: https://github.com/wing0907/Law-AI-Final
LawAI는 법률 관련 질문에 대해 정확하고 신뢰할 수 있는 답변을 제공하는 AI 챗봇입니다. ChromaDB 벡터 데이터베이스에 저장된 법률 문서를 검색하고, Google Gemini 모델을 활용하여 사용자 질문에 대한 답변을 생성합니다.
- 🔐 사용자 인증 - JWT 기반 회원가입 및 로그인
- 🔍 벡터 검색 - ChromaDB를 활용한 법률 문서 검색
- 🤖 고급 RAG 파이프라인 - LangGraph 기반 지능형 답변 생성
- 💬 실시간 상담 - 법률 질문에 대한 즉각적인 답변 제공
- 📱 반응형 UI - 모던하고 직관적인 웹 인터페이스
Law-AI-Final/
│
├── Back/ # FastAPI 백엔드
│ ├── app/ # 애플리케이션 코드
│ ├── requirements.txt # Python 의존성
│ └── README.md # 백엔드 가이드
│
├── Front/ # React 프론트엔드
│ ├── src/ # 소스 코드
│ ├── package.json # Node.js 의존성
│ └── README.md # 프론트엔드 가이드
│
└── README.md # 프로젝트 메인 문서
📖 각 폴더의 상세한 구조와 설명은 해당 폴더의 README.md를 참조하세요.
- Python 3.10 이상
- Node.js 18 이상
- PostgreSQL 데이터베이스
- Google Gemini API 키
- ChromaDB 벡터 데이터베이스 (프로젝트 루트의
Law_AI_DB/data디렉토리)
# 1. 백엔드 디렉토리로 이동
cd Back
# 2. 가상 환경 생성 및 활성화
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
# 3. 의존성 설치
pip install -r requirements.txt
# 4. 환경 변수 설정 (.env 파일 생성)
echo GOOGLE_API_KEY=your_google_api_key_here > .env
# 5. 데이터베이스 설정 (app/database.py 수정)
# 6. 서버 실행
uvicorn app.main:app --reload --port 8000📚 자세한 내용은 Back/README.md를 참조하세요.
# 1. 프론트엔드 디렉토리로 이동
cd Front
# 2. 의존성 설치
npm install
# 3. 개발 서버 실행
npm run dev📚 자세한 내용은 Front/README.md를 참조하세요.
| 기술 | 용도 |
|---|---|
| FastAPI | 고성능 Python 웹 프레임워크 |
| LangChain | LLM 애플리케이션 개발 프레임워크 |
| LangGraph | 상태 기반 워크플로우 관리 |
| ChromaDB | 벡터 데이터베이스 |
| HuggingFace Embeddings | 텍스트 임베딩 (BAAI/bge-m3) |
| Google Gemini | LLM 모델 (gemini-2.5-pro) |
| PostgreSQL | 관계형 데이터베이스 |
| SQLAlchemy | ORM |
| bcrypt | 비밀번호 해싱 |
| python-jose | JWT 토큰 처리 |
| 기술 | 용도 |
|---|---|
| React 19 | UI 라이브러리 |
| TypeScript | 타입 안정성 |
| Vite | 빌드 도구 및 개발 서버 |
| React Router | 클라이언트 사이드 라우팅 |
| Axios | HTTP 클라이언트 |
| FontAwesome | 아이콘 라이브러리 |
- Query Rewriting - 사용자 질문을 검색에 최적화된 형태로 재구성
- Retrieval - ChromaDB에서 관련 법률 문서 검색
- Grading - 검색된 문서의 관련성 평가
- Generation - 관련 문서를 바탕으로 최종 답변 생성
- JWT 기반 토큰 인증
- bcrypt를 사용한 안전한 비밀번호 해싱
- 회원가입 및 로그인 기능
POST /api/auth/register- 회원가입POST /api/auth/login- 로그인
POST /api/answer- 법률 질문에 대한 답변 생성
GOOGLE_API_KEY=your_google_api_key_here- ChromaDB: 프로젝트 루트의
Law_AI_DB/data디렉토리 - PostgreSQL:
Back/app/database.py에서 설정
이 프로젝트는 개인 포트폴리오 프로젝트입니다.
프로젝트 개발자