본문 바로가기
AI2026년 5월 19일4분 읽기

Perplexity 스타일 검색 파이프라인 — 0에서 만드는 RAG+웹검색 통합

YS
김영삼
조회 440
Perplexity 스타일 검색 파이프라인 — 0에서 만드는 RAG+웹검색 통합

핵심 요약

"답하는 검색"의 핵심은 모델이 아니라 파이프라인이다. 질문 분류 → 다중 소스 검색 → 리랭킹 → 인용 강제 → 스트리밍 응답. 사내 도메인 자료(2.4만 문서) + 웹 검색을 결합한 답변형 어시스턴트를 6주 만에 만들어 사내 검색 사용자가 일 2,800명까지 늘었다. 직접 만든 비용이 SaaS 대비 1/8 수준.

1. 아키텍처 한눈에

질문 → [분류기 Haiku 4.5] → web? / docs? / both?
       ↓ both
   [Brave Search API] + [pgvector 검색] → top 12
       ↓
   [Cohere Rerank 3.5] → top 5
       ↓
   [Sonnet 4.6, 인용 강제 system 프롬프트] → 스트리밍 응답

2. 질문 분류 — Haiku로 충분

"오늘 환율"·"최근 뉴스"는 웹 검색, "사내 휴가 규정"은 내부 검색, "PostgreSQL 18 신기능 우리 코드에 적용하는 법"은 둘 다. Haiku 4.5에 5-shot 프롬프트로 95% 정확도.

3. 임베딩 + pgvector

CREATE INDEX docs_emb_idx ON docs
USING hnsw (embedding vector_cosine_ops) WITH (m=16, ef_construction=64);

Voyage 3 임베딩 1024차원. 2.4만 문서 인덱스 빌드 4분. 검색 p50 38ms.

4. 웹 검색 — Brave / Tavily 비교

API단가/1K한국어 결과 품질
Brave Search$3중상
Tavily$8상(요약 포함)
SerpAPI$5

Tavily는 결과에 본문 추출이 포함돼 별도 스크래핑이 줄어든다. 단가는 비싸지만 종합 비용은 비슷.

5. 리랭킹 — Cohere Rerank 3.5

BM25만 쓸 때 hit rate@5 71% → Rerank 적용 후 89%. 12개를 5개로 줄이면서 LLM 입력 토큰도 60% 감소.

6. 인용 강제 system 프롬프트

system = '''
답변 중 사실 진술은 반드시 [1] 형식으로 인용한다.
인용이 불가능한 정보는 답변에 포함하지 않는다.
출처는 마지막에 번호 목록으로 표시한다.
'''

이 한 줄로 환각률이 측정 가능한 수준에서 12% → 2.4%로 떨어졌다. citation 베타 헤더를 추가하면 source span을 자동 표시도 가능.

7. 스트리밍 — SSE + 점진적 인용 표시

토큰을 받으며 인용 마커를 만나면 프론트에서 작은 footnote 뱃지를 즉시 렌더. 사용자가 답변이 끝나기 전에 출처를 클릭할 수 있어 체감 만족도가 크다.

8. 비용 — 일 5,000 질의 기준

항목월 비용
Brave 검색$450
Voyage 임베딩(증분)$30
Rerank$60
Sonnet 4.6 답변(캐시 적용)$720
합계$1,260

유사 SaaS(엔터프라이즈 플랜) 월 $9,800 대비 87% 절감.

자주 묻는 질문

Q. 한국어 BM25 토크나이저는? Postgres라면 pg_search + Mecab. 또는 OpenSearch에 nori. 한국어는 형태소 분석이 hit rate 차이를 크게 낸다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록