rag-web-ui/rag-web-ui
RAG Web UI is an intelligent dialogue system based on RAG (Retrieval-Augmented Generation) technology.
What it solves
RAG Web UI는 사설 지식베이스를 기반으로 지능형 Q&A 서비스를 구축하기 위한 완전한 시스템을 제공합니다. 대규모 언어 모델(LLM)이 모델의 일반 학습 데이터에만 의존하지 않고, 사용자가 제공한 특정 문서에 근거한 정확하고 신뢰할 수 있는 답변을 제공하도록 하는 문제를 해결합니다.
How it works
시스템은 Retrieval-Augmented Generation(RAG) 파이프라인을 사용합니다:
- Document Ingestion: 사용자는 문서(PDF, DOCX, Markdown, Text)를 업로드하고, 이는 MinIO에 저장됩니다. 시스템은 비동기적으로 텍스트를 추출하고 청크로 분할한 뒤, 임베딩 서비스를 이용해 해당 청크를 벡터로 변환합니다.
- Storage: 이러한 벡터는 벡터 데이터베이스(ChromaDB 또는 Qdrant)에 저장됩니다.
- Query Process: 사용자가 질문을 하면 시스템은 쿼리를 임베딩하고, 벡터 데이터베이스에서 가장 관련성 높은 문서 청크를 검색한 뒤, Cross‑Encoder로 재순위화하고, 조합된 컨텍스트를 LLM에 전달해 최종 응답을 생성합니다.
- Integration: OpenAI, DeepSeek, MiniMax 및 Ollama를 통한 로컬 모델 등 다양한 LLM 제공자를 지원하며, 외부 접근을 위한 OpenAPI 인터페이스를 제공합니다.
Who it’s for
이 프로젝트는 사용자 친화적인 웹 인터페이스를 갖춘 사설 문서 기반 AI 채팅 시스템을 배포하고자 하는 사용자와, RAG 아키텍처의 레퍼런스 구현을 찾는 개발자를 위해 설계되었습니다.
Highlights
- Flexible LLM Support: 클라우드 서비스(OpenAI, DeepSeek, MiniMax)와 로컬 배포(Ollama)를 모두 지원합니다.
- Multi-Format Support: PDF, DOCX, Markdown, Text 파일을 처리합니다.
- Vector DB Choice: Factory 패턴을 통해 ChromaDB와 Qdrant를 모두 지원합니다.
- Full-Stack Architecture: FastAPI 백엔드와 Next.js 14 프론트엔드, MinIO를 결합한 분산 객체 스토리지를 사용합니다.
- Citations: 대화 중에 참고 인용을 지원하여 답변의 투명성을 보장합니다.