lk080424 commited on
Commit
6dfda2e
·
verified ·
1 Parent(s): f8eff37

Upload core/api_inference.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. core/api_inference.py +25 -14
core/api_inference.py CHANGED
@@ -257,20 +257,31 @@ class APIInferenceManager:
257
  executor.submit(_call, i, a, m, msgs, mtok): i
258
  for i, (a, m, msgs, mtok) in enumerate(tasks)
259
  }
260
- for future in as_completed(futures, timeout=timeout_per_model + 5):
261
- try:
262
- idx, result = future.result(timeout=timeout_per_model)
263
- self._update_stats(result)
264
- results[idx] = result
265
- except Exception as e:
266
- idx = futures[future]
267
- adapter, model = tasks[idx][0], tasks[idx][1]
268
- result = APIInferenceResult(
269
- success=False, answer="", model=model.model_name,
270
- provider=model.provider, latency_ms=0, error=str(e)
271
- )
272
- self._update_stats(result)
273
- results[idx] = result
 
 
 
 
 
 
 
 
 
 
 
274
 
275
  return [r for r in results if r is not None]
276
 
 
257
  executor.submit(_call, i, a, m, msgs, mtok): i
258
  for i, (a, m, msgs, mtok) in enumerate(tasks)
259
  }
260
+ try:
261
+ for future in as_completed(futures, timeout=30.0):
262
+ try:
263
+ idx, result = future.result(timeout=5.0)
264
+ self._update_stats(result)
265
+ results[idx] = result
266
+ except Exception as e:
267
+ idx = futures[future]
268
+ adapter, model = tasks[idx][0], tasks[idx][1]
269
+ result = APIInferenceResult(
270
+ success=False, answer="", model=model.model_name,
271
+ provider=model.provider, latency_ms=0, error=str(e)
272
+ )
273
+ self._update_stats(result)
274
+ results[idx] = result
275
+ except TimeoutError:
276
+ # 部分future未完成,收集已完成的结果
277
+ for future, idx in futures.items():
278
+ if results[idx] is None and future.done():
279
+ try:
280
+ _, result = future.result(timeout=0)
281
+ self._update_stats(result)
282
+ results[idx] = result
283
+ except:
284
+ pass
285
 
286
  return [r for r in results if r is not None]
287