neuml/rag
🚀 Retrieval Augmented Generation (RAG) with txtai. Combine search and LLMs to find insights with your own data.
What it solves
이 프로젝트는 사용자 친화적인 Streamlit 애플리케이션을 제공하며 Retrieval Augmented Generation(RAG)을 구현해 특정하고 관련성 있는 컨텍스트에 기반해 LLM 응답을 사실적으로 정확하게 만듭니다. 전통적인 벡터 기반 검색과 보다 고급적인 그래프 기반 검색 방법 사이를 쉽게 전환할 수 있습니다.
How it works
txtai 프레임워크 위에 구축된 이 애플리케이션은 사용자 질의를 두 가지 주요 검색 전략으로 처리합니다:
- Vector RAG: 표준 벡터 검색을 수행하여 가장 관련성이 높은 상위 N개의 문서 매치를 찾아 LLM의 컨텍스트로 제공합니다.
- Graph RAG: 의미 그래프를 사용해 그래프 경로 탐색 또는 그래프 쿼리 확장(
gq:접두사 사용)으로 컨텍스트를 생성합니다. 두 방법을 결합해 특정 그래프 경로 내에서 검색 범위를 좁히는 것도 가능합니다.
사용자는 URL, 파일 경로 또는 # 접두사를 이용한 직접 텍스트 입력을 통해 데이터를 동적으로 인덱스에 추가할 수 있습니다.
Who it’s for
개발자와 AI 연구자에게 적합하며, 다양한 RAG 검색 전략(벡터 vs. 그래프)을 테스트하고 비교하며 자체 지식 베이스를 관리하고자 하는 분들을 위한 즉시 사용 가능한 인터페이스를 제공합니다.
Highlights
- Dual Retrieval Modes: 표준 Vector RAG와 Graph RAG를 모두 지원합니다.
- Dynamic Data Indexing: 채팅 인터페이스에서
#명령을 사용해 새로운 문서나 텍스트 스니펫을 직접 추가할 수 있습니다. - Flexible Configuration: 환경 변수를 통해 LLM 선택, 임베딩 데이터베이스, 텍스트 추출 백엔드(예: Docling) 등을 고도로 구성할 수 있습니다.
- Visual Graph Representation: Graph RAG 쿼리는 해당 그래프를 표시하여 컨텍스트가 어떻게 검색되었는지 시각화합니다.