Next.js 기반 RAG 스타터 키트 공개, 반복 구축 피하려 패키징

PDF나 웹페이지 같은 문서를 불러와 잘게 나누고(청킹), 벡터로 변환(임베딩)해 저장한 뒤 이를 바탕으로 LLM과 대화하는 파이프라인을 매번 새로 만드는 대신 재사용 가능한 스타터 키트로 만들었다. 구성은 Next.js 프레임워크, 채팅 응답은 모델을 SSE 스트리밍 방식으로 처리, 문서 임베딩은 Voyage AI, 벡터 저장소는 을 사용하며 사용자별로 네임스페이스를 분리해 데이터를 격리한다. 웹페이지 스크래핑은 헤드리스 브라우저 없이도 서버리스 환경에서 돌아가도록 Cheerio 라이브러리를 사용했다.

단순 데모용 래퍼가 아니라 실제 클라이언트 프로젝트에서 반복적으로 만들었던 청킹 전략, 유사도 임계값, 멀티테넌트 네임스페이스 분리, Redis 없이 처리하는 요청 제한 로직 등 실제 운영에 쓰는 코드를 담았다. Vercel에 환경변수 3개만으로 배포할 수 있다.

핵심 포인트

  • 문서를 청킹·임베딩해 벡터DB에 저장하고 LLM과 대화하는 스타터 키트
  • Next.js + (SSE 스트리밍) + Voyage AI 임베딩 + (사용자별 네임스페이스) 스택
  • 헤드리스 브라우저 없이 Cheerio로 서버리스 환경에서 웹 스크래핑 가능
  • Redis 없이 구현한 요청 제한() 로직 포함
  • Vercel에 환경변수 3개로 배포 가능
원문 보기