mohammed-aljafry commited on
Commit
6709cb4
·
verified ·
1 Parent(s): a933af2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -8
app.py CHANGED
@@ -127,23 +127,60 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="sky"), cs
127
  with gr.Group():
128
  gr.Markdown("## 🗂️ ارفع ملفات السيناريو")
129
 
130
- # --- [هذا هو السطر الذي تم تعديله] ---
131
  api_rgb_image_path = gr.Image(type="filepath", label="صورة الكاميرا الأمامية (RGB)")
132
-
133
  api_measurements_path = gr.File(label="ملف القياسات (JSON)", type="filepath")
134
  api_target_point_list = gr.JSON(label="📍 النقطة المستهدفة (x, y) بالنسبة للسيارة", value=[0.0, 100.0])
135
  api_run_button = gr.Button("🚀 أرسل البيانات للمعالجة", variant="primary")
 
 
 
 
 
 
 
136
  with gr.Group():
137
  gr.Markdown("### ✨ أمثلة جاهزة")
138
- if os.path.isdir(EXAMPLES_DIR):
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  gr.Examples(
140
  examples=[
141
- [os.path.join(EXAMPLES_DIR, "sample1", "rgb.jpg"), os.path.join(EXAMPLES_DIR, "sample1", "measurements.json")],
142
- [os.path.join(EXAMPLES_DIR, "sample2", "rgb.jpg"), os.path.join(EXAMPLES_DIR, "sample2", "measurements.json")]
 
 
 
 
 
 
 
 
 
 
 
 
143
  ],
144
- inputs=[api_rgb_image_path, api_measurements_path],
145
- label="اختر سيناريو اختبار"
 
 
 
146
  )
 
 
 
147
 
148
  # -- العمود الأيمن: المخرجات --
149
  with gr.Column(scale=2):
@@ -153,6 +190,7 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="sky"), cs
153
  api_control_json = gr.JSON(label="أوامر التحكم (��ن الـ API)")
154
 
155
  # --- ربط منطق الواجهة ---
 
156
  start_session_button.click(
157
  fn=start_new_session,
158
  inputs=None,
@@ -170,6 +208,5 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="sky"), cs
170
  inputs=[session_id_state, api_rgb_image_path, api_measurements_path, api_target_point_list],
171
  outputs=[api_output_image, api_control_json],
172
  )
173
-
174
  if __name__ == "__main__":
175
  demo.queue().launch(debug=True)
 
127
  with gr.Group():
128
  gr.Markdown("## 🗂️ ارفع ملفات السيناريو")
129
 
130
+ # استخدام gr.Image لعرض الصور المصغرة في الأمثلة
131
  api_rgb_image_path = gr.Image(type="filepath", label="صورة الكاميرا الأمامية (RGB)")
 
132
  api_measurements_path = gr.File(label="ملف القياسات (JSON)", type="filepath")
133
  api_target_point_list = gr.JSON(label="📍 النقطة المستهدفة (x, y) بالنسبة للسيارة", value=[0.0, 100.0])
134
  api_run_button = gr.Button("🚀 أرسل البيانات للمعالجة", variant="primary")
135
+
136
+ # --- [تعديل 1] إضافة مكونات نصية مخفية ---
137
+ # هذه المكونات لن تظهر في الواجهة الرئيسية، ولكنها ستظهر كأعمدة في الأمثلة
138
+ with gr.Row(visible=False):
139
+ example_speed = gr.Textbox(label="Speed")
140
+ example_pos = gr.Textbox(label="Position")
141
+
142
  with gr.Group():
143
  gr.Markdown("### ✨ أمثلة جاهزة")
144
+ # التحقق من وجود مجلد الأمثلة لتجنب الأخطاء
145
+ if os.path.isdir(EXAMPLES_DIR) and \
146
+ os.path.exists(os.path.join(EXAMPLES_DIR, "sample1", "measurements.json")) and \
147
+ os.path.exists(os.path.join(EXAMPLES_DIR, "sample2", "measurements.json")):
148
+
149
+ # --- [تعديل 2] توسيع قائمة الأمثلة ---
150
+ # قراءة بيانات المثال الأول
151
+ with open(os.path.join(EXAMPLES_DIR, "sample1", "measurements.json"), 'r') as f:
152
+ data1 = json.load(f)
153
+
154
+ # قراءة بيانات المثال الثاني
155
+ with open(os.path.join(EXAMPLES_DIR, "sample2", "measurements.json"), 'r') as f:
156
+ data2 = json.load(f)
157
+
158
  gr.Examples(
159
  examples=[
160
+ # بيانات المثال الأول
161
+ [
162
+ os.path.join(EXAMPLES_DIR, "sample1", "rgb.jpg"),
163
+ os.path.join(EXAMPLES_DIR, "sample1", "measurements.json"),
164
+ str(data1.get('speed', 'N/A')), # القيمة للعمود الإضافي الأول
165
+ str([data1.get('x', 'N/A'), data1.get('y', 'N/A')]) # القيمة للعمود الإضافي الثاني
166
+ ],
167
+ # بيانات المثال الثاني
168
+ [
169
+ os.path.join(EXAMPLES_DIR, "sample2", "rgb.jpg"),
170
+ os.path.join(EXAMPLES_DIR, "sample2", "measurements.json"),
171
+ str(data2.get('speed', 'N/A')),
172
+ str([data2.get('x', 'N/A'), data2.get('y', 'N/A')])
173
+ ]
174
  ],
175
+ # --- [تعديل 3] ربط البيانات بالمكونات ---
176
+ inputs=[api_rgb_image_path, api_measurements_path, example_speed, example_pos],
177
+ label="اختر سيناريو اختبار",
178
+ # تغيير عناوين الأعمدة
179
+ headers=["صورة الكاميرا", "ملف القياسات", "السرعة (m/s)", "الإحداثيات"]
180
  )
181
+ else:
182
+ gr.Markdown("لم يتم العثور على مجلد الأمثلة (`examples`) أو محتوياته.")
183
+
184
 
185
  # -- العمود الأيمن: المخرجات --
186
  with gr.Column(scale=2):
 
190
  api_control_json = gr.JSON(label="أوامر التحكم (��ن الـ API)")
191
 
192
  # --- ربط منطق الواجهة ---
193
+ # هذا الجزء لا يحتاج إلى تعديل
194
  start_session_button.click(
195
  fn=start_new_session,
196
  inputs=None,
 
208
  inputs=[session_id_state, api_rgb_image_path, api_measurements_path, api_target_point_list],
209
  outputs=[api_output_image, api_control_json],
210
  )
 
211
  if __name__ == "__main__":
212
  demo.queue().launch(debug=True)