From a99008128700b168a7feea75818011cdeb61c36a Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 13 Feb 2026 14:58:08 +0900 Subject: [PATCH] =?UTF-8?q?v3:=20README=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20-=20=ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4/=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=EB=8F=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 174 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 119 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index c853413..aeb961a 100644 --- a/README.md +++ b/README.md @@ -1,82 +1,146 @@ -# 글벗 Light v1.0 +# 글벗 Light v3.0 -상시 업무용 HTML 보고서 자동 생성기 +AI 기반 문서 자동화 시스템 — 9단계 RAG 파이프라인 + 웹 편집기 + HWP 변환 -## 🎯 기능 +## 🎯 개요 -- **문서 입력**: HTML 파일 업로드 또는 텍스트 직접 입력 -- **페이지 옵션**: 1페이지 / 2페이지 / N페이지 선택 -- **Claude API**: 각인된 양식으로 자동 변환 -- **다운로드**: HTML, PDF 지원 -- **HWP 변환**: 로컬 스크립트 제공 +다양한 형식의 입력 문서(PDF, HWP, 이미지, 동영상 등)를 분석하여 표준 HTML 보고서를 자동 생성하고, 웹 편집기로 수정한 뒤 HTML/PDF/HWP로 출력하는 시스템입니다. -## 🚀 Railway 배포 +## 📁 프로젝트 구조 -### 1. GitHub에 푸시 - -```bash -git init -git add . -git commit -m "Initial commit" -git remote add origin https://github.com/YOUR_USERNAME/geulbeot-light.git -git push -u origin main +``` +geulbeot_3rd/ +├── app.py # Flask 메인 서버 (579줄) +├── api_config.py # API 키 로더 +├── converters/ +│ ├── pipeline/ # 9단계 RAG 파이프라인 +│ │ ├── router.py # 분기 판단 (긴/짧은 문서) +│ │ ├── step1_convert.py # 파일→PDF 변환 (783줄) +│ │ ├── step2_extract.py # 텍스트/이미지 추출 (788줄) +│ │ ├── step3_domain.py # 도메인 분석 (265줄) +│ │ ├── step4_chunk.py # 청킹 (356줄) +│ │ ├── step5_rag.py # RAG 임베딩 (141줄) +│ │ ├── step6_corpus.py # 코퍼스 생성 (231줄) +│ │ ├── step7_index.py # 인덱싱 + 목차 생성 (504줄) +│ │ ├── step8_content.py # 콘텐츠 생성 (1020줄) +│ │ └── step9_html.py # HTML 생성 (1248줄) +│ ├── html_to_hwp.py # 보고서→HWP 변환 (572줄) +│ └── html_to_hwp_briefing.py # 기획서→HWP 변환 (572줄) +├── prompts/ +│ ├── step1_extract.txt # 구조 추출 프롬프트 +│ ├── step1_5_plan.txt # 배치 계획 프롬프트 +│ └── step2_generate.txt # HTML 생성 프롬프트 +├── static/ +│ ├── css/editor.css # 편집기 스타일 +│ └── js/editor.js # 편집기 기능 +├── templates/ +│ ├── index.html # 메인 UI +│ └── hwp_guide.html # HWP 변환 가이드 +├── output/assets/ # 이미지 에셋 +├── requirements.txt +├── Procfile +└── railway.json ``` -### 2. Railway 연동 +## ⚙️ 프로세스 플로우 -1. [Railway](https://railway.app) 접속 -2. "New Project" → "Deploy from GitHub repo" -3. 저장소 선택 -4. 환경변수 설정: - - `ANTHROPIC_API_KEY`: Claude API 키 - - `SECRET_KEY`: 임의의 비밀 키 +```mermaid +flowchart TB + subgraph INPUT["📥 Input"] + direction TB + A["🗂️ 문서 입력\nPDF, HWP, 이미지, 동영상"] --> B["step1: 파일 변환\nPDF 통일"] + B --> C["step2: 텍스트/이미지 추출\n(GPT API)"] + C --> D{"router.py\n분량 판단\n5000자 기준"} + D -->|"긴 문서"| E["step3: 도메인 분석"] + D -->|"짧은 문서"| H + E --> F["step4: 청킹"] + F --> G["step5: RAG 임베딩"] + G --> H["step6: 코퍼스 생성"] + H --> I["step7: 인덱싱 + 목차 생성\n(GPT API)"] + end -### 3. 배포 완료 + subgraph OUTPUT["📤 Output"] + direction TB + I --> J["step8: 콘텐츠 생성\n(Gemini API)"] + J --> K["step9: HTML 생성\n(Gemini API)"] + end -Railway가 자동으로 빌드 및 배포합니다. + subgraph EDIT["✏️ Edit"] + direction TB + K --> M["웹 편집기\neditor.js"] + K --> N["AI 편집\n/refine (Claude API)"] + end + + subgraph EXPORT["📦 Export"] + direction TB + M & N --> P["HTML / PDF"] + M & N --> Q["HWP 변환\nhtml_to_hwp.py"] + end +``` + +## 🌐 API 라우트 + +| 라우트 | 메서드 | 기능 | +|--------|--------|------| +| `/` | GET | 메인 페이지 | +| `/generate` | POST | 기획서 생성 (1단계→1.5단계→2단계) | +| `/generate-report` | POST | 보고서 생성 (9단계 파이프라인) | +| `/refine` | POST | AI 전체 수정 | +| `/refine-selection` | POST | AI 부분 수정 | +| `/export-hwp` | POST | HWP 변환 | +| `/download/html` | POST | HTML 다운로드 | +| `/download/pdf` | POST | PDF 다운로드 | +| `/health` | GET | 서버 상태 확인 | + +## 🤖 활용 AI + +| 단계 | AI | 역할 | +|------|-----|------| +| step2 (추출) | GPT | PDF에서 텍스트/이미지 메타데이터 추출 | +| step7 (목차) | GPT | 인덱싱 및 목차 자동 생성 | +| step8 (콘텐츠) | Gemini | 섹션별 본문 초안 생성 | +| step9 (HTML) | Gemini | 최종 HTML 보고서 생성 | +| 기획서 생성 | Claude | HTML 구조 추출 + 변환 | +| AI 편집 | Claude | 피드백 반영 수정 | + +## 🎨 글벗 표준 HTML 양식 + +- A4 인쇄 최적화 (210mm × 297mm) +- Noto Sans KR 폰트 +- Navy 계열 색상 (#1a365d 기본) +- 구성: page-header, lead-box, section, data-table, bottom-box, footer ## 🖥️ 로컬 실행 ```bash -# 가상환경 생성 -python -m venv venv -source venv/bin/activate # Windows: venv\Scripts\activate - -# 패키지 설치 pip install -r requirements.txt - -# 환경변수 설정 -export ANTHROPIC_API_KEY="your-api-key" - -# 실행 python app.py ``` http://localhost:5000 접속 -## 📁 프로젝트 구조 +## 🔑 API 키 설정 -``` -geulbeot-light/ -├── app.py # Flask 메인 앱 -├── templates/ -│ ├── index.html # 메인 페이지 -│ └── hwp_guide.html # HWP 변환 가이드 -├── prompts/ -│ └── system_prompt.txt # Claude 시스템 프롬프트 -├── requirements.txt -├── Procfile -├── railway.json -└── README.md +`api_keys.json` 파일을 프로젝트 루트에 생성: + +```json +{ + "CLAUDE_API_KEY": "sk-ant-...", + "GPT_API_KEY": "sk-proj-...", + "GEMINI_API_KEY": "AIzaSy..." +} ``` -## 🎨 각인된 양식 +> ⚠️ `api_keys.json`은 `.gitignore`에 포함되어 Git에 올라가지 않습니다. -- A4 인쇄 최적화 (210mm × 297mm) -- Noto Sans KR 폰트 -- Navy 계열 색상 (#1a365d 기본) -- 구성요소: page-header, lead-box, section, data-table, bottom-box 등 +## 📝 v1 → v3 변경 이력 + +| 버전 | 변경 내용 | +|------|----------| +| v1 | Flask + Claude API 기획서 생성기 (12파일, 422줄) | +| v2 | 웹 편집기 추가 (editor.js, editor.css) | +| v3 | 9단계 RAG 파이프라인 + HWP 변환 추가 (40파일+, 6000줄+) | ## 📝 라이선스 -Private - GPD 내부 사용 +Private — GPD 내부 사용 \ No newline at end of file