feat(token-tracking): capture token usage in /api/score/async job runs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -108,6 +108,7 @@ class ScoreJobManager:
|
||||
|
||||
# Lazy imports to keep web server bootable if ragas is not installed.
|
||||
from rag_eval.advisor import run_advisor
|
||||
from rag_eval.metrics.token_tracker import track_token_usage
|
||||
from rag_eval.metrics.weights import compute_weighted_score
|
||||
from rag_eval.reporting.writers import write_run_artifacts
|
||||
from rag_eval.settings import EvaluationSettings
|
||||
@@ -130,20 +131,21 @@ class ScoreJobManager:
|
||||
started_at = utc_now_iso()
|
||||
|
||||
try:
|
||||
if effective:
|
||||
raw_scores = inline_scorer.score(
|
||||
question=request.question,
|
||||
answer=request.answer,
|
||||
contexts=request.contexts_as_list(),
|
||||
ground_truth=request.ground_truth,
|
||||
metrics=effective,
|
||||
judge_model=judge_model,
|
||||
embedding_model=embedding_model,
|
||||
settings=settings,
|
||||
judge_language=judge_language,
|
||||
)
|
||||
else:
|
||||
raw_scores = {}
|
||||
with track_token_usage() as usage_tracker:
|
||||
if effective:
|
||||
raw_scores = inline_scorer.score(
|
||||
question=request.question,
|
||||
answer=request.answer,
|
||||
contexts=request.contexts_as_list(),
|
||||
ground_truth=request.ground_truth,
|
||||
metrics=effective,
|
||||
judge_model=judge_model,
|
||||
embedding_model=embedding_model,
|
||||
settings=settings,
|
||||
judge_language=judge_language,
|
||||
)
|
||||
else:
|
||||
raw_scores = {}
|
||||
|
||||
latency_ms = int((time.monotonic() - t0) * 1000)
|
||||
finished_at = utc_now_iso()
|
||||
@@ -201,6 +203,7 @@ class ScoreJobManager:
|
||||
valid_samples=[sample],
|
||||
invalid_samples=[],
|
||||
score_rows=[score_row],
|
||||
token_usage=usage_tracker.as_dict(),
|
||||
)
|
||||
|
||||
write_run_artifacts(result)
|
||||
|
||||
Reference in New Issue
Block a user