Riy777 commited on
Commit
b7dc94c
·
1 Parent(s): 5187c1c

Update ML.py

Browse files
Files changed (1) hide show
  1. ML.py +46 -0
ML.py CHANGED
@@ -1249,4 +1249,50 @@ def safe_json_parse(json_string):
1249
  print(f"❌ فشل تحليل JSON بعد الإصلاح: {e}")
1250
  return None
1251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1252
  print("✅ ML Processor loaded - No Default Values & Enhanced Analysis")
 
1249
  print(f"❌ فشل تحليل JSON بعد الإصلاح: {e}")
1250
  return None
1251
 
1252
+
1253
+ async def process_multiple_symbols_parallel(self, symbols_data_list, max_concurrent=20):
1254
+ """معالجة متعددة للرموز بشكل متوازي مع التحكم في التزامن"""
1255
+ try:
1256
+ print(f"🚀 بدء المعالجة المتوازية لـ {len(symbols_data_list)} رمز (بحد أقصى {max_concurrent} متزامنة)...")
1257
+
1258
+ # تقسيم العمل إلى دفعات لتجنب الحمل الزائد
1259
+ batches = [symbols_data_list[i:i + max_concurrent]
1260
+ for i in range(0, len(symbols_data_list), max_concurrent)]
1261
+
1262
+ all_results = []
1263
+
1264
+ for batch_num, batch in enumerate(batches):
1265
+ print(f" 🔄 معالجة الدفعة {batch_num + 1}/{len(batches)} ({len(batch)} رمز)...")
1266
+
1267
+ # إنشاء مهام للدفعة الحالية
1268
+ batch_tasks = []
1269
+ for symbol_data in batch:
1270
+ task = asyncio.create_task(self.process_and_score_symbol_enhanced(symbol_data))
1271
+ batch_tasks.append(task)
1272
+
1273
+ # انتظار انتهاء الدفعة الحالية
1274
+ batch_results = await asyncio.gather(*batch_tasks, return_exceptions=True)
1275
+
1276
+ # تصفية النتائج الناجحة
1277
+ successful_results = []
1278
+ for result in batch_results:
1279
+ if isinstance(result, Exception):
1280
+ continue
1281
+ if result and result.get('enhanced_final_score', 0) > 0.4:
1282
+ successful_results.append(result)
1283
+
1284
+ all_results.extend(successful_results)
1285
+ print(f" ✅ اكتملت الدفعة {batch_num + 1}: {len(successful_results)}/{len(batch)} ناجحة")
1286
+
1287
+ # انتظار قصير بين الدفعات لتجنب rate limits
1288
+ if batch_num < len(batches) - 1:
1289
+ await asyncio.sleep(1)
1290
+
1291
+ print(f"🎯 اكتملت المعالجة المتوازية: {len(all_results)}/{len(symbols_data_list)} رمز تم تحليلها بنجاح")
1292
+ return all_results
1293
+
1294
+ except Exception as error:
1295
+ print(f"❌ خطأ في المعالجة المتوازية: {error}")
1296
+ return []
1297
+
1298
  print("✅ ML Processor loaded - No Default Values & Enhanced Analysis")