LangChain 기술을 활용하여, 노무 상담 QA봇 시스을 구축하는 프로젝트입니다.
RAG(Retrieval-Augmented Generation) 구조를 바탕으로 문서 검색 및 응답 시스템을 구현하고, 전체 모델 생애주기를 관리 가능한 파이프라인으로 구성했습니다.
- 프로젝트 기간: 2025. 04. 02 ~ 2025. 04. 08
- 주제: LangChain 기반 문서 검색 + Q&A 자동화 시스템
이름 | 역할 | GitHub | 담당 기능 |
---|---|---|---|
정준성 | 팀장 / PDFLoader 전처리 | GitHub 링크 | PDFLoader 성능비교, PDF 전처리 |
김지혜 | 사용성개선/git 관리 | GitHub 링크 | LangChain 통합, streamlit으로 환경개선 |
하선영 | 자료준비/Chunking | GitHub 링크 | 데이터 수집, Chunking 성능비교 |
최영진 | 대화기억/프롬프트 | GitHub 링크 | LLM 프롬프트, RAG 대화기억 |
LangChain 기반 문서 QA 시스템의 구축 및 운영을 위한 파이프라인입니다.
- PDFPlumberLoader를 통해 PDF 내용 Load
- clean_text를 통해 전처리
- RecursiveCharacterTextSplitter를 사용해 text_split
- upstage embedding model을 통해 embedding
- Faiss로 vector_store 구축
- Faiss 기반 vector Retriever 사용
- Retriever를 통해 context를 구성하고, Prompt와 함께 chat_history, question 등을 Chain 하여 Upstage solar-pro에게 전송
- solar-pro의 응답
- 노무 문서에 대한 빠르고 정확한 자동 응답 시스템 구축
- 데이터 수집
- 2024년 노무관리 가이드, 고용노동부-2025년, 근로기준법
- 문서 파싱 및 전처리
- LangChain의 DocumentLoader 사용
- Chunking, Text Cleaning
- 임베딩 및 벡터화
- U Embedding 모델 사용
- FAISS을 활용한 vector_store 구축
- Faiss 기반 벡터 Retriever 모듈 활용
- Chain 구성: Embedding → Retriever → LLM(응답)
- LLM: Upstage Solar
- LangSmith를 사용해 실험 추적
- Streamlit으로 웹 환경에서 실행
bash에서 streamlit run main.py를 입력해 실행
# 1. 프로젝트 클론
git clone https://github.com/UpstageAILab6/upstageailab-nlp-langchainpjt-langchain-2.git
cd upstageailab-nlp-langchainpjt-langchain-2
# 2. 가상환경 설정 및 패키지 설치
pip install -r requirements.txt
# 3. 환경 변수 설정
export API_KEY=your-api-key
# 4. 실행
streamlit run main.py
- 개발 환경: \Python 3.10+
- 테스트 환경: colab 서버
- 소스 관리: GitHub
- 실험 관리: LangSmith
- 커뮤니케이션: Slack
- 버전 관리: Git
- 문서 기반 질문 응답 자동화로 고객 응대 시간 절감
- 노무 문서 검색 정확도 및 사용성 향상
- 향후 다양한 도메인 문서(QA, 정책, 교육자료 등)에 확장 적용 예정
프로젝트 진행 중 담당 강사님과의 피드백 세션을 통해 얻은 주요 인사이트는 다음과 같습니다.
- 더 나은 vector_store
→ 초보가 하기에는 오프라인에도 저장할 수 있는 FAISS가 쉽고 좋음. - 전체적인 이해도 점검
→ 전체적인 이해도 점검 및 추가적인 공부자료 제시
- PDFLoader 표 추출
→ 전처리나 좋은 PDFLoader를 통해 좋게 표를 추출할 필요성 강조 - 추가 기능 도입
→ Ground Check나 BM25의 중요성 강조
- Retriever 추가
→ bm25와 Faiss를 결합한 hybrid Retriever가 필요 - Chunking
→ Recursive Chunking의 기본 성능이 워낙 뛰어나기 때문에 Sementic Chunking의 경우 비용에 비해 더 뛰어난 점을 느끼기 힘듬