edwinbh commited on
Commit
a9e79c2
·
verified ·
1 Parent(s): 46307ce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -47
app.py CHANGED
@@ -1,6 +1,5 @@
1
  import gradio as gr
2
  import requests
3
- import json
4
  from datetime import datetime
5
 
6
  # URL webhook شما
@@ -14,10 +13,14 @@ def send_message(phone_number, message, history):
14
  ارسال پیام به webhook و دریافت پاسخ
15
  """
16
  if not phone_number:
17
- return history + [["سیستم", "⚠️ لطفاً ابتدا شماره تلفن خود را وارد کنید!"]]
 
 
18
 
19
  if not message:
20
- return history
 
 
21
 
22
  # ساخت یا بازیابی session_id
23
  if phone_number not in session_data:
@@ -53,17 +56,17 @@ def send_message(phone_number, message, history):
53
  if result.get("order_complete"):
54
  history.append(["سیستم", "✅ سفارش شما کامل شد!"])
55
 
56
- return history
57
  else:
58
- history.append([message, f"❌ خطا: {response.status_code} - {response.text}"])
59
- return history
60
 
61
  except requests.exceptions.Timeout:
62
  history.append([message, "⏱️ زمان انتظار تمام شد. لطفاً دوباره تلاش کنید."])
63
- return history
64
  except requests.exceptions.RequestException as e:
65
  history.append([message, f"❌ خطای اتصال: {str(e)}"])
66
- return history
67
 
68
  def clear_chat(phone_number):
69
  """
@@ -71,45 +74,28 @@ def clear_chat(phone_number):
71
  """
72
  if phone_number in session_data:
73
  del session_data[phone_number]
74
- return []
75
 
76
- # رابط Gradio - سازگار با ورژن قدیمی
77
- with gr.Blocks(css="""
78
- .gradio-container {
79
- max-width: 800px !important;
80
- margin: auto !important;
81
- }
82
- """) as demo:
83
 
84
- gr.Markdown("""
85
- # 🤖 دستیار هوشمند سفارش
86
 
87
- به ربات سفارش‌گیری خوش آمدید! لطفاً شماره تلفن خود را وارد کرده و شروع به چت کنید.
88
- """)
89
 
90
- with gr.Row():
91
- phone_input = gr.Textbox(
92
- label="📱 شماره تلفن",
93
- placeholder="مثال: 09123456789"
94
- )
95
- clear_btn = gr.Button("🗑️ پاک کردن چت")
96
 
97
- chatbot = gr.Chatbot(
98
- label="گفتگو"
99
- )
100
 
101
  with gr.Row():
102
- msg_input = gr.Textbox(
103
- label="پیام شما",
104
- placeholder="پیام خود را بنویسید..."
105
- )
106
  send_btn = gr.Button("📤 ارسال")
 
107
 
108
  gr.Markdown("""
109
  ### 💡 نکات:
110
  - ابتدا شماره تلفن خود را وارد کنید
111
  - سفارش خود را به صورت کامل بیان کنید
112
- - می‌توانید از دستورات مختلف استفاده کنید
113
 
114
  ### 📋 مثال‌های سفارش:
115
  - "سلام، یک چیزبرگر دوبل و یک نوشابه می‌خوام"
@@ -118,22 +104,16 @@ with gr.Blocks(css="""
118
  """)
119
 
120
  # اتصال رویدادها
121
- msg_input.submit(
122
  fn=send_message,
123
  inputs=[phone_input, msg_input, chatbot],
124
- outputs=[chatbot]
125
- ).then(
126
- lambda: "",
127
- outputs=[msg_input]
128
  )
129
 
130
- send_btn.click(
131
  fn=send_message,
132
  inputs=[phone_input, msg_input, chatbot],
133
- outputs=[chatbot]
134
- ).then(
135
- lambda: "",
136
- outputs=[msg_input]
137
  )
138
 
