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 설정의 최상의 조합을 검색하는 동안 데이터에 집중할 수 있게 해줍니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트