피드로 돌아가기
I published my first Python package — a reusable RAG core library
Dev.toDev.to
AI/ML

FAISS와 Ollama 기반의 Local-first RAG 프레임워크 pyragcore 설계

I published my first Python package — a reusable RAG core library

Vlad2026년 5월 1일1intermediate

Context

RAG 시스템 구축 시 반복되는 Vector Store 설정, Embeddings, Chunking 등 Boilerplate 코드의 중복 작성 문제 발생. 매 프로젝트마다 인프라를 재구축해야 하는 비효율적인 개발 워크플로우를 개선하기 위한 라이브러리 필요성 대두.

Technical Solution

  • FAISS 기반의 Vector Store 도입을 통한 로컬 데이터 Persistence 및 고속 유사도 검색 구현
  • SentenceTransformers와 Ollama의 조합으로 외부 API 의존성을 제거한 완전한 Local Inference 환경 구축
  • MMR(Maximal Marginal Relevance) 지원을 통한 검색 결과의 다양성 확보 및 정보 중복 제거
  • Abstract Base Class 설계를 통한 파이프라인 확장성 확보 및 사용자 정의 Ingestion 로직 구현 지원
  • Modular Installation 구조 채택으로 필요한 구성 요소만 선택적으로 설치하여 종속성 최소화
  • Metadata Filtering 기능을 통한 검색 정밀도 향상 및 효율적인 데이터 관리 체계 구축

- 데이터 보안이 중요한 프로젝트의 경우 Local LLM과 Vector Store 조합 검토 - RAG 파이프라인 설계 시 Abstract Base Class를 활용하여 확장 가능한 인터페이스 정의 - 검색 결과의 다양성을 높이기 위해 단순 Cosine Similarity 외에 MMR 알고리즘 적용 고려

원문 읽기