Spaces:
Sleeping
Sleeping
File size: 4,331 Bytes
236cd6c 4a4ded1 83a90dd 39adf97 48ee50b 7b2398c 4a571e2 d31c393 236cd6c 2ac3e95 68ed844 aa6577a 2ac3e95 236cd6c 2ac3e95 236cd6c a5c9a03 2ac3e95 d953f41 68ed844 50b8fa6 50430ba 50b8fa6 2ac3e95 50b8fa6 b8436ab d953f41 2ac3e95 d953f41 2ac3e95 50b8fa6 d953f41 ea8a465 8b96fa9 52dbcec 05efc0a 0a224bb 52dbcec 8db620c 52dbcec 4ee4257 8b96fa9 31548fa 0a224bb 370ad7b 52dbcec 31548fa 8db620c 4a8b73c 52dbcec 31548fa 8db620c 4a8b73c d953f41 31548fa 8db620c c203dc8 2ac3e95 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | # ν¨ν€μ§ λΆλ¬μ€κΈ°
import re
import base64
from io import BytesIO
import streamlit as st
import numpy as np
import pandas as pd
from gtts import gTTS
# μμ λ°μ΄ν°
options = ["", "2024-08-24", "2024-09-26"]
@st.cache_data
def load_data():
return pd.read_csv("https://huggingface.co/spaces/randmimc/mobility_condition/raw/main/chat_icon/text.csv", on_bad_lines='skip')
df = load_data()
text_input = "μμ μ¦μλ€μ΄ λ³΄μΌ κ²½μ°, λ€μκ³Ό κ°μ μ‘°μΉλ₯Ό μ·¨νλ κ²μ΄ νμν©λλ€:\n\n1. **μλμ¬μ μλ**: μ°μ μ μΌλ‘ μΌλ°μ μΈ μλ μ¬μμ μ§ννμ¬ DPF μμ€ν
μ΄ μ μμ μΌλ‘ μλνλμ§ νμΈν©λλ€. μ°¨λ μλλ μ½ 60km/hλ‘ μ μ§νκ³ , 20λΆ μ΄μ μ£Όννμ¬ DPF μμ€ν
μ΄ μ€μ€λ‘ sootλ₯Ό μ κ±°νλλ‘ ν©λλ€.\n\n2. **DPF μλ μ κ±° λ²νΌ νμ©**: λ§μ½ μλμ¬μμ΄ μ΄λ €μ΄ μνλΌλ©΄, DPF μλ μ κ±° λ²νΌμ ν΅ν΄ μ΄μ μκ° κ°μ λ‘ sootλ₯Ό μ κ±°νλ λ°©λ²μ μλν΄ λ΄
λλ€.\n\n3. **μ λΉμ λ°©λ¬Έ**: μλ μ¬μμ΄λ μλ μ κ±° λ²νΌμ ν΅ν΄μλ λ¬Έμ κ° ν΄κ²°λμ§ μμ κ²½μ°, κ°κΉμ΄ μ λΉμλ₯Ό λ°©λ¬Ένμ¬ DPF μμ€ν
μ μ κ² λ°λ κ²μ΄ μ€μν©λλ€. μ΄λ μΌμ λΆλμ΄λ DPF νν° λ¬Έμ λ± λ€λ₯Έ μμΈμ νμ
νλ λ° λμμ΄ λ©λλ€.\n\n4. **λ°°κΈ°κ³ν΅ μ κ²**: ν΄λΉ νμμ΄ μ§μ λ°κ²¬λ κ²½μ° λ§μ½μ λλΉνμ¬ μ°¨λ μ체μ λ°°κΈ°κ³ν΅ μ κ²μ νλ κ²μ΄ μΆμ²λ©λλ€.\n\n**μ μμ μΈ κ²½μ°**: λ§μ½ soot μμΉκ° μ μ ν νμ΄λ°μ μ°μλμ΄ μμ΄μ§κ³ μ 체μ μΌλ‘ λ΄€μ λ μΆμ λμ΄ 40μ μ΄κ³Όνλ ꡬκ°μ΄ μ‘΄μ¬νμ§ μλλ€λ©΄, μ΄λ μ μμ μ΄λ©° λ¬Έμ μμ΅λλ€"
warning = "β οΈ μΌμ μμΉ μ΄μμ Soot μΆμ λμ΄ 2μκ° μ΄μ μ§μλλ νμμ 보μ. \nSoot κ° μΌμ μμΉμ λλ¬νμλ μ μμ μΌλ‘ μ°μλμ§ μκ±°λ, μΌμ λΆλμΌλ‘ μΈν΄ Dosing μ΄ κ³Όνκ² νμ±νλ¨. \nsoot κ° μ¦κ°νλ κ³Όμ μμ λΆκ·μΉμ μΈ μ¦κ° νμμ΄ λ°μν¨. \nν λλ λΉμ ν ννκ° ν¬κ² λνλ¨. \nSoot μ μΆμ λμ΄ 40μ μ΄κ³Όνλ ꡬκ°μ΄ μ‘΄μ¬ν¨."
def chart_generate(df, col_name):
return st.line_chart(df, y=[col_name])
@st.cache_data
def tts_engine(text):
cleaned_text = re.sub(r'[\x00-\x1F]+', '', text).replace("*", "")
tts = gTTS(text=cleaned_text, lang='ko')
mp3_fp = BytesIO()
tts.write_to_fp(mp3_fp)
# μ€λμ€ μ€νΈλ¦Ό μ¬μ€μ ν μ¬μ
mp3_fp.seek(0)
# Base64 μΈμ½λ©
audio_bytes = mp3_fp.read()
audio_base64 = base64.b64encode(audio_bytes).decode()
return mp3_fp, audio_base64
def none_temp():
st.info("λ¨Όμ λ°μ΄ν°λ₯Ό μ νν΄ μ£ΌμΈμ")
def normal(df, col_name):
chart_generate(df, col_name)
st.success("β
μ°¨λ μν: μ μ")
st.markdown("**μ‘°μΉ μ¬ν:** μΆκ° μ‘°μΉλ νμνμ§ μμ΅λλ€.")
def anormal(df, col_name, warning, text_input):
# custom style
chart_generate(df, col_name)
st.warning(warning)
st.markdown(text_input)
mp3_fp, audio_base64 = tts_engine(warning+" "+text_input)
st.audio(mp3_fp, format="audio/mp3")
# μλΉμ€ μ€ν
# 1. session_state μ΄κΈ°ν (μ±μ΄ μ²μ μ€νλ λλ§ μλ)
if 'selection' not in st.session_state:
st.session_state.selection = ""
if 'warning' not in st.session_state:
st.session_state.warning = ""
if 'success' not in st.session_state:
st.session_state.success = ""
if 'audio' not in st.session_state:
st.session_state.audio = ""
if 'markdown' not in st.session_state:
st.session_state.markdown = ""
slected = st.selectbox(
"μ§λ¨ν λ°μ΄ν°λ₯Ό μ ννμΈμ:",
options
)
st.session_state["warning"] = ""
st.session_state["success"] = ""
st.session_state["audio"] = ""
st.session_state["markdown"] = ""
st.session_state.selection = slected
if st.session_state.selection == "":
st.write(st.session_state.selection)
st.write(st.session_state.audio)
none_temp()
elif st.session_state.selection == "2024-09-26":
st.write(st.session_state.selection)
st.write(st.session_state.audio)
normal(df, "ECU_DPFSoot")
else:
st.write(st.session_state.selection)
st.write(st.session_state.audio)
anormal(df, "ECU_DPFSoot", warning, text_input)
|