File size: 4,269 Bytes
26a7f01
cc5ae1e
 
26a7f01
cc5ae1e
 
 
 
 
26a7f01
cc5ae1e
1963a0a
cc5ae1e
7648841
 
 
1963a0a
7648841
 
 
 
1963a0a
7648841
 
 
 
cc5ae1e
7648841
cc5ae1e
7648841
 
cc5ae1e
7648841
1963a0a
7648841
c697004
7648841
 
c697004
 
7648841
c697004
 
 
 
7648841
c697004
7648841
c697004
7648841
88389bc
 
c697004
88389bc
 
 
 
 
 
7648841
1963a0a
7648841
 
 
 
 
 
 
 
 
 
 
1963a0a
7648841
 
 
 
cc5ae1e
7648841
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
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=4)
        ์ฃผ์ฐจ์ˆ˜ = gr.Number(label="์ฃผ์ฐจ๋Œ€์ˆ˜", value=120)
    with gr.Row():
        ์—ฐ๋ฉด์  = gr.Number(label="์—ฐ๋ฉด์ (m2)", value=12396)
        ๋Œ€์ง€๋ฉด์  = gr.Number(label="๋Œ€์ง€๋ฉด์ (m2)", value=5861)
        ๊ฑด์ถ•๋ฉด์  = gr.Number(label="๊ฑด์ถ•๋ฉด์ (m2)", value=2828)
        ์กฐ๊ฒฝ๋ฉด์  = gr.Number(label="์กฐ๊ฒฝ๋ฉด์ (m2)", value=933)
    with gr.Row():
        ๋ฐœ์ฃผ๋…„ = gr.Number(label="๋ฐœ์ฃผ๋…„๋„", value=2023)
        ๋ฐœ์ฃผ์›” = gr.Number(label="๋ฐœ์ฃผ์›”", value=9)
        ๊ณต์‚ฌ๊ธฐ๊ฐ„ = gr.Number(label="๊ณต์‚ฌ๊ธฐ๊ฐ„(์ผ)", value=570)
    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="ํ† ๋ชฉ๊ณต์‚ฌ๋น„"),
            gr.Textbox(label="์กฐ๊ฒฝ๊ณต์‚ฌ๋น„")
        ]
    )

demo.launch()