randmimc commited on
Commit
0277cbe
Β·
verified Β·
1 Parent(s): 4b1c549

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +21 -57
src/streamlit_app.py CHANGED
@@ -2,70 +2,17 @@
2
  import re
3
  import streamlit as st
4
 
5
-
6
- ## assitant 아바타 이미지 경둜
7
  assistant_icon_path = "https://huggingface.co/spaces/randmimc/aitom/resolve/main/chat_icon/assistant.ico"
8
 
9
- ## μ„Έμ…˜ μƒνƒœμ—μ„œ approval_state 및 messages μ΄ˆκΈ°ν™”
10
  if "approval_state" not in st.session_state:
11
  st.session_state.approval_state = "require"
12
  if "messages" not in st.session_state:
13
  st.session_state.messages = []
14
 
15
- st.markdown("""
16
- <style>
17
- .chat-container { /* μ±„νŒ… λ©”μ‹œμ§€λ₯Ό κ°μ‹ΈλŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. */
18
- display: flex; /* μ±„νŒ… μš”μ†Œ(아바타, 말풍선 λ“±)을 κ°€λ‘œ λ°©ν–₯으둜 μ •λ ¬ν•©λ‹ˆλ‹€. */
19
- margin-bottom: 10px; /*λ©”μ„Έμ§€κ°„ 간격을 10px둜 ν•©λ‹ˆλ‹€. */
20
- }
21
- .user-container {
22
- justify-content: flex-end; /* μ‚¬μš©μžμ˜ λ©”μ‹œμ§€λ₯Ό μš°μΈ‘μ •λ ¬ν•©λ‹ˆλ‹€.*/
23
- }
24
- .assistant-container {
25
- justify-content: flex-start; /* μ–΄μ‹œμŠ€ν„΄μŠ€ λ©”μ‹œμ§€λ₯Ό 쒌츑 μ •λ ¬ν•©λ‹ˆλ‹€.*/
26
- flex-direction: row; /* Avatar와 Bubble을 μˆ˜ν‰μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€. */
27
- }
28
- .chat-bubble { /* 말풍선 μŠ€νƒ€μΌμ„ μ •μ˜ν•©λ‹ˆλ‹€. */
29
- padding: 10px; /* 말풍선 μ•ˆμ— λ©”μ‹œμ§€κ°„ 간격을 10px둜 ν•©λ‹ˆλ‹€. */
30
- border-radius: 10px; /*λ§ν’μ„ μ˜ λͺ¨μ„œλ¦¬λ₯Ό λ™κΈ€κ²Œ λ§Œλ“­λ‹ˆλ‹€.*/
31
- max-width: 70%; /* ν•œμ€„μ΄ λ„ˆλ¬΄ κΈΈμ§€ μ•Šκ²Œ μ œν•œν•©λ‹ˆλ‹€. */
32
- word-wrap: break-word; /* ν…μŠ€νŠΈλ₯Ό 단어 λ‹¨μœ„λ‘œ μ€„λ‚΄λ¦Όν•©λ‹ˆλ‹€. */
33
- white-space: pre-wrap; /* ν…μŠ€νŠΈλ₯Ό 단어 λ‹¨μœ„λ‘œ μ€„λ‚΄λ¦Όν•©λ‹ˆλ‹€. */
34
- }
35
- .user-bubble { /* μ‚¬μš©μž λ©”μ‹œμ§€ μŠ€νƒ€μΌμ„ μ •μ˜ν•©λ‹ˆλ‹€. */
36
- font-size: 14px; /* 폰트 μ‚¬μ΄μ¦ˆλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. */
37
- color: #333; /* 폰트 색상을 μ§€μ •ν•©λ‹ˆλ‹€. */
38
- background-color: #e5e5e5; /* 말풍선 배경색을 μ§€μ •ν•©λ‹ˆλ‹€. */
39
- }
40
- .assistant-bubble {
41
- font-size: 14px; /* 폰트 μ‚¬μ΄μ¦ˆλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. */
42
- color: #333; /* 폰트 색상을 μ§€μ •ν•©λ‹ˆλ‹€. */
43
- text-align: left; /* λ©”μ„Έμ§€λ₯Ό μ™Όμͺ½ μ •λ ¬ ν•©λ‹ˆλ‹€. */
44
- background-color: #feeddf; /* 말풍선 배경색을 μ§€μ •ν•©λ‹ˆλ‹€. */
45
- }
46
- .avatar { /* ν”„λ‘œν•„ 이미지(아바타) μŠ€νƒ€μΌμ„ μ§€μ •ν•©λ‹ˆλ‹€. */
47
- width: 30px; /* 아바타 폭을 μ§€μ •ν•©λ‹ˆλ‹€. */
48
- height: 30px; /* 아바타 λ„ˆμ„ μ§€μ •ν•©λ‹ˆλ‹€. */
49
- border-radius: 50%; /* 아바타λ₯Ό μ›κ²½μœΌλ‘œ λ§Œλ“­λ‹ˆλ‹€. */
50
- margin-right: 10px; /*λ©”μ„Έμ§€κ°„ 간격을 10px둜 ν•©λ‹ˆλ‹€. */
51
- }
52
- </style>
53
- """, unsafe_allow_html=True)
54
-
55
- def user_message_style(question):
56
- return f"""<div class="chat-container user-container">
57
- <div class="chat-bubble user-bubble">{question}</div>
58
- </div>"""
59
-
60
- def assistant_message_style(assistant_icon_path, answer):
61
- return f"""<div class="chat-container assistant-container">
62
- <img src="{assistant_icon_path}" class="avatar">
63
- <div class="chat-bubble assistant-bubble">{answer}</div>
64
- </div>"""
65
-
66
  # λ“œλ‘­λ‹€μš΄ 메뉴
