개인 프로젝트 / 문서 RAG
포트폴리오 문서 RAG
제 문서를 바탕으로 포트폴리오에 관한 질문에 답하던 도우미입니다. VPS의 ChromaDB로 내용을 검색하고 외부 API를 통해 모델을 호출했습니다.
사용자 질문
포트폴리오의 어떤 프로젝트에서 벡터 검색을 사용하나요?
문맥 검색
문맥 기반 답변
문서 RAG 프로젝트는 벡터 검색으로 관련 구절을 찾은 뒤 답변을 생성합니다 [1][2].
- [1] RAG 프로젝트
- [2] 문서 저장소
사용자 질문이 검색을 거쳐 출처가 포함된 문맥 기반 답변으로 이어지는 과정을 간결하게 보여 줍니다.
배경
방문자가 페이지를 일일이 열지 않고도 제 프로젝트와 Markdown 노트에 대해 질문할 수 있도록 이전 포트폴리오에 이 도우미를 통합했습니다.
Ollama로 로컬 모델을 시험한 뒤 검색은 VPS에 남기고 생성은 외부 API로 옮겼습니다.
작동 방식과 아키텍처
문서를 미리 준비하는 단계와 질문마다 관련 구절을 검색하는 단계로 구성했습니다.
색인
Markdown 파일을 구절 단위로 나누고 embeddings로 변환한 뒤 ChromaDB에 색인했습니다. 질의를 처리하기 전에 진행하는 준비 단계였습니다.
ChromaDB는 Linux VPS에서 Docker로 실행했습니다.
질의 전 Markdown 말뭉치 준비 과정: 문단, embeddings, ChromaDB 저장.
질의
Node.js가 질문을 받아 ChromaDB에서 관련 구절을 검색했습니다. 검색한 문맥을 prompt에 담아 외부 API로 모델을 호출하고, 생성된 답변을 Astro 화면에 점진적으로 표시했습니다.
구성 요소
- 인터페이스
- Astro
- 말뭉치
- Markdown
- 오케스트레이션
- Node.js
- 검색
- ChromaDB
- 생성
- 외부 API를 통한 모델 호출
- 인프라
- ChromaDB용 Docker / Linux VPS
한계
이 프로토타입의 품질, 지연 시간, 답변 가능 범위에 관한 정량 측정 자료는 없습니다.
추가로 평가할 항목
- 말뭉치의 최신성과 추적 가능성;
- 대표 질문을 활용한 검색 평가;
- 비공개 문서의 접근 권한 관리;
- 출처 표시와 불확실성의 명시적 처리.
