jamwithai/production-agentic-rag-course: OpenSearch와 LangGraph 기반 프로덕션 에이전틱 RAG 오픈소스 코스
FastAPI, OpenSearch 2.19 하이브리드 검색, Docling 논문 파싱, Airflow 파이프라인, LangGraph 에이전틱 라우팅과 Langfuse 모니터링까지 실무 RAG 아키텍처를 단계별로 구현하는 오픈소스 엔지니어링 시스템입니다.
단순한 프로토타입 수준의 RAG(Retrieval-Augmented Generation)를 넘어, 프로덕션 환경에 배포 가능한 수준의 검색 파이프라인과 자율 에이전트 제어 구조를 단계별로 구축할 수 있는 오픈소스 프로젝트 jamwithai/production-agentic-rag-course가 공개되었습니다. arXiv 학술 논문 큐레이션 시스템(arxiv-paper-curator)을 직접 구축하는 7주 실습 과정을 통해 데이터 수집부터 평가, 가드레일, 관측성(Observability)까지 실무 RAG의 전 주기를 다룹니다.

이미지 출처: jamwithai (GitHub)
최근 LLM 애플리케이션 개발에서는 단일 벡터 데이터베이스 조회만으로 해결하기 어려운 검색 품질 한계와 환각 문제를 극복하기 위해, 키워드·벡터 하이브리드 검색과 의사결정 에이전트를 결합한 '에이전틱 RAG(Agentic RAG)'가 표준 아키텍처로 자리잡고 있습니다. 이 저장소는 이러한 실무 요구사항을 완결된 코드베이스와 컨테이너 환경으로 제공합니다.
OpenSearch 2.19 하이브리드 검색과 데이터 인제스천 파이프라인
이 프로젝트는 전통적인 BM25 키워드 검색과 밀집 임베딩 벡터 검색의 장점을 결합한 OpenSearch 2.19 기반 하이브리드 검색 엔진을 핵심 검색 레이어로 사용합니다.
- 하이브리드 인덱싱: OpenSearch 2.19를 활용해 키워드 일치율(BM25)과 의미적 유사도(Dense Vector)를 가중 결합하여 전문 용어 및 일반 질의 모두에서 검색 재현율과 정확도를 확보합니다.
- 문서 파싱 및 수집: IBM의 오픈소스 파서인 Docling을 연동하여 복잡한 수식과 표가 포함된 학술 논문 PDF를 구조화된 텍스트로 변환합니다.
- 오케스트레이션 및 메타데이터: Apache Airflow를 통해 arXiv 데이터 수집 파이프라인을 자동화하고, 문서 메타데이터 및 청크 인덱스 관리를 위해 PostgreSQL 16을 함께 운용합니다.
로컬 환경에서는 http://localhost:9200 엔드포인트와 OpenSearch Dashboards(http://localhost:5601)를 통해 인덱스 상태와 쿼리 성능을 시각적으로 검증할 수 있습니다.
LangGraph 기반 에이전틱 RAG 워크플로우와 가드레일 제어
검색된 컨텍스트를 단순 주입하는 방식을 벗어나, LangGraph를 활용한 상태 기반 의사결정 루프를 구현하여 답변 생성의 신뢰성을 높였습니다.
- 문서 등급 평가(Document Grading): 검색된 문서가 사용자의 질문에 적합한지 LLM 평가 노드가 1차 판정하여 관련 없는 노이즈 청크를 필터링합니다.
- 적응형 쿼리 재작성(Query Rewriting): 검색 결과의 품질이 기준에 미치지 못할 경우 질의를 분석해 더 적절한 검색어로 재작성한 뒤 재검색을 트리거합니다.
- 가드레일 노드(Guardrail Node): 사용자 입력에 대한 질의 유효성 검증과 도메인 경계 탐지(Domain Boundary Detection)를 수행하여 허용 범위를 벗어난 질의를 사전에 차단합니다.
- 인터랙티브 서비스 연동: 상태 머신으로 구성된 워크플로우를 텔레그램 봇(Telegram Bot) 인터페이스와 연결해 실시간 질의응답을 테스트할 수 있도록 지원합니다.
현대적 Python 3.12·UV 스택과 실무 인프라 구성
저장소는 최신 Python 생태계 도구와 컨테이너화 표준을 준수하여 개발 환경 설정의 복잡도를 낮췄습니다.
- 백엔드 및 패키징: Python 3.12+ 환경에서 초고속 패키지 매니저인 UV를 채택했으며, 비동기 처리를 위한 FastAPI를 REST API 계층으로 배치했습니다.
- 로컬 LLM 및 캐싱: Ollama를 통한 로컬 LLM 추론 옵션을 지원하며, 반복 질의의 지연 시간을 단축하기 위해 Redis 캐싱 레이어를 적용했습니다.
- 관측성(Observability): Langfuse 트레이싱을 기본 통합하여 에이전트 단계별 지연 시간, 토큰 소모량, 검색 품질 지표를 실시간으로 모니터링합니다.
실행 환경 요구사항 및 주의사항
- 시스템 사양: OpenSearch, PostgreSQL, Airflow, Redis, FastAPI 등 복수 컨테이너를 구동하기 위해 Docker Desktop 환경과 최소 8GB RAM, 20GB 이상의 여유 디스크 공간이 권장됩니다.
- 외부 API 설정: 로컬 Ollama 모델 대신 고품질 임베딩이나 클라우드 트레이싱을 사용할 경우, Jina Embeddings API 키 및 Langfuse 계정 환경변수 구성이 필요할 수 있습니다.
출처
- GitHub Repository: jamwithai/production-agentic-rag-course
- Jam with AI 공식 코스: Agentic RAG System - Jam with AI