Spaces:
Sleeping
Sleeping
File size: 3,034 Bytes
5aa1b8c 4316a60 7eb8d3b 4316a60 5aa1b8c 7eb8d3b 4316a60 7eb8d3b 5aa1b8c 4316a60 5aa1b8c 4de73ea 4316a60 5aa1b8c 4316a60 5aa1b8c 4316a60 7eb8d3b 4316a60 5aa1b8c 4316a60 5aa1b8c 4316a60 4de73ea dfa76ef 5aa1b8c 7eb8d3b 5aa1b8c dfa76ef 4316a60 5aa1b8c 4316a60 7eb8d3b |
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 |
# app.py - نسخه فوق سبک و تضمینی برای HF Spaces (با T4/A10G)
import gradio as gr
from catboost import CatBoostRegressor
# لود مدل با پیام انتظار (تا کاربر بفهمه داره لود میشه)
model = CatBoostRegressor()
model.load_model("kaatib_v8_optimized.cbm")
def predict(area_type, area, rooms, neighborhood, elevator, parking, warehouse, age):
effective_area = area if area_type == "متراژ مفید (معمول در دیوار)" else area * 0.87
pred = model.predict([[
effective_area,
__import__("numpy").log1p(effective_area),
rooms,
age,
1 if age <= 5 else 0,
neighborhood.strip(),
elevator,
parking,
warehouse
]])[0] / 1_000_000_000
return f"""
<div style="text-align:center;padding:35px;background:#0d2b1f;color:white;border-radius:18px;border:4px solid #d4af37;">
<h1 style="color:#d4af37;font-size:48px;margin:10px 0">{pred:.2f} میلیارد تومان</h1>
<p style="font-size:20px;color:#b8d5cd">رنج واقعی: {(pred*0.88):.2f} – {(pred*1.15):.2f} میلیارد</p>
</div>
"""
with gr.Blocks(title="کاتب - پیشبینی قیمت آپارتمان تهران") as app:
gr.HTML("""
<div style="text-align:center;padding:50px;background:linear-gradient(135deg,#0d2b1f,#1e4d38);border-radius:20px;margin-bottom:30px">
<h1 style="font-size:62px;margin:0;color:#d4af37;text-shadow:0 0 30px #d4af3777">کاتب</h1>
<p style="font-size:28px;color:#b8d5cd">هوش مصنوعی پیشبینی قیمت مسکن تهران</p>
<p style="font-size:20px;color:#8fb8a2">۸۱,۰۰۰ آگهی واقعی دیوار ۱۴۰۴</p>
</div>
""")
with gr.Row():
area_type = gr.Radio(["متراژ مفید (معمول در دیوار)", "متراژ سندی"], value="متراژ مفید (معمول در دیوار)", label="نوع متراژ")
with gr.Row():
area = gr.Slider(40, 450, 90, step=1, label="متراژ")
rooms = gr.Dropdown([1,2,3,4,5,6], value=3, label="تعداد خواب")
neighborhood = gr.Textbox(placeholder="مثل: سعادت آباد، پونک، نیاوران...", label="محله")
with gr.Row():
elevator = gr.Checkbox(label="آسانسور", value=True)
parking = gr.Checkbox(label="پارکینگ", value=True)
warehouse = gr.Checkbox(label="انباری", value=True)
age = gr.Slider(0, 50, 8, step=1, label="سن بنا (سال)")
gr.Button("پیشبینی قیمت").click(
predict,
inputs=[area_type, area, rooms, neighborhood, elevator, parking, warehouse, age],
outputs=gr.Markdown()
)
gr.HTML("""
<div style="text-align:center;margin-top:50px;padding:30px;background:#f8f9fa;border-radius:18px;border:2px dashed #d4af37">
<p style="color:#d4af37;font-size:24px">ساخته شده با افتخار در ایران</p>
</div>
""")
app.launch() |