139
  clear_btn.click(
@@ -145,8 +125,7 @@ with gr.Blocks(css="""
145
  # اجرای برنامه
146
  if __name__ == "__main__":
147
  demo.launch(
148
- server_name="0.0.0.0", # برای دسترسی از بیرون
149
  server_port=7860,
150
- share=False, # اگر می‌خواهید لینک عمومی داشته باشید، True کنید
151
- show_error=True
152
  )
 
1
  import gradio as gr
2
  import requests
 
3
  from datetime import datetime
4
 
5
  # URL webhook شما
 
13
  ارسال پیام به webhook و دریافت پاسخ
14
  """
15
  if not phone_number:
16
+ history = history or []
17
+ history.append(["سیستم", "⚠️ لطفاً ابتدا شماره تلفن خود را وارد کنید!"])
18
+ return history, ""
19
 
20
  if not message:
21
+ return history, ""
22
+
23
+ history = history or []
24
 
25
  # ساخت یا بازیابی session_id
26
  if phone_number not in session_data:
 
56
  if result.get("order_complete"):
57
  history.append(["سیستم", "✅ سفارش شما کامل شد!"])
58
 
59
+ return history, ""
60
  else:
61
+ history.append([message, f"❌ خطا: {response.status_code}"])
62
+ return history, ""
63
 
64
  except requests.exceptions.Timeout:
65
  history.append([message, "⏱️ زمان انتظار تمام شد. لطفاً دوباره تلاش کنید."])
66
+ return history, ""
67
  except requests.exceptions.RequestException as e:
68
  history.append([message, f"❌ خطای اتصال: {str(e)}"])
69
+ return history, ""
70
 
71
  def clear_chat(phone_number):
72
  """
 
74
  """
75
  if phone_number in session_data:
76
  del session_data[phone_number]
77
+ return None
78
 
79
+ # رابط Gradio - بدون هیچ پارامتر اضافی
80
+ with gr.Blocks() as demo:
 
 
 
 
 
81
 
82
+ gr.Markdown("# 🤖 دستیار هوشمند سفارش")
83
+ gr.Markdown("به ربات سفارش‌گیری خوش آمدید! لطفاً شماره تلفن خود را وارد کرده و شروع به چت کنید.")
84
 
85
+ phone_input = gr.Textbox(label="📱 شماره تلفن", placeholder="مثال: 09123456789")
 
86
 
87
+ chatbot = gr.Chatbot(label="گفتگو")
 
 
 
 
 
88
 
89
+ msg_input = gr.Textbox(label="پیام شما", placeholder="پیام خود را بنویسید...")
 
 
90
 
91
  with gr.Row():
 
 
 
 
92
  send_btn = gr.Button("📤 ارسال")
93
+ clear_btn = gr.Button("🗑️ پاک کردن چت")
94
 
95
  gr.Markdown("""
96
  ### 💡 نکات:
97
  - ابتدا شماره تلفن خود را وارد کنید
98
  - سفارش خود را به صورت کامل بیان کنید
 
99
 
100
  ### 📋 مثال‌های سفارش:
101
  - "سلام، یک چیزبرگر دوبل و یک نوشابه می‌خوام"
 
104
  """)
105
 
106
  # اتصال رویدادها
107
+ send_btn.click(
108
  fn=send_message,
109
  inputs=[phone_input, msg_input, chatbot],
110
+ outputs=[chatbot, msg_input]
 
 
 
111
  )
112
 
113
+ msg_input.submit(
114
  fn=send_message,
115
  inputs=[phone_input, msg_input, chatbot],
116
+ outputs=[chatbot, msg_input]
 
 
 
117
  )
118
 
119
  clear_btn.click(
 
125
  # اجرای برنامه
126
  if __name__ == "__main__":
127
  demo.launch(
128
+ server_name="0.0.0.0",
129
  server_port=7860,
130
+ share=False
 
131
  )