RAG(Retrieval-Augmented Generation) 시스템으로 사내 문서와 외부 지식을 통합하여 정확하고 신뢰할 수 있는 AI 기반 답변을 제공합니다.
문서 기반 질의응답부터 실시간 모니터링까지, 엔터프라이즈 환경에 최적화된 기능을 제공합니다.
TOPIK 어휘, MDN, 한국어 사전, 업무 문서 등 다중 소스를 통합하여 문맥에 맞는 정확한 답변을 제공합니다.
PDF, DOCX, HWP, HWPX, Excel, 텍스트, 마크다운은 물론 Python, JavaScript 등 코드 파일까지 처리합니다. PaddleOCR로 스캔 PDF도 지원합니다.
로컬 LLM(Ollama) 및 오프라인 임베딩 모드로 네트워크 제한 환경에서도 안전하게 운영 가능합니다.
시스템 상태, 인제스트 진행률, 벡터 수를 실시간으로 확인하고 관리할 수 있습니다.
Cross-Encoder 기반 재순위화로 검색 결과의 관련성을 높여 더 정확한 컨텍스트를 제공합니다.
Server-Sent Events 기반 토큰 스트리밍으로 답변이 생성되는 즉시 화면에 표시하여 체감 응답 속도를 대폭 개선합니다.
파일 수정 시간과 해시를 비교하여 변경된 문서만 업데이트하고 삭제된 문서는 자동 제거합니다.
PaddleOCR GPU 가속 OCR로 스캔 PDF 및 이미지에서 한국어 텍스트를 93~95% 정확도로 추출합니다.
3계층 구조로 설계되고 Docker 컨테이너 6개로 구성되어 확장 가능하고 안정적인 RAG 플랫폼
정적 리소스 서빙 및 REST API 호출을 통한 사용자 인터페이스 제공
질의 처리, 인제스트 관리, 설정 API를 제공하는 고성능 백엔드
벡터, 키워드, 메타데이터를 통합 저장하고 하이브리드 검색을 수행하는 통합 DB
비동기 인제스트 작업 상태 관리 및 캐시 처리
로컬 환경에서 실행되는 대규모 언어 모델 추론 엔진
PaddleOCR 기반 한국어 OCR 마이크로서비스 (93~95% 정확도, GPU 가속)
검증된 오픈소스 기술과 최신 AI 프레임워크의 조합
Python 3.10 / CUDA 12.1
고성능 비동기 웹 프레임워크로 REST API 및 SSE 스트리밍 엔드포인트 제공
Core Framework
문서 인덱싱과 RAG 파이프라인 오케스트레이션 담당
pgvector/pgvector:pg16
벡터 + 전문 검색(tsvector) + 메타데이터를 통합 관리하는 하이브리드 검색 DB
ollama:0.14.2 / qwen2.5:3b-instruct-q4_K_M
로컬 LLM 호스팅으로 프라이버시 보장 및 오프라인 지원
multilingual-e5-base (768dim)
다국어 지원 임베딩 모델로 한국어 문서 처리에 최적화
Cache & Queue
비동기 작업 상태 관리 및 고속 캐시 처리
V2 / 6개 서비스
API, OCR, UI, DB, Cache, LLM 6개 서비스를 통합 관리
paddleocr 2.7.3 / CUDA 11.8
한국어 OCR 93~95% 정확도, GPU 가속 PDF/이미지 텍스트 추출
Code Parser
코드 파일의 구조적 파싱으로 함수/클래스 단위 추출
문서 수집부터 답변 생성까지의 전체 파이프라인
FastAPI 기반의 체계적인 REST API 구조
| 메서드 | 경로 | 설명 |
|---|---|---|
| POST | /rag/query |
질문 전송, 응답 및 출처 수신 |
| POST | /rag/query/stream |
SSE 실시간 토큰 스트리밍 질의 (meta → delta → final → done) |
| GET | /rag/status |
시스템 전체 헬스 상태 조회 |
| POST | /rag/ingest |
선택한 소스로 인제스트 작업 시작 |
| GET | /rag/ingest |
최근/활성 인제스트 작업 상태 조회 |
| POST | /rag/ingest/control/stop |
실행 중인 인제스트 작업 안전 중지 |
| POST | /rag/ingest/chunk-count |
소스별 저장된 청크 개수 조회 |
| GET | /rag/documents |
업로드된 문서 목록 조회 |
| POST | /rag/documents |
새 문서 저장 및 인제스트 트리거 |
| GET | /rag/system-prompt |
현재 시스템 프롬프트 조회 |
| POST | /rag/system-prompt |
시스템 프롬프트 변경 |
| GET | /rag/embed-config |
임베딩 구성 조회 |
| POST | /rag/embed-config |
임베딩 모드(온라인/오프라인) 전환 |
| GET | /rag/ollama-models |
Ollama 모델 목록 조회 |
| GET | /health |
API 준비 상태 확인 |
| GET | /gpu |
CUDA/GPU 사용 가능 여부 확인 |
| GET | /pgvector/heartbeat |
PostgreSQL + pgvector 헬스체크 |
| GET | /pgvector/stats |
PostgreSQL 문서 청크 통계 조회 |
| GET | /pgvector/vector-stream |
벡터 수 실시간 SSE 스트림 |
| GET | /redis/health |
Redis 연결 상태 확인 |
다양한 문서 및 코드 파일을 처리할 수 있습니다
PyMuPDF로 텍스트를 추출하고, 스캔 PDF는 PaddleOCR로 한국어 텍스트를 인식합니다.
python-docx로 Word 문서, openpyxl로 Excel 파일의 텍스트를 추출합니다.
HWP는 PrvText 스트림 추출, HWPX는 XML 파싱으로 한글 문서를 처리합니다.
일반 텍스트 및 마크다운 파일을 Markdown 중간 정규화를 거쳐 처리합니다.
tree-sitter로 함수/클래스 단위의 구조적 파싱을 수행합니다.
다양한 프로그래밍 언어의 코드를 구조적으로 분석합니다.