feat: 완전한 웹 UI 구현 및 문서 처리 파이프라인 완성
✨ 새로운 기능: - FastAPI 기반 완전한 웹 UI 구현 - 반응형 디자인 (모바일/태블릿 지원) - 드래그앤드롭 파일 업로드 인터페이스 - 실시간 AI 챗봇 인터페이스 - 문서 관리 및 검색 시스템 - 진행률 표시 및 상태 알림 🎨 UI 구성: - 메인 대시보드: 서버 상태, 통계, 빠른 접근 - 파일 업로드: 드래그앤드롭, 처리 옵션, 진행률 - 문서 관리: 검색, 정렬, 미리보기, 다운로드 - AI 챗봇: 실시간 대화, 문서 기반 RAG, 빠른 질문 🔧 기술 스택: - FastAPI + Jinja2 템플릿 - 모던 CSS (그라디언트, 애니메이션) - Font Awesome 아이콘 - JavaScript (ES6+) 🚀 완성된 기능: - 파일 업로드 → 텍스트 추출 → 임베딩 → 번역 → HTML 생성 - 벡터 검색 및 RAG 기반 질의응답 - 다중 모델 지원 (기본/부스팅/영어 전용) - API 키 인증 및 CORS 설정 - NAS 연동 및 파일 내보내기
This commit is contained in:
@@ -73,8 +73,10 @@ class DocumentPipeline:
|
||||
translated.append(content.strip())
|
||||
return translated
|
||||
|
||||
def build_html(self, doc_id: str, title: str, ko_text: str) -> str:
|
||||
html_path = self.output_dir / "html" / f"{doc_id}.html"
|
||||
def build_html(self, basename: str, title: str, ko_text: str) -> str:
|
||||
# Ensure .html suffix and sanitize basename
|
||||
safe_base = Path(basename).stem + ".html"
|
||||
html_path = self.output_dir / "html" / safe_base
|
||||
html = f"""
|
||||
<!doctype html>
|
||||
<html lang=\"ko\">\n<head>\n<meta charset=\"utf-8\"/>\n<title>{title}</title>\n<style>
|
||||
@@ -102,6 +104,7 @@ h1{{font-size: 1.6rem; margin-bottom: 1rem;}}
|
||||
summarize: bool = False,
|
||||
summary_sentences: int = 5,
|
||||
summary_language: str | None = None,
|
||||
html_basename: str | None = None,
|
||||
) -> PipelineResult:
|
||||
parts = chunk_text(text, max_chars=1200, overlap=200)
|
||||
|
||||
@@ -124,7 +127,8 @@ h1{{font-size: 1.6rem; margin-bottom: 1rem;}}
|
||||
html_path: str | None = None
|
||||
if generate_html:
|
||||
title_suffix = "요약+번역본" if (summarize and translate) else ("요약본" if summarize else ("번역본" if translate else "원문"))
|
||||
html_path = self.build_html(doc_id, title=f"문서 {doc_id} ({title_suffix})", ko_text="\n\n".join(translated))
|
||||
basename = html_basename or f"{doc_id}.html"
|
||||
html_path = self.build_html(basename, title=f"문서 {doc_id} ({title_suffix})", ko_text="\n\n".join(translated))
|
||||
|
||||
return PipelineResult(doc_id=doc_id, html_path=html_path, added_chunks=added, chunks=len(translated))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user