danny-avila/rag_api
ID-based RAG FastAPI: Integration with Langchain and PostgreSQL/pgvector
해결하는 문제
이 프로젝트는 임베딩을 파일 ID별로 정리하는 사용 사례에 특화된 확장 가능한 비동기 API(RAG)를 제공합니다. 이는 파일 수준의 메타데이터를 기반으로 타겟 쿼리를 가능하게 하여 LibreChat과 같은 플랫폼과의 통합을 용이하게 합니다.
작동 방식
API는 FastAPI와 Langchain을 사용하여 구축되었으며, 벡터 스토어로 PostgreSQL에 pgvector 확장(또는 Atlas MongoDB)을 사용합니다. 문서는 청크로 분할되고, OpenAI, Bedrock, VertexAI, Ollama 등 다양한 지원되는 제공자들을 통해 임베딩이 생성되며, 관련 메타데이터와 함께 저장됩니다. 보안을 위해 JWT 토큰을 통해 사용자가 소유한 콘텐츠만 읽거나 삭제할 수 있도록 하는 엄격한 소유권 범위를 구현합니다.
대상 사용자
파일 수준의 문서 관리와 다중 테넌트 보안이 필요한 RAG 애플리케이션을 개발하는 개발자, 또는 LibreChat용 전용 RAG 백엔드를 찾는 사람.
주요 특징
- 다중 제공자 임베딩 지원: OpenAI, Azure, Bedrock, VertexAI, Google GenAI, Ollama, Hugging Face와 호환.
- ID 기반 검색:
file_id별로 임베딩을 정리하여 정확한 파일 기반 쿼리를 가능하게 합니다. - 보안 범위 제어: 결과 순위 매기기 전에 호출자의 소유자 집합을 확인하여 비인가 문서 접근을 방지합니다.
- 비동기 처리: 비동기 작업과 배치 임베딩 처리를 지원하여 제한된 환경에서 메모리 사용량과 성능을 최적화합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트