quivr
무엇인가
quivr-core는 LLM 애플리케이션에 검색 증강 생성(RAG) 계층을 붙이는 Python 패키지다. 문서 인제스트, 임베딩 저장, 검색, 채팅 응답까지의 흐름을 미리 정해 둔 형태로 제공한다. 애플리케이션 코드 안에서 RAG 파이프라인을 직접 조립하는 자리를 대신한다.
어떻게 동작하나
동작은 워크플로 정의에서 시작한다. basic_rag_workflow.yaml 같은 YAML 파일에 검색과 생성 단계를 적고, 그 설정으로 Brain 객체를 만든다. 파일을 인제스트하면 파서가 텍스트를 나누고 임베딩이 벡터스토어에 저장된다. 채팅을 실행하면 질의가 같은 벡터스토어에서 검색되고, 검색 결과가 LLM 호출의 컨텍스트로 들어간다. LLM은 OpenAI·Anthropic·Mistral API 또는 Ollama 로컬 모델을 쓰고, 벡터스토어는 PGVector나 Faiss를 쓴다. 파일 인제스트는 Megaparse와 연동한다.
무엇과 다른가
차이는 검색 전략을 코드가 아니라 설정 파일로 바꾸는 데 있다. RAG를 직접 구현하면 파서, 청킹, 벡터스토어, 프롬프트가 애플리케이션 코드에 흩어지고 전략을 바꿀 때마다 코드를 고쳐야 한다. Quivr는 그 결정을 미리 내려 둔 opinionated RAG를 제공하고, 바꿀 지점을 YAML로 노출한다. LLM과 벡터스토어도 교체 가능한 구성 요소로 다룬다.
어떻게 쓰나
설치는 pip install quivr-core로 끝나고, 사용할 LLM의 API 키를 환경 변수에 넣는다. 워크플로 YAML을 작성한 뒤 기본 설정으로 Brain을 만들고 Chat을 실행하면 인제스트한 파일에 대해 질문할 수 있다. 인터넷 검색이나 도구 호출은 워크플로에 단계를 추가하는 방식으로 확장한다.
전제와 한계
Python 3.10 이상이 필요하다. LLM 호출에는 Anthropic·OpenAI·Mistral API 키나 로컬 Ollama 실행 환경이 있어야 한다. 파서는 자체 구현을 추가할 수 있지만, 검색과 생성 흐름 자체는 미리 정해진 워크플로 구조를 따른다.
관련 논문 5
유사 도구
- UltraRAGRAG 구성 요소를 MCP 서버로 분리하고 YAML로 분기·루프를 선언해 파이프라인을 조립하는 저코드 프레임워크다. 캔버스와 코드를 동기화하는 IDE를 포함한다.
- haystack검색·라우팅·메모리·생성을 명시적 파이프라인과 에이전트 워크플로로 조립하는 Python LLM 오케스트레이션 프레임워크다.
- llama_index사설 데이터를 수집·구조화해 LLM이 검색·질의할 수 있게 하는 Python 프레임워크다. 코어와 300여 개 통합 패키지를 조합해 RAG·에이전트 앱을 만든다.
- onyxLLM 애플리케이션 계층으로, RAG·웹 검색·코드 실행·에이전트를 갖춘 셀프호스팅 AI 채팅 플랫폼이다. 50개 이상 커넥터로 사내 데이터를 색인한다.
- ragasLLM 애플리케이션 출력을 LLM 기반·전통 메트릭으로 채점하고, 프로덕션 데이터에서 테스트셋을 자동 생성하는 Python 평가 라이브러리다.
- langroid에이전트에 LLM·벡터스토어·도구를 붙이고 태스크를 맡겨 메시지로 협업시키는 Python 멀티에이전트 프레임워크다. LangChain에 의존하지 않는다.