AutoDoc Tree
Links
2025~Present. 업로드/작성 문서를 자동으로 가상 폴더 트리로 정리하고, 사용자 피드백으로 개인화되는 멀티테넌트 문서 자동 정리 서비스.
(업데이트 기준: 2026-03)
Tech Stack
- Kotlin
- Spring Boot
- React (TypeScript)
- PostgreSQL
- OpenSearch (BM25 + Vector Hybrid/RRF)
- Redis
- S3/MinIO
- Outbox + Worker
- Micrometer + Prometheus + Grafana
- Apache Tika
- Multi-tenant Architecture (Workspace = Tenant)
- Ollama (Embedding/LLM, optional)
- Reranker API / Structure Worker (optional)
Overview
문서를 업로드/작성하면 의미 기반으로 자동 분류해 2-depth 가상 트리 스냅샷을 생성하는 문서 자동 정리 서비스
사용자 수정(이동/이름변경/락/설명 수용) + 질문 응답(Active Learning)을 학습 신호로 반영해 워크스페이스별 분류 품질이 점진적으로 개선되는 구조
Architecture
API/BFF 계층과 비동기 Worker 계층을 분리하고 Outbox 이벤트로 ingest, embedding, indexing, tree generation을 연결
Workspace 스코프를 API/DB/OpenSearch/Redis/Object Storage 전 구간에 강제하고 fail-closed 정책으로 멀티테넌트 안전성 보장
스냅샷은 ACTIVE/RECOMMENDED 모델을 사용하며, rebuild debounce/coalesce + node lock으로 구조 흔들림 최소화
검색은 workspace 필터 강제 하에 BM25 + kNN Hybrid(RRF)로 동작
Data Flow
Upload/Write → (Attachment presign/complete) → Parse(Tika) → Section/Chunk → Embedding(문서/요약/섹션) → OpenSearch Indexing → Tree Snapshot Build
User Feedback(move/rename/lock/explain-accept) + Questions + Admin Rules → 신호 적재 → 다음 리빌드 시 정책/가중치 반영
Ops
stage-level idempotency key (workspace_id, document_id, stage, input_hash, model_version) + retry/backoff + DLQ + replay로 재처리 안정성 확보
trace_id/request_id 전파, stage 성공률/지연/트리 품질 메트릭 기반 운영 가시성 강화
민감정보(문서 본문/추출 텍스트/청크 원문/presigned URL) 로그 금지 및 마스킹 정책 적용
관리자 기능: tree policy, debug(neighbors/docs/clusters/rebuilds), rules, question control/analytics, job retry
Architecture Diagram
diagram rendering...