Spaces:
Running
Running
Upload core/api_inference.py with huggingface_hub
Browse files- 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 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|