import gradio as gr from transformers import pipeline # 한국어 이메일 요약 모델 로딩 summarizer = pipeline("summarization", model="digit82/kobart-summarization") # 이메일 요약 함수 def summarize_email(email_text): max_length = 500 # 최대 입력 텍스트 길이 제한 if len(email_text.strip()) < 20: return "⚠️ 요약할 내용이 너무 짧습니다." elif len(email_text) > max_length: return f"⚠️ 입력 텍스트가 너무 깁니다. 최대 {max_length}자까지 입력할 수 있습니다." try: summary = summarizer(email_text, max_length=45, min_length=5, do_sample=False) return summary[0]['summary_text'] except Exception as e: return f"⚠️ 요약 중 오류가 발생했습니다: {str(e)}" # Gradio 웹 인터페이스 정의 demo = gr.Interface( fn=summarize_email, inputs=gr.Textbox(lines=5, label="✉️ 이메일 내용 입력", max_lines=10), outputs=gr.Textbox(label="📌 요약 결과"), title="이메일 요약기", description="한국어 이메일을 자동으로 1~2줄로 요약해주는 웹앱입니다. (최대 500자)", theme="soft" ) # 앱 실행 demo.launch()