jamwithai/production-agentic-rag-course
요약
실습 중심의 프로젝트를 통해 프로덕션급 Agentic RAG 시스템을 구축하는 과정을 다룹니다. 키워드 검색부터 하이브리드 검색, LangGraph를 활용한 에이전트 구현까지 단계별 기술을 학습합니다.
핵심 포인트
- 키워드 및 하이브리드 검색 기반의 탄탄한 RAG 구축
- LangGraph를 활용한 지능형 Agentic RAG 구현
- Docker, FastAPI, PostgreSQL 등 엔지니어링 인프라 활용
- Langfuse 트레이싱 및 Redis 캐싱을 통한 모니터링
- 쿼리 재작성 및 가드레일을 통한 환각 방지 기술
실습 중심의 구현을 통해 현대적인 AI 시스템을 기초부터 구축하는 방법을 배우세요.
가장 수요가 높은 AI 엔지니어링 기술인 **RAG (Retrieval-Augmented Generation, 검색 증강 생성)**를 마스터하세요.
이 과정은 학습자 중심의 프로젝트로, 고급 RAG 기술을 사용하여 학술 논문을 자동으로 가져오고, 내용을 이해하며, 연구 질문에 답변하는 완전한 연구 보조 시스템을 구축하게 됩니다.
The arXiv Paper Curator를 통해 업계 베스트 프랙티스(Best Practices)를 활용한 프로덕션급 RAG 시스템 구축 방법을 배우게 됩니다. 벡터 검색(Vector Search)으로 바로 뛰어드는 튜토리얼과 달리, 우리는 전문적인 경로를 따릅니다. 먼저 키워드 검색(Keyword Search)의 기초를 마스터한 다음, 하이브리드 검색(Hybrid Retrieval)을 위해 벡터를 결합하여 기능을 강화합니다.
🎯 전문가의 차이점: 우리는 성공적인 기업들이 하는 방식대로 RAG 시스템을 구축합니다. 즉, 검색의 기본 원칙을 무시하는 AI 우선(AI-first) 방식이 아니라, AI로 강화된 탄탄한 검색 기반을 구축합니다.
이 과정을 마칠 때쯤 여러분은 자신만의 AI 연구 보조 시스템을 갖게 될 것이며, 어떤 도메인에서도 프로덕션급 RAG 시스템을 구축할 수 있는 깊은 기술적 역량을 갖추게 될 것입니다.
1주차: Docker, FastAPI, PostgreSQL, OpenSearch, Airflow를 이용한 인프라 구축 완료
2주차: arXiv에서 학술 논문을 가져오고 파싱하는 자동화된 데이터 파이프라인(Data Pipeline)
3주차: 필터링 및 관련성 점수 산출(Relevance Scoring) 기능이 포함된 프로덕션급 BM25 키워드 검색
4주차: 지능형 청킹(Intelligent Chunking) + 키워드와 의미론적 이해(Semantic Understanding)를 결합한 하이브리드 검색
5주차: 로컬 LLM(Large Language Model), 스트리밍 응답(Streaming Responses), Gradio 인터페이스를 포함한 완전한 RAG 파이프라인
6주차: 최적화된 성능을 위한 Langfuse 트레이싱(Tracing) 및 Redis 캐싱(Caching)을 활용한 프로덕션 모니터링
7주차: LangGraph 및 모바일 접속을 위한 Telegram Bot을 활용한 Agentic RAG
7주차 코드 워크스루(Walkthrough) + 블로그: LangGraph와 Telegram을 활용한 Agentic RAG
7주차의 핵심 혁신 사항:
지능적 의사결정 (Intelligent Decision-Making): 에이전트(Agents)가 검색 전략을 평가하고 조정합니다.문서 등급 매기기 (Document Grading): 의미론적 평가 (Semantic evaluation)를 통한 자동 관련성 평가쿼리 재작성 (Query Rewriting): 결과가 불충분할 때 적응형 쿼리 정제 수행가드레일 (Guardrails): 도메인 외 (Out-of-domain) 탐지를 통한 환각 (Hallucination) 방지모바일 액세스 (Mobile Access): 어떤 기기에서도 대화형 AI를 사용할 수 있는 Telegram 봇투명성 (Transparency): 디버깅과 신뢰를 위한 전체 추론 단계 추적
Docker Desktop (Docker Compose 포함)Python 3.12+UV 패키지 매니저 (UV Package Manager) (설치 가이드 포함)8GB 이상의 RAM및20GB 이상의 여유 디스크 공간
# 1. 클론(Clone) 및 설정
git clone <repository-url>
cd arxiv-paper-curator
...
| 주차 | 주제 | 블로그 포스트 | 코드 출시 |
|---|---|---|---|
| Week 0 | The Mother of AI 프로젝트 - 6단계 | The Mother of AI 프로젝트 | - |
| Week 1 | 인프라 기초 (Infrastructure Foundation) | RAG 시스템을 구동하는 인프라 | week1.0 |
| Week 2 | 데이터 수집 파이프라인 (Data Ingestion Pipeline) | RAG를 위한 데이터 수집 파이프라인 구축 | week2.0 |
| Week 3 | OpenSearch 수집 및 BM25 검색 | 모든 RAG 시스템에 필요한 검색 기초 | week3.0 |
| Week 4 | 청킹 (Chunking) 및 하이브리드 검색 | 하이브리드 검색을 작동하게 하는 청킹 전략 | week4.0 |
| Week 5 | 완전한 RAG 시스템 | 완전한 RAG 시스템 | week5.0 |
| Week 6 | 운영 모니터링 및 캐싱 (Production monitoring & caching) | 운영 환경용 RAG: 모니터링 및 캐싱 | week6.0 |
| Week 7 | Agentic RAG 및 Telegram 봇 | LangGraph와 Telegram을 활용한 Agentic RAG | week7.0 |
📥 특정 주차의 릴리스 클론하기:
# 특정 주차의 코드 클론
git clone --branch <WEEK_TAG> https://github.com/jamwithai/arxiv-paper-curator
cd arxiv-paper-curator
...
| 서비스 | URL | 용도 |
|---|---|---|
| API Documentation | http://localhost:8000/docs | 대화형 API 테스트 |
| Gradio RAG Interface | http://localhost:7861 | 사용자 친화적인 채팅 인터페이스 |
| Langfuse Dashboard | http://localhost:3000 | RAG 파이프라인 (pipeline) 모니터링 및 트레이싱 (tracing) |
| Airflow Dashboard | http://localhost:8080 | 워크플로 (workflow) 관리 |
| OpenSearch Dashboards | http://localhost:5601 | 하이브리드 검색 엔진 (hybrid search engine) UI |
여기서 시작하세요! 현대적인 RAG 시스템을 구동하는 인프라스트럭처 (infrastructure)를 마스터하세요.
- Docker Compose를 이용한 완전한 인프라스트럭처 설정
- 자동 문서화 및 상태 확인 (health checks) 기능이 포함된 FastAPI 개발
- PostgreSQL 데이터베이스 구성 및 관리
- OpenSearch 하이브리드 검색 엔진 설정
- Ollama 로컬 LLM 서비스 구성
- 서비스 오케스트레이션 (orchestration) 및 상태 모니터링
- 코드 품질 도구가 포함된 전문적인 개발 환경
인프라스트럭처 구성 요소:
FastAPI: 비동기 (async) 지원 REST 엔드포인트 (Port 8000)
PostgreSQL 16: 논문 메타데이터 저장 (Port 5432)
OpenSearch 2.19: 대시보드가 포함된 검색 엔진 (Ports 9200, 5601)
Apache Airflow 3.0: 워크플로 오케스트레이션 (Port 8080)
Ollama: 로컬 LLM 서버 (Port 11434)
# 1주차 노트북 실행
uv run jupyter notebook notebooks/week1/week1_setup.ipynb
완료 가이드: 실습 설정 및 검증 단계를 위해 1주차 노트북을 따르세요.
블로그 포스트: RAG 시스템을 구동하는 인프라스트럭처 - 상세 가이드 및 프로덕션 인사이트
1주차 인프라스트럭처를 기반으로 구축하기: 학술 논문을 자동으로 가져오고, 처리하고, 저장하는 방법을 배웁니다.
- 속도 제한 (rate limiting) 및 재시도 로직 (retry logic)이 포함된 arXiv API 통합
- Docling을 사용한 과학적 PDF 파싱 (parsing)
- Apache Airflow를 이용한 자동화된 데이터 수집 (ingestion) 파이프라인
- 메타데이터 추출 및 저장 워크플로
- API부터 데이터베이스까지의 완전한 논문 처리 과정
데이터 파이프라인 구성 요소:
MetadataFetcher: 🎯 전체 파이프라인을 조정하는 메인 오케스트레이터 (Main orchestrator)
ArxivClient: 재시도 로직 (Retry logic)을 포함한 속도 제한 (Rate-limited) 논문 가져오기
PDFParserService: Docling 기반의 과학 기술 문서 처리
Airflow DAGs: 자동화된 일간 논문 수집 워크플로
PostgreSQL Storage: 구조화된 논문 메타데이터 및 콘텐츠
# Week 2 노트북 실행
uv run jupyter notebook notebooks/week2/week2_arxiv_integration.ipynb
완료 가이드 (Completion Guide): 실습 구현 및 검증 단계를 위해 Week 2 노트북을 따르세요.
블로그 포스트 (Blog Post): RAG를 위한 데이터 수집 파이프라인 구축 - arXiv API 통합 및 PDF 처리
Week 1-2 기반 구축: 전문적인 RAG 시스템이 의존하는 키워드 검색 (Keyword search) 기반을 구현합니다.
- RAG 시스템에서 키워드 검색이 필수적인 이유 (기초 우선 접근 방식)
- OpenSearch 인덱스 관리, 매핑 (Mappings), 및 검색 최적화
- BM25 알고리즘 및 효과적인 키워드 검색 뒤에 숨겨진 수학적 원리
- 필터 및 부스팅 (Boosting)을 사용하여 복잡한 검색 쿼리를 구축하기 위한 Query DSL
- 관련성 (Relevance) 및 성능 측정을 위한 검색 분석 (Search analytics)
- 실제 기업에서 사용하는 프로덕션 패턴
검색 인프라 구성 요소 (Search Infrastructure Components):
OpenSearch Service:src/services/opensearch/
-
전문적인 검색 서비스 구현
Search API:src/routers/search.py -
BM25 스코어링이 적용된 검색 API 엔드포인트
학습 자료 (Learning Materials):notebooks/week3/ -
완전한 OpenSearch 통합 가이드
품질 지표 (Quality Metrics): 정밀도 (Precision), 재현율 (Recall), 및 관련성 점수 (Relevance scoring)
# Week 3 노트북 실행
uv run jupyter notebook notebooks/week3/week3_opensearch.ipynb
완료 가이드 (Completion Guide): 실습 OpenSearch 설정 및 BM25 검색 구현을 위해 Week 3 노트북을 따르세요.
블로그 포스트 (Blog Post): 모든 RAG 시스템에 필요한 검색 기반 - OpenSearch를 활용한 완전한 BM25 구현
Week 3 기반 구축: 검색을 진정으로 지능적으로 만드는 시맨틱 레이어 (Semantic layer)를 추가합니다.
- 지능형 문서 세분화(Segmentation)를 통한 섹션 기반 청킹 (Section-based chunking)
- Jina AI 통합 및 폴백 전략 (Fallback strategies)을 활용한 프로덕션급 임베딩 (Embeddings)
- 키워드 + 시맨틱 검색을 위한 RRF 퓨전 (RRF fusion) 기반 하이브리드 검색 (Hybrid search) 숙달
- 여러 검색 모드를 지원하는 단일 엔드포인트 기반의 통합 API 설계
- 성능 분석 및 검색 방식 간의 트레이드오프 (Trade-offs)
하이브리드 검색 인프라 구성 요소 (Hybrid Search Infrastructure Components):
Text Chunker:src/services/indexing/text_chunker.py
-
오버랩 전략 (Overlap strategies)을 포함한 섹션 인지형 청킹 (Section-aware chunking)
Embeddings Service:src/services/embeddings/ -
Jina AI를 활용한 프로덕션 임베딩 파이프라인
Hybrid Search API:src/routers/hybrid_search.py -
모든 모드를 지원하는 통합 검색 API
Learning Materials:notebooks/week4/ -
완전한 하이브리드 검색 구현 가이드
# Week 4 노트북 실행
uv run jupyter notebook notebooks/week4/week4_hybrid_search.ipynb
완료 가이드 (Completion Guide): 실습 구현 및 검증 단계를 위해 Week 4 노트북을 따르세요.
블로그 포스트 (Blog Post): 하이브리드 검색을 가능하게 하는 청킹 전략 - 프로덕션 청킹 및 RRF 퓨전 구현
Week 4 하이브리드 검색 기반 구축: 검색을 지능적인 대화로 전환하는 LLM 레이어를 추가합니다.
- 완전한 데이터 프라이버시를 위한 Ollama 기반 로컬 LLM 통합
- 프롬프트(Prompt) 80% 감소를 통한 성능 최적화 (6배 속도 향상)
- 실시간 응답을 위한 Server-Sent Events (SSE) 기반 스트리밍 구현
- 표준 및 스트리밍 엔드포인트를 갖춘 이중 API 설계
- 고급 파라미터 제어가 가능한 대화형 Gradio 인터페이스
전체 RAG 인프라 구성 요소 (Complete RAG Infrastructure Components):
RAG Endpoints:src/routers/ask.py
-
이중 엔드포인트 (
/api/v1/ask,/api/v1/stream)
Ollama Service:src/services/ollama/ -
최적화된 프롬프트를 갖춘 LLM 클라이언트
System Prompt:src/services/ollama/prompts/rag_system.txt -
학술 논문에 최적화됨
Gradio Interface:src/gradio_app.py -
스트리밍을 지원하는 대화형 웹 UI
Launcher Script:gradio_launcher.py -
간편 실행 스크립트 (7861 포트에서 실행)
# Week 5 노트북 실행
uv run jupyter notebook notebooks/week5/week5_complete_rag_system.ipynb
# Gradio 인터페이스 실행
...
완료 가이드 (Completion Guide): 실습을 통한 LLM 통합 및 RAG 파이프라인 구현을 위해 Week 5 노트북을 따라가세요.
블로그 포스트 (Blog Post): 완전한 RAG 시스템 (The Complete RAG System) - 로컬 LLM 통합 및 최적화 기술을 포함한 완전한 RAG 시스템
Week 5 완전한 RAG 시스템 기반 확장: 관찰 가능성 (Observability), 성능 최적화 및 프로덕션급 모니터링 추가
- 엔드 투 엔드 (End-to-end) RAG 파이프라인 추적을 위한 Langfuse 통합
- 지능형 캐시 키 (Cache keys) 및 TTL 관리를 포함한 Redis 캐싱 전략
- 지연 시간 (Latency) 및 비용에 대한 실시간 대시보드를 활용한 성능 모니터링
- 관찰 가능성 및 최적화를 위한 프로덕션 패턴
- 비용 분석 및 LLM 사용 최적화 (캐싱을 통해 150-400배 속도 향상)
프로덕션 인프라 구성 요소 (Production Infrastructure Components):
Langfuse 서비스 (Langfuse Service):src/services/langfuse/
- RAG 특화 메트릭을 포함한 완전한 추적 (Tracing) 통합
캐시 서비스 (Cache Service):src/services/cache/
- 정확한 일치 (Exact-match) 캐싱 및 우아한 폴백 (Graceful fallback)을 지원하는 Redis 클라이언트
업데이트된 엔드포인트 (Updated Endpoints):src/routers/ask.py
- 추적 및 캐싱 미들웨어 통합
Docker 설정 (Docker Config):docker-compose.yml
- Redis 서비스 및 Langfuse 로컬 인스턴스 추가
학습 자료 (Learning Materials):notebooks/week6/
- 완전한 모니터링 및 캐싱 구현 가이드
# Week 6 노트북 실행
uv run jupyter notebook notebooks/week6/week6_cache_testing.ipynb
완료 가이드 (Completion Guide): 실습을 통한 Langfuse 추적 및 Redis 캐싱 구현을 위해 Week 6 노트북을 따라가세요.
블로그 포스트 (Blog Post): 프로덕션용 RAG: 모니터링 및 캐싱 (Production-ready RAG: Monitoring & Caching) - 모니터링 및 캐싱을 갖춘 프로덕션용 RAG
Week 6 프로덕션 시스템 기반 확장: 지능형 추론, 다단계 의사결정, 그리고 모바일 우선 AI 상호작용을 위한 Telegram 봇 통합 추가
- 결정 노드 (decision nodes)를 포함한 상태 기반 에이전트 오케스트레이션 (agent orchestration)을 위한 LangGraph 워크플로우 (workflows)
- 쿼리 검증 (query validation) 및 도메인 경계 탐지 (domain boundary detection)를 위한 가드레일 (Guardrail) 구현
- 의미론적 관련성 평가 (semantic relevance evaluation)를 통한 문서 등급 산정 (Document grading)
- 자동 쿼리 개선 (query refinement) 및 더 나은 검색 (retrieval)을 위한 쿼리 재작성 (Query rewriting)
- 다중 시도 검색 (multi-attempt retrieval) 및 지능형 폴백 (intelligent fallback)을 포함한 적응형 검색 (Adaptive retrieval)
- 비동기 작업 (async operations) 및 에러 핸들링 (error handling)을 포함한 Telegram 봇 통합
- 에이전트의 의사결정 과정 (decision-making process)을 노출하여 추론 투명성 (Reasoning transparency) 확보
에이전틱 RAG 인프라 구성 요소 (Agentic RAG Infrastructure Components):
에이전트 노드 (Agent Nodes): src/services/agents/nodes/
-
가드레일 (Guardrail), 검색 (retrieve), 등급 산정 (grade), 재작성 (rewrite), 생성 (generate) 노드
워크플로우 오케스트레이션 (Workflow Orchestration):src/services/agents/agentic_rag.py -
LangGraph 워크플로우 조정 (coordination)
Telegram 봇 (Telegram Bot):src/services/telegram/ -
명령 핸들러 (Command handlers) 및 메시지 처리 (message processing)
에이전틱 엔드포인트 (Agentic Endpoint):src/routers/agentic_ask.py -
에이전틱 RAG API 엔드포인트
학습 자료 (Learning Materials):notebooks/week7/ -
7주차 학습 자료 및 예제
# 7주차 노트북 실행
uv run jupyter notebook notebooks/week7/week7_agentic_rag.ipynb
완료 가이드 (Completion Guide): 실습 위주의 LangGraph 에이전틱 RAG 및 Telegram 봇 구현을 위해 7주차 노트북을 따라가세요.
블로그 포스트 (Blog Post): LangGraph와 Telegram을 활용한 에이전틱 RAG - 의사결정, 적응형 검색, 모바일 접속 기능을 갖춘 지능형 에이전트 구축
설정 (Setup):
cp .env.example .env
# 환경에 맞춰 .env 파일을 수정하세요
주요 변수 (Key Variables):
JINA_API_KEY
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기