Skip to main content
최신 연구:회로가 녹을 때 →12 vindexes on Hugging Face
데모 요청

RAG 라우팅 — 하나의 API, 여러 아키텍처

RAG 라우팅

하나의 API 엔드포인트, 열 개의 검색 아키텍처. 라우터는 과거 쿼리 트래픽으로부터 학습하여 새로 들어오는 모든 질문을 가장 정확히 답할 가능성이 높은 백엔드로 디스패치합니다 — 품질 기준은 충족하면서도 가장 낮은 비용으로요.

문의하기 심층 분석 읽기 →

세 가지 아키텍처, 개념적으로

대부분의 프로덕션 RAG 시스템은 하나의 검색 아키텍처를 배포하고 끝냅니다. 우리는 아키텍처적으로 서로 다른 스택들 사이에서 선택하는 라우터를 제공합니다 — 코퍼스 내 모든 쿼리에 동일한 선택이 최적인 경우는 거의 없기 때문입니다.

Tier 1 · 플랫 벡터 RAG
FAST & CHEAP
임베드 → 코사인 top-k
→ 컨텍스트 삽입
→ 생성

적합한 용도

단일 사실 조회, FAQ 형태의 쿼리, 평면 청크 코퍼스에서 "X가 무엇인가요?" 식의 질문.

지연 시간:< 300 ms p95비용:쿼리당 수 센트백엔드:Qdrant · Cloudflare · Vertex · MongoDB · Redis
Tier 2 · 하이브리드 + 재정렬
BALANCED
BM25 lexical + dense vector
→ Reciprocal Rank Fusion
→ cross-encoder reranker
→ 생성

적합한 용도

어휘적 신호와 의미적 신호가 충돌하는 쿼리 — 코드, 이름, 약어, 기술 용어, 오류 문자열.

지연 시간:약 800 ms비용:여전히 낮음현재 상태:구성 가능한 워크플로 노드 · 자동 라우터 로드맵
Tier 3 · Page-Index + 에이전트
DEEP & DELIBERATE
수집 시 계층적 TOC 트리 구축
→ 에이전트가 트리를 탐색
→ 섹션을 열어 읽음
→ 생성

적합한 용도

구조화된 긴 문서의 멀티-홉 독해 — 법률 계약서, 재무 10-K, 컨텍스트가 인접하지 않은 섹션에 걸쳐 있는 기술 PDF.

지연 시간:수 초비용:가장 높음 — 필요할 때만 사용백엔드:PageIndex · RAPTOR · LightRAG · neo4j-hybrid

라우터가 실제로 결정하는 방식

대부분의 공개된 RAG 라우터는 쿼리를 사전에 복잡도로 분류합니다. 우리는 그렇게 하지 않습니다. 학습형 라우팅(learned routing)을 사용합니다 — 성공한 모든 쿼리는 답변한 백엔드와 함께 저장되며, 새 쿼리는 임베딩 유사도를 기준으로 그 이력과 매칭됩니다.

조회 알고리즘 — 매 쿼리마다 실행되는 로직

  1. 질문을 해싱합니다 — SHA-256으로 해싱한 뒤 16자 키로 자르고, Cloudflare KV의 고객별 라우팅 저장소에서 동일한 사전 매치를 확인합니다. 이전에 답한 적이 있다면, 그때 가장 잘 수행한 백엔드로 즉시 디스패치합니다.
  2. 미스가 발생하면 질문을 임베드하여 캐시된 과거 질문 임베딩 인덱스에 대해 코사인 검색을 수행합니다. 최근접 이웃의 유사도가 0.88을 초과하면 연관된 백엔드로 디스패치합니다.
  3. 임계값을 넘는 매치가 없으면 해당 코퍼스에 대한 고객의 기본 백엔드로 폴백합니다.
  4. 답변이 렌더링된 후, (질문 해시, 백엔드, 품질 점수) 튜플이 고객별 라우팅 이력 저장소에 다시 기록되어 향후 조회의 시드가 됩니다.
왜 "분류"가 아닌 "학습"인가? 실증적으로 같은 형태의 쿼리도 코퍼스마다 다르게 동작합니다. 법률 계약서에서 "Y에 걸쳐 X를 비교"하는 쿼리는 Tier 3 page-index 탐색을 원하지만, 평면 FAQ 코퍼스에서는 같은 형태의 쿼리도 Tier 1으로 충분합니다. 쿼리 구문에서 추측하는 대신, 코퍼스별 과거 증거로부터 라우팅 모델이 그 차이를 학습하도록 하는 것 — 그것이 실제로 출시된 설계 선택입니다.

