import streamlit as st from transformers import pipeline import re def replace_multiple_spaces(text): return re.sub(r'\s+', ' ', text) pipe = pipeline("summarization", model="gangyeolkim/kobart-korean-summarizer-v2") assistant_icon_path = "https://huggingface.co/spaces/randmimc/aitom/resolve/main/chat_icon/assistant.ico" user_icon_path = "https://huggingface.co/spaces/randmimc/aitom/resolve/main/chat_icon/user01.png" # 세션 상태에서 approval_state 및 messages 초기화 if "approval_state" not in st.session_state: st.session_state.approval_state = "require" if "messages" not in st.session_state: st.session_state.messages = [] # Custom CSS to align messages and wrap text st.markdown(""" """, unsafe_allow_html=True) # Display chat messages from history for message in st.session_state.messages: if message["role"] == "user": st.markdown( f"""
{message["content"]}
""", unsafe_allow_html=True) else: st.markdown( f"""
{message["content"]}
""", unsafe_allow_html=True) # Start with an assistant message if not st.session_state.messages: st.session_state.messages.append({ "role": "assistant", "avatar": assistant_icon_path, "content": """더아이엠씨에 aitom은 현재 공사중에 있습니다. 하지만 ! 간단히 활용해 보실 수 있는 요약 모델을 제공하고 있습니다. 짧은 신문기사를 말해 주시면 요약문을 제공합니다. 계속 사용하고 싶다면 "yes" 를 입력해주세요. """}) st.rerun() if prompt := st.chat_input(): st.session_state.messages.append({"role": "user", "avatar": user_icon_path, "content": prompt}) if st.session_state.approval_state == "require": if prompt.lower() == "yes": st.session_state.approval_state = "approved" st.session_state.messages.append({"role": "assistant", "avatar": assistant_icon_path, "content": "이제 간단한 요약 모델을 사용하실 수 있습니다. 간단한 신문기사를 입력해 주세요."}) else: st.session_state.messages.append({"role": "assistant", "avatar": assistant_icon_path, "content": '승인하지 못하였습니다. 승인을 위해 "yes"를 입력해주세요.'}) elif st.session_state.approval_state == "approved": result = replace_multiple_spaces(prompt) summarized = pipe(result) st.session_state.messages.append({"role": "assistant", "avatar": assistant_icon_path, "content": summarized[0]["summary_text"]}) st.rerun()