in project/paperbench/paperbench/judge/judge.py [0:0]
def _get_leaf_node_token_usages(task: GradedTaskNode) -> list[TokenUsage]:
"""Recursively extract token usage from leaf nodes of the task tree"""
if task.is_leaf():
# need this check because judge_metadata may be malformed in case of node errors
if task.judge_metadata is not None and "token_usage" in task.judge_metadata:
return [TokenUsage.from_dict(task.judge_metadata["token_usage"])]
else:
return []
token_usages = []
for t in task.sub_tasks:
t_usages = _get_leaf_node_token_usages(t)
token_usages.extend(t_usages)
return token_usages