LLM 기반 지정문서 생성 시스템
1. 프로젝트 소개
본 프로젝트는 사용자가 지정한 대상 문서의 시각적 레이아웃, 글꼴 서식, 논리적 구조를 그대로 보존한 상태에서 사용자의 요구사항과 참고 문서의 내용을 바탕으로 새로운 문서를 자동 생성하는 에이전틱 시스템입니다.
주요 기능 및 특징
- 서식 및 레이아웃 보존: PaddleOCR과 Tesseract, 자체 폰트 분석기를 결합하여 원본 문서의 위치 배열 및 스타일을 정밀하게 추출합니다.
- 의미론적 문서 분석: Qwen LLM을 활용해 문서 내 텍스트 블록들의 역할(제목, 본문, 메타데이터 등)을 분석하고 스키마로 구조화합니다.
- OCR 기반 문서 분석: 스크린샷으로 되어있는 문서도 처리할 수 있습니다.
- 에이전트 기반 정보 처리: 새 문서를 생성하기 위해 LLM 에이전트(OpenAI)가 자체적으로 도구를 호출하여 참고 문서를 검색(Semantic + BM25 하이브리드 검색)하고 필요한 정보를 수집하여 내용을 합성합니다.
- Web UI: React 기반의 인터페이스를 통해 시스템을 사용할 수 있습니다.
문서 처리 및 생성 워크플로우
시스템에 문서가 업로드되어 새로운 문서가 생성되기까지 다음과 같은 일련의 과정을 거칩니다.
- 문서 전처리: 문서가 업로드되면 OCR을 통해 텍스트 위치와 레이아웃을 추출하고, 폰트 및 시각적 속성을 분석하며, LLM을 이용해 각 텍스트 블록의 역할과 문서의 논리적 스키마를 파악합니다.
- 데이터 색인: 분석이 완료된 문서는 메타데이터 및 구조 정보와 함께 저장되어 이후 ‘참고 문서’로 활용될 수 있는 상태가 됩니다.
- 대상 문서 지정: 사용자는 시스템에 등록된 문서 중 하나를 선택하여 서식과 구조를 따라할 ‘대상 문서’로 지정합니다.
- 에이전트 기반 컨텐츠 생성: 사용자가 새 문서 생성을 요청하면, AI 에이전트가 대상 문서의 시맨틱 스키마를 바탕으로 채워 넣을 내용을 계획합니다. 이때 에이전트는 도구를 사용해 DB에 저장된 다른 참고 문서들을 검색 및 조회하여 요구사항에 맞는 내용을 작성합니다.
- 최종 렌더링: 에이전트가 생성한 텍스트 내용과 대상 문서에서 추출했던 위치/폰트/스타일 정보를 결합하여, 원본과 동일한 양식을 가진 새로운 문서가 시각적으로 렌더링됩니다.
2. 소개 영상
(추가예정)
3. 팀 소개
| 이름 | 역할 분담 | 깃허브 링크 |
|---|---|---|
| 윤여민 | OCR 인식기, 전처리 오케스트레이터, WebUI 풀스택 개발 | jsonmona |
| 최진아 | 문서 RAG 검색 시스템, 문단별 분석 파이프라인 | dkwlsdk |
※ 문서 생성 파이프라인은 공통 파트로 함께 작업하였습니다.
4. 시작하기
시스템을 설정하고 실행하는 방법은 다음 문서를 참고하세요.
5. 기타
아키텍처 및 기술 스택
- Backend: Python, FastAPI, SQLAlchemy, SQLite, ChromaDB
- Frontend: React, Mantine UI, TanStack Query & Router
- AI 파이프라인: PaddleOCR-VL, Tesseract, OpenAI-compatible API