Spaces:
Sleeping
Sleeping
Update src/streamlit_app.py
Browse files- src/streamlit_app.py +0 -104
src/streamlit_app.py
CHANGED
|
@@ -56,110 +56,6 @@ st.markdown("""
|
|
| 56 |
</style>
|
| 57 |
""", unsafe_allow_html=True)
|
| 58 |
|
| 59 |
-
def user_message_style(question):
|
| 60 |
-
return f"""<div class="chat-container user-container">
|
| 61 |
-
<div class="chat-bubble user-bubble">{question}</div>
|
| 62 |
-
</div>"""
|
| 63 |
-
|
| 64 |
-
def assistant_message_style(assistant_icon_path, answer):
|
| 65 |
-
return f"""<div class="chat-container assistant-container">
|
| 66 |
-
<img src="{assistant_icon_path}" class="avatar">
|
| 67 |
-
<div class="chat-bubble assistant-bubble">{answer}</div>
|
| 68 |
-
</div>"""
|
| 69 |
-
|
| 70 |
-
for message in st.session_state.messages:
|
| 71 |
-
if message["role"] == "user":
|
| 72 |
-
st.markdown(user_message_style(message["content"]), unsafe_allow_html=True)
|
| 73 |
-
else:
|
| 74 |
-
st.markdown(assistant_message_style(assistant_icon_path, message["content"]), unsafe_allow_html=True)
|
| 75 |
-
|
| 76 |
-
if not st.session_state.messages:
|
| 77 |
-
greeting = 'μ λ¬ΈκΈ°μ¬ μμ½ λͺ¨λΈ μ
λλ€. μ¬μ©μ μν΄μλ "yes"λ₯Ό μ
λ ₯ν΄ μ£ΌμΈμ'
|
| 78 |
-
st.session_state.messages.append({"role": "assistant", "content": greeting})
|
| 79 |
-
st.markdown(assistant_message_style(assistant_icon_path, greeting), unsafe_allow_html=True)
|
| 80 |
-
|
| 81 |
-
if prompt := st.chat_input():
|
| 82 |
-
# μ¬μ©μ μ§λ¬Έ μΈμ
μ μ μ₯
|
| 83 |
-
st.session_state.messages.append({"role": "user", "content": prompt})
|
| 84 |
-
|
| 85 |
-
# μ¬μ©μ μ§λ¬Έ νλ©΄μ νμ
|
| 86 |
-
st.markdown(user_message_style(prompt), unsafe_allow_html=True)
|
| 87 |
-
|
| 88 |
-
# μΈμ¦
|
| 89 |
-
if st.session_state.approval_state == "require":
|
| 90 |
-
if prompt.lower() == "yes":
|
| 91 |
-
st.session_state.approval_state = "approved"
|
| 92 |
-
response = "μ΄μ μ¬μ©μ΄ κ°λ₯ν©λλ€. λ¨, λͺ¨λΈ ν¬κΈ°κ° μμ λͺ¨λΈμ΄μ¬μ μ±λ₯μ΄ κΈ°λμ λͺ»λ―ΈμΉ μ μμ΅λλ€."
|
| 93 |
-
else:
|
| 94 |
-
response = "μΈμ¦μ μ€ν¨νμμ΅λλ€. λ€μ yesλ₯Ό μ
λ ₯ν΄ μ£ΌμΈμ"
|
| 95 |
-
# μλ΅ μμ±
|
| 96 |
-
else:
|
| 97 |
-
result = re.sub(r'\s+', ' ', prompt)
|
| 98 |
-
summarized = pipe(result)
|
| 99 |
-
response = summarized[0]["summary_text"]
|
| 100 |
-
|
| 101 |
-
# μ΄μμ€ν΄μ€μ λ©μΈμ§λ₯Ό μΈμ
μ μ μ₯
|
| 102 |
-
st.session_state.messages.append({"role": "assistant", "content": response})
|
| 103 |
-
# μ΄μμ€ν΄μ€μ λ©μΈμ§λ₯Ό νλ©΄μ νμ
|
| 104 |
-
st.markdown(assistant_message_style(assistant_icon_path, response), unsafe_allow_html=True)
|
| 105 |
-
# ν¨ν€μ§ λΆλ¬μ€κΈ°
|
| 106 |
-
import re
|
| 107 |
-
import streamlit as st
|
| 108 |
-
from transformers import pipeline
|
| 109 |
-
|
| 110 |
-
# κΈλ‘λ² λ³μ μ μΈ
|
| 111 |
-
## λ³Έ μ½λμμ μ¬μ©λ μ λ¬ΈκΈ°μ¬ μμ½μ© λͺ¨λΈ(https://huggingface.co/gangyeolkim/kobart-korean-summarizer-v2)μ ν
μ€νΈμ© μ
λλ€.
|
| 112 |
-
pipe = pipeline("summarization", model="gangyeolkim/kobart-korean-summarizer-v2")
|
| 113 |
-
|
| 114 |
-
## assitant μλ°ν μ΄λ―Έμ§ κ²½λ‘
|
| 115 |
-
assistant_icon_path = "https://huggingface.co/spaces/randmimc/aitom/resolve/main/chat_icon/assistant.ico"
|
| 116 |
-
|
| 117 |
-
## μΈμ
μνμμ approval_state λ° messages μ΄κΈ°ν
|
| 118 |
-
if "approval_state" not in st.session_state:
|
| 119 |
-
st.session_state.approval_state = "require"
|
| 120 |
-
if "messages" not in st.session_state:
|
| 121 |
-
st.session_state.messages = []
|
| 122 |
-
|
| 123 |
-
st.markdown("""
|
| 124 |
-
<style>
|
| 125 |
-
.chat-container { /* μ±ν
λ©μμ§λ₯Ό κ°μΈλ 컨ν
μ΄λλ₯Ό μ€λͺ
ν©λλ€. */
|
| 126 |
-
display: flex; /* μ±ν
μμ(μλ°ν, λ§νμ λ±)μ κ°λ‘ λ°©ν₯μΌλ‘ μ λ ¬ν©λλ€. */
|
| 127 |
-
margin-bottom: 10px; /*λ©μΈμ§κ° κ°κ²©μ 10pxλ‘ ν©λλ€. */
|
| 128 |
-
}
|
| 129 |
-
.user-container {
|
| 130 |
-
justify-content: flex-end; /* μ¬μ©μμ λ©μμ§λ₯Ό μ°μΈ‘μ λ ¬ν©λλ€.*/
|
| 131 |
-
}
|
| 132 |
-
.assistant-container {
|
| 133 |
-
justify-content: flex-start; /* μ΄μμ€ν΄μ€ λ©μμ§λ₯Ό μ’μΈ‘ μ λ ¬ν©λλ€.*/
|
| 134 |
-
flex-direction: row; /* Avatarμ Bubbleμ μνμΌλ‘ μ λ ¬ν©λλ€. */
|
| 135 |
-
}
|
| 136 |
-
.chat-bubble { /* λ§νμ μ€νμΌμ μ μν©λλ€. */
|
| 137 |
-
padding: 10px; /* λ§νμ μμ λ©μμ§κ° κ°κ²©μ 10pxλ‘ ν©λλ€. */
|
| 138 |
-
border-radius: 10px; /*λ§νμ μ λͺ¨μ리λ₯Ό λκΈκ² λ§λλλ€.*/
|
| 139 |
-
max-width: 70%; /* νμ€μ΄ λ무 κΈΈμ§ μκ² μ νν©λλ€. */
|
| 140 |
-
word-wrap: break-word; /* ν
μ€νΈλ₯Ό λ¨μ΄ λ¨μλ‘ μ€λ΄λ¦Όν©λλ€. */
|
| 141 |
-
white-space: pre-wrap; /* ν
μ€νΈλ₯Ό λ¨μ΄ λ¨μλ‘ μ€λ΄λ¦Όν©λλ€. */
|
| 142 |
-
}
|
| 143 |
-
.user-bubble { /* μ¬μ©μ λ©μμ§ μ€νμΌμ μ μν©λλ€. */
|
| 144 |
-
font-size: 14px; /* ν°νΈ μ¬μ΄μ¦λ₯Ό μ§μ ν©λλ€. */
|
| 145 |
-
color: #333; /* ν°νΈ μμμ μ§μ ν©λλ€. */
|
| 146 |
-
background-color: #e5e5e5; /* λ§νμ λ°°κ²½μμ μ§μ ν©λλ€. */
|
| 147 |
-
}
|
| 148 |
-
.assistant-bubble {
|
| 149 |
-
font-size: 14px; /* ν°νΈ μ¬μ΄μ¦λ₯Ό μ§μ ν©λλ€. */
|
| 150 |
-
color: #333; /* ν°νΈ μμμ μ§μ ν©λλ€. */
|
| 151 |
-
text-align: left; /* λ©μΈμ§λ₯Ό μΌμͺ½ μ λ ¬ ν©λλ€. */
|
| 152 |
-
background-color: #feeddf; /* λ§νμ λ°°κ²½μμ μ§μ ν©λλ€. */
|
| 153 |
-
}
|
| 154 |
-
.avatar { /* νλ‘ν μ΄λ―Έμ§(μλ°ν) μ€νμΌμ μ§μ ν©λλ€. */
|
| 155 |
-
width: 30px; /* μλ°ν νμ μ§μ ν©λλ€. */
|
| 156 |
-
height: 30px; /* μλ°ν λμ μ§μ ν©λλ€. */
|
| 157 |
-
border-radius: 50%; /* μλ°νλ₯Ό μκ²½μΌλ‘ λ§λλλ€. */
|
| 158 |
-
margin-right: 10px; /*λ©μΈμ§κ° κ°κ²©μ 10pxλ‘ ν©λλ€. */
|
| 159 |
-
}
|
| 160 |
-
</style>
|
| 161 |
-
""", unsafe_allow_html=True)
|
| 162 |
-
|
| 163 |
def user_message_style(question):
|
| 164 |
return f"""<div class="chat-container user-container">
|
| 165 |
<div class="chat-bubble user-bubble">{question}</div>
|
|
|
|
| 56 |
</style>
|
| 57 |
""", unsafe_allow_html=True)
|
| 58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
def user_message_style(question):
|
| 60 |
return f"""<div class="chat-container user-container">
|
| 61 |
<div class="chat-bubble user-bubble">{question}</div>
|