KruxAI/ragbuilder
A toolkit to create optimal Production-readyRetrieval Augmented Generation(RAG) setup for your data
RagBuilder란 무엇인가?
RagBuilder는 모든 문서 컬렉션에 대해 프로덕션 준비가 된 RAG(검색 증강 생성) 파이프라인을 자동으로 구축하는 데 도움이 되는 Python 라이브러리입니다. 베이지안 최적화를 사용하여 RAG 하이퍼파라미터(청크 크기, 청킹 전략, 리트리버 유형, 리랭커, LLM 등)의 공간을 탐색하고, 테스트 세트에서 각 구성을 평가한 후 가장 성능이 좋은 설정을 반환합니다.
핵심 기능
| 기능 | 작동 방식(README에 설명된 대로) |
|---|---|
| 하이퍼파라미터 튜닝 | 베이지안 최적화를 사용하여 청킹, 벡터 스토어, 리트리버, 리랭커, LLM 설정의 다양한 조합을 시도합니다. |
| 사전 정의 템플릿 | "최첨단" RAG 템플릿(예: 그래프 리트리버, 컨텍스트 청커)이 포함되어 있어 바로 사용할 수 있습니다. |
| 테스트 데이터 | 합성 테스트 세트를 생성하거나 평가용 쿼리/답변을 직접 제공할 수 있습니다. |
| 구성 요소 액세스 | 최적화 후 기본 벡터 스토어, 리트리버, 생성기 객체를 직접 가져올 수 있습니다. |
| API 배포 | builder.serve()를 한 번 호출하면 로컬 HTTP API(POST /query)가 시작됩니다. |
| 프로젝트 영속성 | 파이프라인을 디스크에 저장(builder.save())하고 나중에 다시 로드(RAGBuilder.load())할 수 있습니다. |
일반적인 워크플로우(빠른 시작 예제)
from ragbuilder import RAGBuilder
# 1️⃣ 데이터 로드(URL, PDF 등) 및 기본 구성 사용
builder = RAGBuilder.from_source_with_defaults(
input_source='https://lilianweng.github.io/posts/2023-06-23-agent/'
)
# 2️⃣ 최적화 실행(기본 시도 횟수)
results = builder.optimize()
# 3️⃣ 완성된 파이프라인에 쿼리 실행
answer = results.invoke("What is HNSW?")
print(answer)
# 4️⃣ 간단한 최적화 보고서 보기
print(results.summary())
동일한 패턴은 사용자 정의 모델, 사용자 정의 청커 또는 사용자 정의 테스트 데이터 세트에서도 작동합니다.
사용자 정의 지점
- 데이터 수집 – 문서 로더(
pymupdf,unstructured,web등), 청커(문자, 의미, 토큰 기반 등), 임베딩 모델을 선택합니다. - 검색 – 벡터 유사도, BM25, 다중 쿼리, 그래프 기반 검색을 혼합하고 가중치를 할당합니다.
- 리랭킹 – 나열된 리랭커(BGE, mxbai, Cohere, Jina, FlashRank, RankLLM, ColBERT 등) 중 하나를 플러그인합니다.
- 생성 – 하나 이상의 LLM 구성(OpenAI, Azure OpenAI 등)과 최적화 설정(예: 시도 횟수)을 제공합니다.
- 평가 – 내장된 Ragas 평가를 사용하거나 사용자 정의 평가기 클래스를 제공합니다.
이 모든 것은 작은 Pydantic 스타일 구성 객체(DataIngestOptionsConfig, RetrievalOptionsConfig, GenerationOptionsConfig)로 표현됩니다.
설치 및 환경
- Python 3.10+ 필요.
- 격리된 가상 환경(
uv venv ragbuilder)을 만드는 것이 좋습니다. uv pip install ragbuilder로 설치합니다(또는 문서에 링크된 다른 방법)..env파일에 필요한 API 키를 설정합니다 – 최소OPENAI_API_KEY가 필요합니다. Mistral, Cohere, Azure OpenAI, Neo4j용 선택적 키도 지원됩니다.
배포 및 보안 참고 사항
- 내장 UI와 API는 기본적으로
127.0.0.1에 바인딩됩니다. 원격 액세스에는 API 토큰(RAGBUILDER_API_TOKEN)과 TLS 종료가 필요합니다. - 컨테이너화된 설정을 위해 Docker Compose가 제공됩니다(그래프 기반 검색용 Neo4j 포함).
- 기본 원격 측정이 Cloudflare 수집기로 전송됩니다.
ENABLE_ANALYTICS=false로 비활성화할 수 있습니다.
프로젝트 상태
이 저장소는 더 이상 적극적으로 유지 관리되지 않습니다 – 참고용으로 계속 사용할 수 있지만, 새로운 이슈나 풀 리퀘스트에 대한 처리는 보장되지 않습니다.
TL;DR – RagBuilder는 RAG 파이프라인의 설계, 최적화 및 배포를 자동화하는 Python 도구 키트로, 청킹, 검색, 리랭킹, LLM 설정의 최상의 조합을 검색하는 동안 데이터에 집중할 수 있게 해줍니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트