leilaghomashchi commited on
Commit
c4a6abd
·
verified ·
1 Parent(s): c825951

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -6
app.py CHANGED
@@ -189,10 +189,13 @@ class AnonymizationEvaluator:
189
  timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
190
  filename = f"evaluation_results_{timestamp}.csv"
191
 
192
- # ذخیره فایل
193
- self.results_df.to_csv(filename, index=False, encoding='utf-8-sig')
194
-
195
- return filename
 
 
 
196
 
197
  def create_evaluation_interface():
198
  """ایجاد رابط کاربری ارزیابی"""
@@ -254,7 +257,7 @@ def create_evaluation_interface():
254
  )
255
 
256
  download_btn = gr.Button(
257
- "💾 دانلود نتایج",
258
  variant="secondary",
259
  visible=False
260
  )
@@ -337,10 +340,16 @@ def create_evaluation_interface():
337
 
338
  def download_results():
339
  try:
 
 
 
 
 
 
340
  filename = evaluator.create_downloadable_csv()
341
  if filename:
342
  return (
343
- "✅ فایل نتایج آماده دانلود است",
344
  gr.File(value=filename, visible=True)
345
  )
346
  else:
@@ -402,7 +411,41 @@ def create_evaluation_interface():
402
  - فایل خروجی شامل ستون‌های اصلی + سه ستون متریک خواهد بود
403
  - متریک‌ها برای هر سطر جداگانه محاسبه می‌شوند
404
  - آمار کلی در گزارش خلاصه نمایش داده می‌شود
 
 
 
 
 
 
 
405
  """)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
 
407
  return interface
408
 
 
189
  timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
190
  filename = f"evaluation_results_{timestamp}.csv"
191
 
192
+ try:
193
+ # ذخیره فایل با encoding مناسب برای فارسی
194
+ self.results_df.to_csv(filename, index=False, encoding='utf-8-sig')
195
+ return filename
196
+ except Exception as e:
197
+ print(f"خطا در ایجاد فایل: {str(e)}")
198
+ return None
199
 
200
  def create_evaluation_interface():
201
  """ایجاد رابط کاربری ارزیابی"""
 
257
  )
258
 
259
  download_btn = gr.Button(
260
+ "💾 دانلود نتایج CSV",
261
  variant="secondary",
262
  visible=False
263
  )
 
340
 
341
  def download_results():
342
  try:
343
+ if evaluator.results_df is None or evaluator.results_df.empty:
344
+ return (
345
+ "❌ هیچ داده‌ای برای دانلود وجود ندارد. ابتدا ارزیابی را انجام دهید.",
346
+ gr.File(visible=False)
347
+ )
348
+
349
  filename = evaluator.create_downloadable_csv()
350
  if filename:
351
  return (
352
+ f"✅ فایل نتایج آماده شد: {filename} ({len(evaluator.results_df)} سطر)",
353
  gr.File(value=filename, visible=True)
354
  )
355
  else:
 
411
  - فایل خروجی شامل ستون‌های اصلی + سه ستون متریک خواهد بود
412
  - متریک‌ها برای هر سطر جداگانه محاسبه می‌شوند
413
  - آمار کلی در گزارش خلاصه نمایش داده می‌شود
414
+
415
+ ### مشکل در دانلود؟
416
+
417
+ اگر فایل دانلود نمی‌شود:
418
+ 1. مرورگر خود را رفرش کنید
419
+ 2. مجدداً ارزیابی را انجام دهید
420
+ 3. اطمینان حاصل کنید که popup blocker غیرفعال است
421
  """)
422
+
423
+ # تست دانلود
424
+ with gr.Accordion("🧪 تست دانلود", open=False):
425
+ gr.Markdown("برای تست عملکرد دانلود:")
426
+ test_download_btn = gr.Button("تست دانلود فایل نمونه")
427
+ test_file_output = gr.File(label="فایل تست", visible=False)
428
+
429
+ def create_test_file():
430
+ """ایجاد فایل تست برای بررسی دانلود"""
431
+ import pandas as pd
432
+ test_data = {
433
+ 'original_text': ['متن تست 1', 'متن تست 2'],
434
+ 'Reference_text': ['company-01 amount-01', 'person-01 amount-02'],
435
+ 'anonymized_text': ['company-01 amount-01', 'person-01 amount-02'],
436
+ 'Precision': [1.0, 1.0],
437
+ 'Recall': [1.0, 1.0],
438
+ 'F1_Score': [1.0, 1.0]
439
+ }
440
+ test_df = pd.DataFrame(test_data)
441
+ test_filename = "test_download.csv"
442
+ test_df.to_csv(test_filename, index=False, encoding='utf-8-sig')
443
+ return gr.File(value=test_filename, visible=True)
444
+
445
+ test_download_btn.click(
446
+ fn=create_test_file,
447
+ outputs=[test_file_output]
448
+ )
449
 
450
  return interface
451