현재 라우팅 대상인 열 개의 백엔드

라우터는 명명된 열 개의 백엔드 중 하나로 디스패치합니다. 그중 세 개는 "Tier 3 형태"(계층적 또는 그래프 강화형)이고, 나머지는 운영상의 트레이드오프가 다른 순수 벡터 엔진으로 Tier 1으로 취급합니다.

PI
pageindex계층적 TOC 트리 + 에이전트형 탐색. Tier 3의 원형.
RT
raptor재귀적으로 요약된 문서 계층에 대한 트리 탐색 검색 (ICLR 2024).
neo4j-hybrid벡터 임베딩과 명시적 엔티티/관계 구조를 결합한 그래프 강화형 검색.
LR
lightrag평면 그래프 듀얼 모드 검색 — 엔티티 + 커뮤니티 검색, HKU LightRAG 접근법.
qdrant고처리량, 저지연 조회를 위한 자체 호스팅 dense-vector 엔진.
cloudflare-v2엣지의 Vectorize — Cloudflare 글로벌 네트워크에서 sub-300 ms p95.
couchbase-byok기존 운영 의존성을 가진 고객을 위한 BYO Couchbase 벡터 스토어.
vertex-ai-vector-search-v2Google 데이터 스택을 사용하는 고객을 위한 Google Cloud Vertex AI 벡터 검색.
mongodb-atlasMongoDB에서 문서 데이터를 운영하는 고객을 위한 Atlas Vector Search.
redis-vector-search초저지연 인메모리 검색 워크로드를 위한 Redis 벡터 검색.

Tier 2(BM25 + dense fusion + cross-encoder reranker)는 오늘 우리 워크플로 캔버스에서 구성 가능한 노드로 제공됩니다. 자동 라우터는 코퍼스별 라우팅 데이터가 이를 정당화하는 시점에 다음 대상으로 삼습니다.

API 표면 — 하나의 엔드포인트, 감사 등급의 투명성

라우터는 호출자에게 보이지 않습니다. 단일 요청 형태이며, 응답에는 라우팅 결정이 포함되어 어느 백엔드가 답했는지(그리고 왜인지)를 감사할 수 있습니다.

# 하나의 엔드포인트. 라우터가 사용할 백엔드를 결정합니다.
curl -X POST https://api.divinci.app/v1/rag/query \
  -H "Authorization: Bearer $DIVINCI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "What clauses in the 2024 amendment override section 7.3?",
    "corpus":   "legal-contracts-q4"
  }'
# 응답 — 에이전트가 답변의 근거로 삼는 청크.
{
  "items": [
    {
      "content":  "Section 7.3 is superseded by …",
      "metadata": { "doc": "amendment-2024.pdf", "section": "II.4.b" },
      "score":    0.91
    }
    /* … */
  ],
  "routing": {
    "backend":      "pageindex",           // 디스패치된 tier-3 page-index
    "match_source": "learned-history",     // arena · auto-fix · 또는 폴백
    "similarity":   0.92,                  // ≥ 0.88 임계값
    "ttl_remaining":"23d 14h"              // 재벤치마크 전 신선도 윈도우
  }
}

routing 메타데이터는 현재 내부적으로 로깅되며 감사 추적을 통해 노출됩니다. 인라인 응답 전달은 2026년 3분기 동안 순차 출시됩니다.

기존 라우터와 어떻게 다른가

RAG 라우팅은 새로운 아이디어가 아닙니다 — Adaptive-RAG, Probing-RAG 같은 학계의 라우터들은 이미 쿼리를 복잡도로 분류합니다. 차별점은 Divinci가 아키텍처적으로 서로 다른 검색 스택들 사이를 라우팅하고, 그것을 자체 트래픽으로부터 학습하며, 하나의 관리형 엔드포인트 뒤에 제공한다는 점입니다.