67
- st.markdown("---")
68
- st.subheader("μš”μ•½ν•  기사 선택")
69
 
70
  options = [
71
  "",
@@ -74,4 +21,21 @@ options = [
74
  "였늘 μ—΄λ¦° G7 μ •μƒνšŒμ˜μ—μ„œλŠ” κΈ€λ‘œλ²Œ 경제 회볡과 κΈ°ν›„ λ³€ν™” λŒ€μ‘μ„ μœ„ν•œ λ…Όμ˜κ°€ μ΄μ–΄μ‘Œλ‹€.",
75
  "ν•œκ΅­μ€ν–‰μ€ κΈ°μ€€κΈˆλ¦¬λ₯Ό λ™κ²°ν•˜λ©΄μ„œλ„ λ¬Όκ°€ μƒμŠΉμ— λŒ€ν•œ 우렀λ₯Ό λ‚˜νƒ€λƒˆλ‹€."
76
  ]
77
- selected_text = st.selectbox("기사 λ¬Έμž₯을 μ„ νƒν•˜μ„Έμš”", options)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  import re
3
  import streamlit as st
4
 
5
+ # assitant 아바타 이미지 경둜
 
6
  assistant_icon_path = "https://huggingface.co/spaces/randmimc/aitom/resolve/main/chat_icon/assistant.ico"
7
 
8
+ # μ„Έμ…˜ μƒνƒœμ—μ„œ approval_state 및 messages μ΄ˆκΈ°ν™”
9
  if "approval_state" not in st.session_state:
10
  st.session_state.approval_state = "require"
11
  if "messages" not in st.session_state:
12
  st.session_state.messages = []
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  # λ“œλ‘­λ‹€μš΄ 메뉴
15
+ st.subheader("데이터 선택")
 
16
 
17
  options = [
18
  "",
 
21
  "였늘 μ—΄λ¦° G7 μ •μƒνšŒμ˜μ—μ„œλŠ” κΈ€λ‘œλ²Œ 경제 회볡과 κΈ°ν›„ λ³€ν™” λŒ€μ‘μ„ μœ„ν•œ λ…Όμ˜κ°€ μ΄μ–΄μ‘Œλ‹€.",
22
  "ν•œκ΅­μ€ν–‰μ€ κΈ°μ€€κΈˆλ¦¬λ₯Ό λ™κ²°ν•˜λ©΄μ„œλ„ λ¬Όκ°€ μƒμŠΉμ— λŒ€ν•œ 우렀λ₯Ό λ‚˜νƒ€λƒˆλ‹€."
23
  ]
24
+ selected_text = st.selectbox("데이터λ₯Ό μ„ νƒν•˜μ„Έμš”", options)
25
+
26
+ # 데이터 μƒνƒœ 및 쑰치 상황 ν‘œμ‹œ ν•¨μˆ˜
27
+ def display_status_and_action(text):
28
+ if text == "":
29
+ st.info("λ¨Όμ € 데이터λ₯Ό μ„ νƒν•΄μ£Όμ„Έμš”.")
30
+ elif text == "yes":
31
+ st.success("βœ… 데이터 μƒνƒœ: 승인됨")
32
+ st.markdown("**쑰치 사항:** μΆ”κ°€ μ‘°μΉ˜λŠ” ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.")
33
+ else:
34
+ st.warning("⚠️ 데이터 μƒνƒœ: 승인 λŒ€κΈ° 쀑")
35
+ st.markdown("**쑰치 사항:** μ•„λž˜ λ²„νŠΌμ„ 눌러 승인 μš”μ²­μ„ μ§„ν–‰ν•˜μ„Έμš”.")
36
+ if st.button("승인 μš”μ²­"):
37
+ st.session_state.approval_state = "requested"
38
+ st.success("승인 μš”μ²­μ΄ μ œμΆœλ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
39
+
40
+ # μƒνƒœ 및 쑰치 좜λ ₯
41
+ display_status_and_action(selected_text)