느리지만 꾸준히, 코딩

LangChain 기반 부트캠프 RAG봇 프로젝트 수행 후기 본문

프로그래밍/AI

LangChain 기반 부트캠프 RAG봇 프로젝트 수행 후기

slowin 2025. 4. 10. 19:00

본 포스팅은 부트캠프 과정에서 수행한 LangChain 기반의 문서 검색 및 Q&A 자동화 시스템(RAG, Retrieval-Augmented Generation) 구축 프로젝트에 대한 기록입니다.

 

프로젝트 배경 및 목적

부트캠프 과정에서 제공되는 다양한 정보가 여러 채널에 분산되어 있어 사용자들이 필요한 정보를 신속하게 얻기 어려운 문제가 있었습니다. 복잡한 행정 절차와 교육 정보를 사용자가 쉽게 이해할 수 있도록 지원하기 위해, 사용자 질문에 즉각적이고 정확한 답변을 제공할 수 있는 RAG 기반의 챗봇을 구현하게 되었습니다.

  • 프로젝트 기간: 2025.04.02 ~ 2025.04.08

비즈니스 문제 정의 및 KPI

  • 문제 상황: 정보가 여러 곳에 흩어져 있어 검색의 불편함이 발생
  • 목표: 내부 문서 정보를 빠르고 정확하게 전달하는 챗봇 개발
  • KPI 설정: 사용자 질문에 대한 응답 정확도와 활용성

주요 작업 내용

1. 데이터 수집 및 전처리

  • 학원 내부의 다양한 자료(시간표, 강의 리스트, 법령, Notion 페이지 등)를 Selenium을 활용한 웹 크롤링을 통해 수집하였습니다.
  • 문서의 일관된 형식을 위해 팀원별로 DocsLoader를 도메인 특화 방식으로 개발하고, Parsing 및 Chunking 처리를 진행했습니다.

 

 

2. 임베딩 및 벡터화

  • 도메인별 특성에 따라 최적화된 Embedding 전략을 수립하여 일관된 임베딩 로직을 적용했습니다.
  • 향후 확장성을 고려하여 Vector Store 구조를 설계하고, Embedding Vector를 저장하여 LLM의 Context로 활용할 수 있도록 하였습니다.

 

3. Router 설계 및 구현

  • 사용자의 질문을 분석하여 강의, 문서, 일정 등 적절한 도메인으로 자동 분류할 수 있도록 Routing 로직을 구축했습니다.
  • "내일 시간표 어떻게 되나요?"와 같은 질문에서 발생할 수 있는 날짜 정보 이슈를 해결하기 위해 조회 대상 날짜를 명확히 하는 추가 프롬프팅을 도입했습니다.

  • Hallucination 현상을 방지하기 위해 반드시 컨텍스트에 현재 시간을 포함시키는 로직을 구현하였습니다.

 

 

4. 사용자 인터페이스

    • Streamlit을 사용하여 사용자가 쉽고 편리하게 질문을 입력하고 답변을 받을 수 있도록 사용자 친화적인 인터페이스를 구축했습니다.

한계점 및 개선 방안

  • 멀티턴 대화 흐름 구현이 충분하지 않았으며, LangChain의 체이닝 기능 활용이 미흡했습니다.
  • 테스트 및 평가가 다소 부족하여 응답 품질 개선의 여지가 있었습니다.
  • 향후 데이터의 질적, 양적 확장이 반드시 필요하며, 특히 정확한 데이터 확보의 중요성을 깨닫게 되었습니다.

결론 및 향후 계획

본 프로젝트를 통해 LangChain과 RAG 기술의 가능성을 체감하였으며, 사용자 중심의 정보 제공 시스템 구축에 대한 경험을 쌓을 수 있었습니다. 앞으로의 프로젝트에서는 더욱 정교한 멀티턴 대화 기능과 체계적인 평가 프로세스를 도입하여 사용자 경험을 지속적으로 개선해 나갈 예정입니다.

 

'프로그래밍 > AI' 카테고리의 다른 글

과학 지식 질의 IR 경진대회  (0) 2025.04.25
업스테이지 NLP 경진대회  (0) 2025.03.26
업스테이지 CV 경진대회 정리  (0) 2025.03.02
tensor: dim 이해하기  (0) 2025.02.11
역전파  (0) 2025.02.10