제품무엇 사이를 라우팅하는가라우팅 축관리형 여부
Divinci RAG Routing10개 백엔드 (PageIndex, RAPTOR, LightRAG, neo4j, 6개 벡터 엔진)아키텍처 · 이력으로부터 학습예 — 단일 엔드포인트
LlamaIndex RouterRetrieverBYO 리트리버LLM/Pydantic 셀렉터아니오 — 조립해 쓰는 라이브러리
Adaptive-RAG (Jeong et al.)비검색 / 단일 단계 / 반복깊이 · 쿼리 복잡도 분류기연구
Cloudflare AI Search (구 AutoRAG)하나의 하이브리드 파이프라인라우팅 없음
AWS Bedrock Knowledge Bases하나의 하이브리드 파이프라인라우팅 없음
Azure AI Search Agentic Retrieval하이브리드 + 별도 에이전트 모드사용자가 수동으로 모드 선택
VectifyAI PageIndex단일 아키텍처 (계층적 탐색)라우팅 없음OSS 독립 실행

우리 피치의 솔직한 약점: 쿼리별 RAG 라우팅이라는 개념 자체는 새롭지 않습니다. 우리가 라우팅을 발명한 것은 아닙니다. 진정한 차별점은 (a) 깊이 변형이 아니라 아키텍처적으로 서로 다른 스택들 사이를 라우팅한다는 점, (b) PageIndex / RAPTOR / LightRAG 스타일의 계층적 탐색을 별개의 제품이 아닌 일등 백엔드로 포함한다는 점, (c) 직접 조립·운영해야 하는 라이브러리가 아닌 하나의 관리형 엔드포인트로 제공한다는 점 — 이 조합에 있습니다.

라우팅 선호도가 시드되는 방식

당신의 라우팅 모델은 사전 학습되어 있지 않습니다 — 당신의 트래픽으로부터 학습합니다. 세 가지 신호가 라우팅 이력 저장소에 공급됩니다.

  1. 아레나 선택. RAG Arena를 통해 여러 백엔드에 쿼리를 실행하고, 변형들을 나란히 평가한 뒤 승자를 선택합니다. (질문, 승리 백엔드) 쌍이 라우팅 저장소에 기록됩니다.
  2. 오토픽스 출력. 수집 또는 정기 감사 중에 오토픽스가 대표 쿼리들에 대해 비교 검색을 실행하면, 쿼리별 최고 성능 백엔드가 같은 저장소에 기록됩니다.
  3. 프로덕션 피드백. 성공한 쿼리들(우리의 온라인 평가 게이트를 통해 품질 임계값 이상을 기록한 것 — 회귀 테스트 글 참고)은 요청 시점에 (질문 해시, 백엔드) 쌍을 라우팅 저장소에 다시 기록하며, 30일 TTL을 적용해 코퍼스가 진화함에 따라 라우팅 모델이 최신 상태를 유지하도록 합니다.
어디까지 실제로 프로덕션 등급이고 어디서부터 로드맵인가: 1단계와 2단계는 오늘 출시되어 있습니다. 3단계의 자동 피드백 루프는 부분적으로 출시된 상태입니다 — 성공한 쿼리는 다시 기록되지만, Tier 2(BM25 + RRF + reranker)는 현재 자동 라우팅이 아닌 워크플로 노드로 구성됩니다. 라우팅 데이터가 명확한 승리 조건을 보일 때 Tier 2를 자동 라우터에 통합할 예정입니다.

이것이 가장 중요해지는 순간

동질적인 코퍼스에 균일한 쿼리 형태가 들어오는 환경에서는 이점이 거의 없습니다 — 백엔드 하나를 수동으로 선택하면 끝입니다. 진가는 혼합 코퍼스와 혼합 쿼리 형태에서 드러납니다.

"표준 계약서에서 불가항력의 정의는 무엇인가요?"(Tier 1, sub-300 ms)와 "47개의 벤더 계약 전체에서, 비표준 종료 조항이 있는 것은 무엇이며 그 패턴은 어떤가요?"(Tier 3, 수 초의 page-index 탐색)를 모두 묻는 법무 팀은 하나의 백엔드만 고르고 싶지 않습니다. 그들은 간단한 질문이 빠르고 저렴하게 돌아오고, 깊은 질문은 비용이 더 들더라도 정확히 돌아오기를 원합니다 — 두 개의 스택을 운영하지 않고서요.

바로 그 지점이 아키텍처적으로 서로 다른 백엔드들 사이를 라우팅하는 단일 관리형 엔드포인트가 제 값을 하는 사례입니다. 트래픽이 균일하다면 필요하지 않습니다. 트래픽이 혼합되어 있다면 — 대부분의 실제 엔터프라이즈 코퍼스가 그렇습니다 — 필요합니다.