Update app.py
Browse files
app.py
CHANGED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
|
3 |
+
# ๊ด๊ณ ์ ๋ต ๋ถ์ ํจ์
|
4 |
+
def ๊ด๊ณ _์ ๋ต_์ถ์ฒ(click_rate, conversion_rate):
|
5 |
+
result = ""
|
6 |
+
|
7 |
+
# ๊ฒ์ ๊ด๊ณ ์ ๋ต
|
8 |
+
if click_rate < 1.3 and conversion_rate < 3:
|
9 |
+
result = (
|
10 |
+
"๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ๊ณผ ์ ํ์จ์ด ๋ชจ๋ ๋ฎ์ต๋๋ค. "
|
11 |
+
"ํด๋ฆญ๋ฅ ๊ฐ์ ์ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํ์ธ์. "
|
12 |
+
"์ผ์์ฐ์ ๋์ด๊ณ ๊ด๊ณ ์์ต๋ฅ (ROAS)์ 500% ์ดํ๋ก ๋ฎ์ถฐ๋ณด์ธ์. "
|
13 |
+
"ํ๊ฒ ํค์๋๋ฅผ ์ฌ๊ฒํ ํ๊ณ ๊ณ ๊ฐ์ธต์ ๊ตฌ์ฒดํํ์ธ์."
|
14 |
+
)
|
15 |
+
elif click_rate < 1.3 and conversion_rate >= 3:
|
16 |
+
result = (
|
17 |
+
"๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ์ด ๋ฎ๊ณ ์ ํ์จ์ด ๋์ต๋๋ค. "
|
18 |
+
"ํด๋ฆญ์ ๋ง์ด ๋ฐ์์ํค๋ ๋ฐฉํฅ์ผ๋ก ๊ด๊ณ ๋ฅผ ์กฐ์ ํ์ธ์. "
|
19 |
+
"์ธ๋ค์ผ ์ด๋ฏธ์ง๋ฅผ ํํน์ด ๊ฐํ ์คํ์ผ๋ก ๋ฐ๊พธ๊ณ , ์ผ์์ฐ์ 30% ๋์ด์ธ์. "
|
20 |
+
"๊ด๊ณ ์์ต๋ฅ (ROAS)์ 450% ์ดํ๋ก ๋ฎ์ถ๋ ๊ฒ๋ ๊ณ ๋ คํ์ธ์."
|
21 |
+
)
|
22 |
+
elif click_rate >= 1.3 and conversion_rate < 3:
|
23 |
+
result = (
|
24 |
+
"๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ์ ๋์ผ๋ ์ ํ์จ์ด ๋ฎ์ต๋๋ค. "
|
25 |
+
"์ ํ์จ์ ๊ฐ์ ํ๊ธฐ ์ํ ์์ธํ์ด์ง ๋ฐ ๋ฆฌ๋ทฐ๋ฅผ ์ ๊ฒํ์ธ์. "
|
26 |
+
"๊ด๊ณ ์์ต๋ฅ (ROAS)์ ์ ์งํ๋ฉฐ ์ ํ์จ ๋ณํ๋ฅผ ๋ชจ๋ํฐ๋งํ์ธ์."
|
27 |
+
)
|
28 |
+
elif click_rate >= 1.3 and conversion_rate >= 3:
|
29 |
+
result = (
|
30 |
+
"๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ๊ณผ ์ ํ์จ์ด ๋ชจ๋ ๋์ต๋๋ค. "
|
31 |
+
"๊ด๊ณ ๋น๋ฅผ ๋ ๋์ด๊ฑฐ๋ ์ถ๊ฐ ๊ด๊ณ ๋ฅผ ์งํํด ์ฑ๊ณผ๋ฅผ ๊ทน๋ํํ์ธ์. "
|
32 |
+
"๋ค๋ฅธ ๊ด๊ณ ์ฑ๋์์๋ ๋์ผํ ์ฑ๊ณผ๋ฅผ ๋ชฉํ๋ก ์ ๋ต์ ๊ฒํ ํ์ธ์."
|
33 |
+
)
|
34 |
+
|
35 |
+
# ๋น๊ฒ์ ๊ด๊ณ ์ ๋ต
|
36 |
+
if click_rate < 0.3 and conversion_rate < 2:
|
37 |
+
result += (
|
38 |
+
"\n\n๋น๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ๊ณผ ์ ํ์จ์ด ๋ชจ๋ ๋ฎ์ต๋๋ค. "
|
39 |
+
"ํด๋ฆญ๋ฅ ๊ฐ์ ์ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํ๊ฑฐ๋ ๊ฒ์ ๊ด๊ณ ์ ๋ ์ง์คํ์ธ์. "
|
40 |
+
"์ผ์์ฐ์ ๋๋ฆฌ๊ณ ROAS๋ฅผ 300% ์ดํ๋ก ๋ฎ์ถ๋ ๊ฒ๋ ํ ๋ฐฉ๋ฒ์
๋๋ค."
|
41 |
+
)
|
42 |
+
elif click_rate < 0.3 and conversion_rate >= 2:
|
43 |
+
result += (
|
44 |
+
"\n\n๋น๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ์ ๋ฎ๊ณ ์ ํ์จ์ ๋์ต๋๋ค. "
|
45 |
+
"ํ๊ฒ ํ๋๋ฅผ ์๋ํ๊ณ ์ด๊ธฐ ํ
์คํธ๋ฅผ ์งํํ์ธ์. "
|
46 |
+
"๊ฒ์ ์์ญ์ผ๋ก ์ ํํ์ฌ ๋ ๋์ ์ฑ๊ณผ๋ฅผ ๊ธฐ๋ํ ์ ์์ต๋๋ค."
|
47 |
+
)
|
48 |
+
elif click_rate >= 0.3 and conversion_rate < 2:
|
49 |
+
result += (
|
50 |
+
"\n\n๋น๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ์ ๋์ผ๋ ์ ํ์จ์ด ๋ฎ์ต๋๋ค. "
|
51 |
+
"์์ธํ์ด์ง๋ฅผ ๊ฐ์ ํ๊ฑฐ๋ ์ ํ์จ์ ๋์ผ ์ ์๋ ํ
์คํธ๋ฅผ ์งํํ์ธ์."
|
52 |
+
)
|
53 |
+
elif click_rate >= 0.3 and conversion_rate >= 2:
|
54 |
+
result += (
|
55 |
+
"\n\n๋น๊ฒ์ ๊ด๊ณ ์ ๋ต: ํด๋ฆญ๋ฅ ๊ณผ ์ ํ์จ์ด ๋ชจ๋ ๋์ต๋๋ค. "
|
56 |
+
"๋น๊ฒ์ ์์ญ์ ์ถ๊ฐ ํฌ์๋ฅผ ๊ณ ๋ คํ์ธ์. "
|
57 |
+
"๋ฉํ, ํ ์ค ๋ฑ ์ธ๋ถ ๊ด๊ณ ์ฑ๋์ ๋ณํํ์ฌ ์ฑ๊ณผ๋ฅผ ๊ทน๋ํํ์ธ์."
|
58 |
+
)
|
59 |
+
|
60 |
+
return result
|
61 |
+
|
62 |
+
# Gradio ์ธํฐํ์ด์ค ๊ตฌ์ฑ
|
63 |
+
with gr.Blocks() as demo:
|
64 |
+
gr.Markdown("## ๊ด๊ณ ์ค์ ๋ณ๊ฒฝ ์ถ์ฒ ๋์ฐ๋ฏธ")
|
65 |
+
|
66 |
+
with gr.Row():
|
67 |
+
click_rate_slider = gr.Slider(
|
68 |
+
minimum=0.0, maximum=5.0, step=0.1, label="ํด๋ฆญ๋ฅ (CTR) ์
๋ ฅ", value=1.0, interactive=True
|
69 |
+
)
|
70 |
+
conversion_rate_slider = gr.Slider(
|
71 |
+
minimum=0.0, maximum=10.0, step=0.1, label="์ ํ์จ(CVR) ์
๋ ฅ", value=3.0, interactive=True
|
72 |
+
)
|
73 |
+
|
74 |
+
with gr.Row():
|
75 |
+
click_rate_input = gr.Textbox(label="ํด๋ฆญ๋ฅ (CTR) ์ง์ ์
๋ ฅ (0.0~5.0)")
|
76 |
+
conversion_rate_input = gr.Textbox(label="์ ํ์จ(CVR) ์ง์ ์
๋ ฅ (0.0~10.0)")
|
77 |
+
|
78 |
+
result_output = gr.Textbox(label="์ถ์ฒ ๊ด๊ณ ์ ๋ต")
|
79 |
+
|
80 |
+
def update_from_input(click_rate_text, conversion_rate_text):
|
81 |
+
try:
|
82 |
+
click_rate = float(click_rate_text) if click_rate_text else 0.0
|
83 |
+
conversion_rate = float(conversion_rate_text) if conversion_rate_text else 0.0
|
84 |
+
except ValueError:
|
85 |
+
return "CTR ๋ฐ CVR ์
๋ ฅ ๊ฐ์ ์ซ์์ฌ์ผ ํฉ๋๋ค."
|
86 |
+
|
87 |
+
return ๊ด๊ณ _์ ๋ต_์ถ์ฒ(click_rate, conversion_rate)
|
88 |
+
|
89 |
+
# ์ฌ๋ผ์ด๋ ๋๋ ํ
์คํธ ๋ฐ์ค ์
๋ฐ์ดํธ ์ฐ๊ฒฐ
|
90 |
+
click_rate_slider.change(fn=๊ด๊ณ _์ ๋ต_์ถ์ฒ, inputs=[click_rate_slider, conversion_rate_slider], outputs=result_output)
|
91 |
+
conversion_rate_slider.change(fn=๊ด๊ณ _์ ๋ต_์ถ์ฒ, inputs=[click_rate_slider, conversion_rate_slider], outputs=result_output)
|
92 |
+
click_rate_input.change(fn=update_from_input, inputs=[click_rate_input, conversion_rate_input], outputs=result_output)
|
93 |
+
conversion_rate_input.change(fn=update_from_input, inputs=[click_rate_input, conversion_rate_input], outputs=result_output)
|
94 |
+
|
95 |
+
demo.launch()
|