Cleanup: Deleting 03.Code/업로드용/handlers/doc/custom_doc_type.py

This commit is contained in:
2026-03-19 14:03:28 +09:00
parent af76471878
commit 859b5bc2a0

View File

@@ -1,80 +0,0 @@
# -*- coding: utf-8 -*-
"""
Custom Doc Type Handler
- 사용자가 업로드한 HWPX를 분석하여 새로운 '문서 유형' 생성
- Phase 1~3 전체 프로세스 오케스트레이션
"""
import os
import json
import time
from pathlib import Path
# 도구들
from .doc_type_analyzer import DocTypeAnalyzer
from ..template.doc_template_analyzer import DocTemplateAnalyzer
from ..template.semantic_mapper import SemanticMapper
from .content_analyzer import generate as generate_content_prompt
class CustomDocTypeHandler:
def __init__(self):
self.doc_analyzer = DocTypeAnalyzer()
self.temp_analyzer = DocTemplateAnalyzer()
self.semantic_mapper = SemanticMapper()
def create_from_hwpx(self, file_path: str, doc_name: str,
description: str = "") -> dict:
"""
HWPX 파일을 분석하여 새로운 유저 문서 유형 생성
"""
try:
# 1. HWPX 파싱 (구조/텍스트/XML 추출)
print(f"[Phase 1] Parsing HWPX: {file_path}")
parsed = self.doc_analyzer.parse(file_path)
# 2. 문서 구조 분석 (디자인/레이아웃 추출)
print("[Phase 2] Analyzing Template Layout...")
template_info = self.temp_analyzer.analyze(parsed)
# 3. 시맨틱 맵핑 (섹션 의미/역할 분석)
print("[Phase 3] Semantic Mapping...")
semantic_map = self.semantic_mapper.map_parsed(parsed)
# 4. 콘텐츠 프롬프트 생성 (Placeholder 추출)
print("[Phase 4] Generating Content Prompt...")
content_prompt = generate_content_prompt(
template_info, semantic_map, parsed)
# 5. 결과 조합
result = {
"template_id": None, # 유저 커스텀은 ID 없음
"layout": template_info,
"context": semantic_map.get("context", {}),
"structure": semantic_map.get("structure", {}),
"content_prompt": content_prompt
}
# 6. 설정 파일 생성
config = self.doc_analyzer._generate_config(
doc_name, description, result)
# 7. 파일 시스템 저장
# (이 부분은 실제 환경에 맞춰 조정 필요)
save_dir = self.doc_analyzer.save_doc_type(
config, template=None)
return {
"success": True,
"doc_id": config["id"],
"save_path": save_dir,
"config": config
}
except Exception as e:
import traceback
return {
"success": False,
"error": str(e),
"trace": traceback.format_exc()
}