MCPcopy Index your code
hub / github.com/SkyworkAI/DeepResearchAgent / inference_and_queue_worker

Function inference_and_queue_worker

examples/run_leetcode_agent.py:326–358  ·  view source on GitHub ↗

推理工作器:完成推理后直接入队。 队列满 batch_size 时自动触发 push + 评测。 使用 benchmark 内部的队列锁确保同一时间只有一个 task 入队。

(task: Task)

Source from the content-addressed store, hash-verified

324 f"Errors: {stats['direct_saved']}", end="", flush=True)
325
326 async def inference_and_queue_worker(task: Task):
327 """
328 推理工作器:完成推理后直接入队。
329 队列满 batch_size 时自动触发 push + 评测。
330 使用 benchmark 内部的队列锁确保同一时间只有一个 task 入队。
331 """
332 # 1. 执行推理
333 inferred_task = await inference_single_task(task, save_dir, inference_semaphore)
334
335 # 2. 更新统计并入队
336 async with stats_lock:
337 stats["inference_done"] += 1
338
339 if not inferred_task.result:
340 # 推理失败,直接保存结果,不入队列
341 stats["direct_saved"] += 1
342 if hasattr(benchmark, 'save_error_result_directly'):
343 await benchmark.save_error_result_directly(inferred_task, prediction="response_error")
344 logger.info(f"| ⚠️ [Task {inferred_task.task_id}] No code, saved directly")
345 else:
346 # 推理成功,入队列(benchmark 内部有锁)
347 stats["queued"] += 1
348
349 # 入队操作放在 stats_lock 外面,避免死锁
350 # benchmark.queue_for_eval 内部有自己的锁
351 if inferred_task.result:
352 triggered_eval = await benchmark.queue_for_eval(inferred_task)
353 if triggered_eval:
354 async with stats_lock:
355 stats["batches_evaluated"] += 1
356
357 print_status()
358 return inferred_task
359
360 # ==========================================
361 # 启动流水线:所有推理任务并发执行

Callers 1

test_leetcode_benchmarkFunction · 0.70

Calls 5

queue_for_evalMethod · 0.80
inference_single_taskFunction · 0.70
print_statusFunction · 0.70
infoMethod · 0.45

Tested by 1

test_leetcode_benchmarkFunction · 0.56