|
import gradio as gr |
|
import pandas as pd |
|
import pickle |
|
|
|
|
|
def load_model(): |
|
with open("model.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'{cost:,.0f}์' for cost in pred[0]] |
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("HG ๊ณต์ฌ๋น ์์ธก ๋ชจ๋ธ") |
|
with gr.Row(): |
|
๊ตฌ์กฐ = gr.Dropdown(label="๊ตฌ์กฐ", choices=['์ฒ ๊ทผ์ฝํฌ๋ฆฌํธ์กฐ', '์ฒ ๊ณจ์กฐ', '์ฒ ๊ณจ์ฒ ๊ทผ์ฝํฌ๋ฆฌํธ์กฐ', '-', '๊ธฐํ'], value='์ฒ ๊ทผ์ฝํฌ๋ฆฌํธ์กฐ') |
|
with gr.Row(): |
|
์งํ์ธต์ = gr.Number(label="์งํ์ธต์", value=1) |
|
์ง์์ธต์ = gr.Number(label="์ง์์ธต์", value=1) |
|
์ฃผ์ฐจ์ = gr.Number(label="์ฃผ์ฐจ๋์", value=50) |
|
with gr.Row(): |
|
์ฐ๋ฉด์ = gr.Number(label="์ฐ๋ฉด์ (m2)", value=300) |
|
๋์ง๋ฉด์ = gr.Number(label="๋์ง๋ฉด์ (m2)", value=500) |
|
๊ฑด์ถ๋ฉด์ = gr.Number(label="๊ฑด์ถ๋ฉด์ (m2)", value=120) |
|
์กฐ๊ฒฝ๋ฉด์ = gr.Number(label="์กฐ๊ฒฝ๋ฉด์ (m2)", value=150) |
|
with gr.Row(): |
|
๋ฐ์ฃผ๋
= gr.Number(label="๋ฐ์ฃผ๋
", value=2023) |
|
๋ฐ์ฃผ์ = gr.Number(label="๋ฐ์ฃผ์", value=9) |
|
๊ณต์ฌ๊ธฐ๊ฐ = gr.Number(label="๊ณต์ฌ๊ธฐ๊ฐ(์ผ)", value=100) |
|
with gr.Row(): |
|
ํ์ฅ์์น = gr.Dropdown(label="ํ์ฅ์์น", choices=['์์ธํน๋ณ์', '์ ์ฃผํน๋ณ์์น๋', '๊ฒฝ์๋ถ๋', '์ธ์ฐ๊ด์ญ์', '๊ด์ฃผ๊ด์ญ์', '๊ฒฝ๊ธฐ๋', '์ถฉ์ฒญ๋ถ๋', |
|
'๊ฒฝ์๋จ๋', '์ ๋ผ๋จ๋', '๋ถ์ฐ๊ด์ญ์', '์ถฉ์ฒญ๋จ๋', '๋๊ตฌ๊ด์ญ์', '๊ฐ์๋', '์ธ์ฒ๊ด์ญ์', '์ ๋ผ๋ถ๋', |
|
'์ธ์ข
ํน๋ณ์์น์', '๋์ ๊ด์ญ์', '๊ฐ์ํน๋ณ์์น๋'], value='๊ฒฝ๊ธฐ๋') |
|
๊ฑด์ถ๋ฒ์์ฉ๋ = gr.Dropdown(label="๊ฑด์ถ๋ฒ์์ฉ๋", choices=['๊ทผ๋ฆฐ์ํ์์ค', '๊ฒฉ๋ฉ๊ณ ', '๊ณต๊ณต์
๋ฌด์์ค', '๊ณต๋์ฃผํ', '๊ณต์์์ค', '๊ณต์ฅ', '๊ณตํญ์์ค', '๊ด๊ดํด๊ฒ์์ค', |
|
'๊ต์ก์ฐ๊ตฌ์์ค', '๊ต์ก์ฐ๊ตฌ์์ค ', '๊ธฐ์์ฌ', '๊ตฐ์ฌ์์ค', '๊ต์ ์์ค', '์
๋ฌด์์ค', '๊ธฐํํ๊ต์์ค', |
|
'๋
ธ์ ์ ์์ค', '๋
ธ์ ์์์ค', '๋ฐ์ดํฐ์ผํฐ', '๋๋ฌผ๋ฐ์๋ฌผ๊ด๋ จ์์ค', '๋ฌ์ง ๊ด๋ จ ์์ค', '๋ฌ์ง๊ด๋ จ์์ค', |
|
'๋ฌธํ๋ฐ์งํ์์ค', '๋ฌธํ๋ฐ ์งํ์์ค', '๋ฐฉ์กํต์ ์์ค', '์ฌํ๋ณต์ง์์ค', '์ค๊ณต๊ณต์
๋ฌด์์ค', '์๋ จ์์ค', |
|
'์
๋ฌด์์ค ', '์ฐ๊ตฌ์์ค', '์ด๋์์ค', '์ด์์์ค', '์ด์์์ค ', '์๋ฃ์์ค', '์๋์ฐจ๊ด๋ จ์์ค', |
|
'์์์ํ๊ด๋ จ์์ค', '์ ์์์ค', '์ฃผ์ฐจ์ฅ', '์ฐฝ๊ณ ์์ค', '์ฒด์ก์์ค', 'ํ๋งค์์ค'], value='์
๋ฌด์์ค') |
|
|
|
btn = gr.Button("์์ธก") |
|
|
|
btn.click( |
|
predict_cost, |
|
inputs=[ |
|
๊ตฌ์กฐ, ์งํ์ธต์, ์ง์์ธต์, ์ฃผ์ฐจ์, ์ฐ๋ฉด์ , ๋์ง๋ฉด์ , ๊ฑด์ถ๋ฉด์ , ์กฐ๊ฒฝ๋ฉด์ , ๋ฐ์ฃผ๋
, ๋ฐ์ฃผ์, ๊ณต์ฌ๊ธฐ๊ฐ, ํ์ฅ์์น, ๊ฑด์ถ๋ฒ์์ฉ๋ |
|
], |
|
outputs=[ |
|
gr.Textbox(label="๊ฑด์ถ๊ณต์ฌ๋น"), |
|
gr.Textbox(label="๊ธฐ๊ณ๊ณต์ฌ๋น"), |
|
gr.Textbox(label="์ ๊ธฐ๊ณต์ฌ๋น"), |
|
gr.Textbox(label="ํต์ ๊ณต์ฌ๋น"), |
|
gr.Textbox(label="ํ ๋ชฉ๊ณต์ฌ๋น"), |
|
gr.Textbox(label="์กฐ๊ฒฝ๊ณต์ฌ๋น") |
|
] |
|
) |
|
|
|
demo.launch() |