1. 프로젝트 개요
llm-app (Pathway 제공)은 SharePoint, Google Drive, S3, Kafka, PostgreSQL과 같은 라이브 데이터 소스와 지속적으로 동기화되는 상용 수준의 RAG(검색 증강 생성) 파이프라인 및 엔터프라이즈 검색 애플리케이션을 구축하기 위한 즉시 실행 가능하고 Docker 친화적인 템플릿 모음입니다. 별도의 벡터 데이터베이스나 인덱싱 서비스가 필요하지 않습니다.
2. 배경 및 포지셔닝
대부분의 RAG 튜토리얼은 정적이고 한 번만 로드되는 문서 세트를 가정합니다. 하지만 실제 조직에서는 지식 베이스가 끊임없이 변합니다. 새 파일이 업로드되고, 오래된 파일은 삭제되며, 권한이 변경됩니다. llm-app은 Rust 기반 Pathway 데이터 처리 엔진을 개발한 Pathway사에서 이러한 격차를 줄이기 위해 구축했습니다. 모든 템플릿에는 기본 데이터 소스의 추가, 업데이트, 삭제를 감지하고 수동 재인덱싱 단계 없이 검색 결과에 실시간으로 반영하는 라이브 증분 인덱싱 파이프라인이 포함되어 있습니다.
프롬프트/체인 로직에만 초점을 맞추는 일반적인 RAG 예제 리포지토리와 비교하여, llm-app은 다음과 같은 특징으로 차별화됩니다:
- 별도의 벡터 데이터베이스, 오케스트레이션, 스케줄링 서비스를 조립하는 대신 데이터 커넥터, 인덱싱 엔진, 서빙 API를 단일 배포 가능 단위로 번들링합니다.
- 외부 인프라 없이도 수백만 페이지로 확장되는 메모리 내 캐시 기반 인덱스(
usearch및Tantivy를 통한 벡터, 하이브리드 및 전문 검색)를 제공합니다. - 템플릿 기반 — 각 사용 사례는 문서 스니펫이 아닌 완전하고 실행 가능한 애플리케이션입니다.
3. 기능 카테고리
-
📄 질의응답 및 검색 (4개 템플릿) — 자연어로 문서 컬렉션을 쿼리하기 위한 엔드투엔드 RAG 앱입니다.
question_answering_rag— LLM을 사용하는 기본 문서 질의응답 파이프라인입니다.document_indexing— 다운스트림 앱에서 사용할 수 있는 독립형 라이브 벡터 스토어/인덱싱 서비스입니다.slides_ai_search— PowerPoint/PDF 슬라이드 데크에 대한 멀티모달 검색입니다.document_store_mcp_server— 에이전트 도구를 위해 문서 저장소를 MCP 서버로 노출합니다.
-
🖼️ 멀티모달 RAG (2개 템플릿) — 단순 텍스트를 넘어서는 파이프라인입니다.
multimodal_rag— GPT-4o를 사용하여 내장된 차트, 표, 이미지가 포함된 PDF를 파싱합니다.video_rag_twelvelabs— TwelveLabs API를 통한 비디오 콘텐츠에 대한 질의응답입니다.
-
⚡ 비용 및 프라이버시 최적화 RAG (2개 템플릿) — 비용 또는 데이터 거주 제약 조건에 맞게 조정된 변형입니다.
adaptive_rag— 검색된 컨텍스트 청크 수를 동적으로 조정하여 토큰 사용량을 최대 4배까지 줄입니다.private_rag— Mistral 및 Ollama를 사용한 완전히 로컬/오프라인 배포로, 데이터가 외부로 유출되지 않습니다.
-
🗄️ 구조화된 데이터 및 자동화 (2개 템플릿) — 비구조화된 입력을 구조화된 출력으로 변환하거나 작업을 트리거하는 파이프라인입니다.
unstructured_to_sql_on_the_fly— 비구조화된 재무 문서를 즉시 쿼리 가능한 SQL 데이터베이스로 변환합니다.drive_alert— 라이브 데이터 소스를 모니터링하고 관련 변경 사항에 대해 알림을 발생시킵니다.
-
🧠 에이전트 패턴 (1개 컬렉션) — 고급 추론 루프를 위한 참조 노트북입니다.
cookbooks/self-rag-agents— 자체 검색된 컨텍스트를 비평하고 개선하는 Self-RAG 스타일 에이전트입니다.
4. 주요 특징
- 라이브 데이터 동기화 — 파이프라인은 SharePoint, Google Drive, S3, Kafka, PostgreSQL 및 실시간 API를 감시하여 재빌드 단계 없이 추가, 편집, 삭제를 자동으로 반영합니다.
- 추가 인프라 불필요 — 벡터, 하이브리드 및 전문 검색은 Pathway 엔진(
usearch+Tantivy)에 내장되어 있으며 캐싱을 통해 메모리에서 실행되므로 별도의 벡터 데이터베이스가 필요하지 않습니다. - Docker 우선 배포 — 모든 템플릿은 HTTP API를 통해 컨테이너로 실행되며, 대부분은 빠른 수동 테스트를 위한 선택적 Streamlit UI를 포함합니다.
- 프레임워크 상호 운용성 — LangChain 및 LlamaIndex와의 기본 통합을 통해 팀은 Pathway의 라이브 인덱스 위에서 기존 체인과 에이전트를 재사용할 수 있습니다.
- 비용 인지 검색 — Adaptive RAG 템플릿은 필요한 만큼의 컨텍스트만 검색하여 LLM 토큰 지출을 최대 4배까지 줄이는 방법을 보여줍니다.
- 확장 테스트 완료 — 단일 파이프라인에서 수백만 개의 문서 페이지를 인덱싱하고 서빙하도록 설계되었습니다.
5. 역할별 사용 사례
- 일반 개발자 — 사용 사례(질의응답, 멀티모달, SQL 추출)에 맞는 템플릿을 복제하고 데이터 커넥터와 프롬프트를 제품에 맞게 조정합니다.
- 데이터 / 연구 과학자 — 검색 전략, 청킹, 에이전트 자기 교정을 실험하기 위한 기반으로
document_indexing또는self-rag-agents쿡북을 사용합니다. - 프로젝트 매니저 / 엔터프라이즈 검색 담당자 — 유지 관리할 인덱싱 파이프라인 없이 최신 상태를 유지하는 내부 지식 베이스 검색 도구로
question_answering_rag또는slides_ai_search를 배포합니다. - 보안/컴플라이언스 중시 팀 —
private_rag을 사용하여 Mistral/Ollama로 문서 콘텐츠와 모델 추론을 완전히 온프레미스에 유지합니다.
6. 시작하기
필요한 항목 찾기 — GitHub에서 templates/ 디렉토리를 탐색하거나 Pathway Templates 페이지의 엄선된 목록을 확인하여 사용 사례와 가장 잘 맞는 항목을 선택합니다.
템플릿 설치 및 실행
git clone https://github.com/pathwaycom/llm-app.git
cd llm-app/templates/question_answering_rag
docker compose up
각 템플릿 폴더에는 해당 파이프라인에 필요한 정확한 환경 변수(예: API 키)와 실행 지침이 포함된 자체 README.md가 있습니다.
기여하기 — CONTRIBUTING.md를 읽어보세요. 작은 수정 이외의 작업인 경우 Pathway Discord의 #get-help 채널에서 먼저 조율하세요.
7. 프로젝트 구조
llm-app/
├── templates/ # 즉시 실행 가능한 애플리케이션 템플릿
│ ├── question_answering_rag/
│ ├── document_indexing/
│ ├── multimodal_rag/
│ ├── adaptive_rag/
│ ├── private_rag/
│ ├── slides_ai_search/
│ ├── unstructured_to_sql_on_the_fly/
│ ├── video_rag_twelvelabs/
│ ├── document_store_mcp_server/
│ └── drive_alert/
├── cookbooks/
│ └── self-rag-agents/ # Self-RAG 에이전트 노트북
├── assets/ # 다이어그램 및 데모 미디어
├── pyproject.toml / setup.cfg # Python 패키징 구성
└── README.md
templates/ 아래의 각 하위 폴더는 자체 Dockerfile/docker compose 설정 및 구성 파일을 가진 독립적인 앱이므로 템플릿은 서로 독립적으로 실행될 수 있습니다.
8. 관련 생태계
- Pathway — 이 리포지토리가 구축된 스트리밍 ETL, 라이브 인덱싱 및 증분 계산을 제공하는 기본 Rust 기반 Python 데이터 처리 엔진입니다.
- LangChain / LlamaIndex — Pathway의 라이브 벡터 인덱스 위에서 선택적 오케스트레이션 계층으로 지원됩니다.
- usearch / Tantivy — 각각 벡터 검색과 전문/하이브리드 검색을 지원하는 내장 라이브러리입니다.
- Ollama / Mistral —
private_rag템플릿에서 완전히 로컬 LLM 추론을 위해 사용됩니다. - TwelveLabs —
video_rag_twelvelabs템플릿에서 사용하는 비디오 이해 API입니다.
9. 라이선스
이 프로젝트는 MIT License에 따라 배포됩니다.
- ✅ 상용 제품을 포함하여 사용, 복사, 수정, 병합, 게시 및 배포할 수 있는 자유가 있습니다.
- ✅ 독점/폐쇄형 소스 애플리케이션에 포함할 수 있습니다.
- ❌ 어떠한 보증도 제공하지 않으며, 작성자는 사용으로 인해 발생하는 손해에 대해 책임을 지지 않습니다.
- ℹ️ 소프트웨어의 사본 또는 상당 부분에는 MIT 라이선스 텍스트와 저작권 고지가 유지되어야 합니다.
10. 자주 묻는 질문
Q: 이 템플릿과 함께 별도의 벡터 데이터베이스를 실행해야 하나요?
A: 아니요 — 인덱싱(벡터, 하이브리드 및 전문 검색)은 Pathway 엔진에 내장되어 있으며 디스크 캐싱을 통해 메모리에서 실행되므로 외부 벡터 스토어가 필요하지 않습니다.
Q: 데이터를 타사 LLM API로 전송하지 않고 완전히 오프라인으로 사용할 수 있나요?
A: 네 — private_rag 템플릿은 Mistral 및 Ollama를 로컬로 실행하여 문서와 추론을 온프레미스에 유지합니다.
Q: 이 파이프라인은 라이브 업데이트를 위해 어떤 데이터 소스를 감시할 수 있나요?
A: SharePoint, Google Drive, S3, Kafka, PostgreSQL, 로컬 파일 시스템 및 일반 실시간 데이터 API가 즉시 지원됩니다.
Q: 검색을 확장할 때 LLM 토큰 비용을 어떻게 줄일 수 있나요?
A: 검색된 컨텍스트 크기를 동적으로 조정하고 최대 4배 낮은 토큰 사용량을 보고하는 adaptive_rag 템플릿을 참조하세요.
Q: 도움을 받거나 더 큰 기여를 제안하려면 어떻게 해야 하나요?
A: 버그의 경우 GitHub에 이슈를 열거나, 본격적인 작업을 시작하기 전에 Pathway Discord의 #get-help 채널에 참여하세요.
11. 빠른 링크
- 리포지토리: https://github.com/pathwaycom/llm-app
- 공식 문서 / 템플릿 카탈로그: https://pathway.com/developers/templates/
- 기여 가이드: https://github.com/pathwaycom/llm-app/blob/main/CONTRIBUTING.md
- 커뮤니티: https://discord.gg/pathway
12. 요약
llm-app은 Pathway의 라이브 데이터 엔진을 변경되는 문서 소스와 자동으로 동기화를 유지하는 배포 가능한 RAG 및 엔터프라이즈 검색 템플릿 세트로 패키징하여 별도의 인덱싱 인프라 필요성을 제거합니다. 목표가 문서 질의응답, 멀티모달 검색, 비용 최적화 검색 또는 완전히 프라이빗한 온프레미스 배포인지에 관계없이 RAG 프로토타입에서 상용 파이프라인으로 빠르게 전환하려는 개발자와 팀에 가장 적합합니다.