text2schedule / app.py
sprite33's picture
0123
43c0f04
import gradio as gr
import pandas as pd
import pickle
# ๋ชจ๋ธ ๋กœ๋”ฉ ํ•จ์ˆ˜
def load_model(์‹œ์„ค์œ ํ˜•):
with open(์‹œ์„ค์œ ํ˜•+".pkl", "rb") as file:
loaded_pipeline = pickle.load(file)
return loaded_pipeline
# ์˜ˆ์ธก ํ•จ์ˆ˜ ์ •์˜
def predict_cost(์‹œ์„ค์œ ํ˜•, ๊ตฌ์กฐ, ์ง€ํ•˜์ธต์ˆ˜, ์ง€์ƒ์ธต์ˆ˜, ๊ธฐ์ค€์ธต์ธต๊ณ , ์ตœ๊ณ ๋†’์ด, ์—ฐ๋ฉด์ , ๋Œ€์ง€๋ฉด์ , ๊ฑด์ถ•๋ฉด์ , ์กฐ๊ฒฝ๋ฉด์ , ์ฃผ์ฐจ๋Œ€์ˆ˜, ๋ฐœ์ฃผ๋…„๋„, ๋ฐœ์ฃผ์›”, ํ˜„์žฅ์œ„์น˜):
new_project = {
'๊ตฌ์กฐ': [๊ตฌ์กฐ],
'์ง€ํ•˜์ธต์ˆ˜': [์ง€ํ•˜์ธต์ˆ˜],
'์ง€์ƒ์ธต์ˆ˜': [์ง€์ƒ์ธต์ˆ˜],
'๊ธฐ์ค€์ธต์ธต๊ณ ': [๊ธฐ์ค€์ธต์ธต๊ณ ],
'์ตœ๊ณ ๋†’์ด': [์ตœ๊ณ ๋†’์ด],
'์ฃผ์ฐจ๋Œ€์ˆ˜': [์ฃผ์ฐจ๋Œ€์ˆ˜],
'์—ฐ๋ฉด์ ': [์—ฐ๋ฉด์ ],
'๋Œ€์ง€๋ฉด์ ': [๋Œ€์ง€๋ฉด์ ],
'๊ฑด์ถ•๋ฉด์ ': [๊ฑด์ถ•๋ฉด์ ],
'์กฐ๊ฒฝ๋ฉด์ ': [์กฐ๊ฒฝ๋ฉด์ ],
'๋ฐœ์ฃผ๋…„๋„': [๋ฐœ์ฃผ๋…„๋„],
'๋ฐœ์ฃผ์›”': [๋ฐœ์ฃผ์›”],
'ํ˜„์žฅ์œ„์น˜': [ํ˜„์žฅ์œ„์น˜],
}
model = load_model(์‹œ์„ค์œ ํ˜•)
pred = model.predict(pd.DataFrame.from_dict(new_project))
return f'{pred[0]:,.0f}์ผ'
with gr.Blocks() as demo:
gr.Markdown("## HG ๊ณต์‚ฌ๊ธฐ๊ฐ„ ์˜ˆ์ธก ๋ชจ๋ธ")
with gr.Row():
์‹œ์„ค์œ ํ˜• = gr.Dropdown(label="์‹œ์„ค์œ ํ˜•", choices=["์ผ๋ฐ˜์ฒญ์‚ฌ","์ผ๋ฐ˜ํ˜•์ดˆ์ค‘๊ณ ","๊ธฐํƒ€์‹œ์„ค","๋ณตํ•ฉํ˜•์ดˆ์ค‘๊ณ ","๋Œ€ํ˜•์ฒญ์‚ฌ","์ผ๋ฐ˜ํ˜•์—ฐ๊ตฌ์†Œ","๋…ธ์œ ์ž์‹œ์„ค","์ผ๋ฐ˜ํ˜•์ „์‹œ์‹œ์„ค","์‹คํ—˜์šฉ์—ฐ๊ตฌ์‹œ์„ค","๋ณตํ•ฉํ˜•์ฒด์œก์‹œ์„ค","๋ณตํ•ฉํ˜•๋Œ€ํ•™๊ต","๊ฐ•์˜ํ˜•๋Œ€ํ•™๊ต","๋ณต์ง€์‹œ์„ค","๋„์„œ๊ด€","์ผ๋ฐ˜ํ˜•์ˆ˜๋ จ์‹œ์„ค","๊ธฐ์ˆ™์‚ฌ","๋Œ€ํ˜•์˜๋ฃŒ์‹œ์„ค","์ผ๋ฐ˜ํ˜•๊ณต์žฅ","์ฒจ๋‹จ์—ฐ๊ตฌ์‹œ์„ค","๋ณตํ•ฉํ˜•์ˆ˜๋ จ์‹œ์„ค","ํŠน์ˆ˜ํ˜•๊ณต์žฅ"],
value='๊ฐ•์˜ํ˜•๋Œ€ํ•™๊ต') # '...'๋ถ€๋ถ„์— ๋‹ค๋ฅธ ์‹œ์„ค์œ ํ˜• ์ถ”๊ฐ€
ํ˜„์žฅ์œ„์น˜ = gr.Dropdown(label="ํ˜„์žฅ์œ„์น˜", choices=['์„œ์šธํŠน๋ณ„์‹œ', '์ œ์ฃผํŠน๋ณ„์ž์น˜๋„', '๊ฒฝ์ƒ๋ถ๋„', '์šธ์‚ฐ๊ด‘์—ญ์‹œ', '๊ด‘์ฃผ๊ด‘์—ญ์‹œ', '๊ฒฝ๊ธฐ๋„', '์ถฉ์ฒญ๋ถ๋„',
'๊ฒฝ์ƒ๋‚จ๋„', '์ „๋ผ๋‚จ๋„', '๋ถ€์‚ฐ๊ด‘์—ญ์‹œ', '์ถฉ์ฒญ๋‚จ๋„', '๋Œ€๊ตฌ๊ด‘์—ญ์‹œ', '๊ฐ•์›๋„', '์ธ์ฒœ๊ด‘์—ญ์‹œ', '์ „๋ผ๋ถ๋„',
'์„ธ์ข…ํŠน๋ณ„์ž์น˜์‹œ', '๋Œ€์ „๊ด‘์—ญ์‹œ', '๊ฐ•์›ํŠน๋ณ„์ž์น˜๋„'], value='๊ด‘์ฃผ๊ด‘์—ญ์‹œ')
๊ตฌ์กฐ = gr.Dropdown(label="๊ตฌ์กฐ", choices=['์ฒ ๊ทผ์ฝ˜ํฌ๋ฆฌํŠธ์กฐ', '์ฒ ๊ณจ์กฐ', '์ฒ ๊ณจ์ฒ ๊ทผ์ฝ˜ํฌ๋ฆฌํŠธ์กฐ', '๊ธฐํƒ€'], value='์ฒ ๊ณจ์ฒ ๊ทผ์ฝ˜ํฌ๋ฆฌํŠธ์กฐ') # '...'๋ถ€๋ถ„์— ๋‹ค๋ฅธ ๊ตฌ์กฐ ํƒ€์ž… ์ถ”๊ฐ€
with gr.Row():
์ง€ํ•˜์ธต์ˆ˜ = gr.Number(label="์ง€ํ•˜์ธต์ˆ˜", value=0)
์ง€์ƒ์ธต์ˆ˜ = gr.Number(label="์ง€์ƒ์ธต์ˆ˜", value=7)
๊ธฐ์ค€์ธต์ธต๊ณ  = gr.Number(label="๊ธฐ์ค€์ธต์ธต๊ณ (m)", value=4.5)
์ตœ๊ณ ๋†’์ด = gr.Number(label="์ตœ๊ณ ๋†’์ด(m)", value=33.9)
with gr.Row():
์—ฐ๋ฉด์  = gr.Number(label="์—ฐ๋ฉด์ (m2)", value=4451)
๋Œ€์ง€๋ฉด์  = gr.Number(label="๋Œ€์ง€๋ฉด์ (m2)", value=989860)
๊ฑด์ถ•๋ฉด์  = gr.Number(label="๊ฑด์ถ•๋ฉด์ (m2)", value=922)
์กฐ๊ฒฝ๋ฉด์  = gr.Number(label="์กฐ๊ฒฝ๋ฉด์ (m2)", value=180)
with gr.Row():
์ฃผ์ฐจ์ˆ˜ = gr.Number(label="์ฃผ์ฐจ๋Œ€์ˆ˜", value=7)
๋ฐœ์ฃผ๋…„ = gr.Number(label="๋ฐœ์ฃผ๋…„๋„", value=2023)
๋ฐœ์ฃผ์›” = gr.Number(label="๋ฐœ์ฃผ์›”", value=8)
btn = gr.Button("๊ณต์‚ฌ๊ธฐ๊ฐ„ ์˜ˆ์ธก")
btn.click(
predict_cost,
inputs=[
์‹œ์„ค์œ ํ˜•, ๊ตฌ์กฐ, ์ง€ํ•˜์ธต์ˆ˜, ์ง€์ƒ์ธต์ˆ˜, ๊ธฐ์ค€์ธต์ธต๊ณ , ์ตœ๊ณ ๋†’์ด, ์—ฐ๋ฉด์ , ๋Œ€์ง€๋ฉด์ , ๊ฑด์ถ•๋ฉด์ , ์กฐ๊ฒฝ๋ฉด์ , ์ฃผ์ฐจ์ˆ˜, ๋ฐœ์ฃผ๋…„, ๋ฐœ์ฃผ์›”, ํ˜„์žฅ์œ„์น˜
],
outputs=[
gr.Textbox(label="๊ณต์‚ฌ๊ธฐ๊ฐ„")
]
)
demo.launch()