[Bug] Multi-trace files collapse into one eval case
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- testing-qa
Direzione di ricerca
Inizia da BaseEvaluator._build_eval_set_from_tracing_json() e leggi la copertura di regressione mirata in tests/test_evaluator.py. Riproduci prima il fallimento con più trace e span fuori ordine, poi verifica che ogni trace diventi una EvalCase isolata con span ordinati e che il timestamp di EvalSet utilizzi il timestamp del caso generato più vecchio. Al termine, esegui i test dell'evaluator, Ruff e git diff --check.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Bug description
BaseEvaluator._build_eval_set_from_tracing_json() groups spans by trace_id, but currently keeps conversation, metadata, and timestamps outside the per-trace loop and appends only one EvalCase after the loop.
For a tracing file containing multiple traces, this can collapse all traces into one case, attach metadata from the last trace, and produce an empty conversation when spans are not already ordered by start_time.
Minimal reproduction
On current main (43f958d), a tracing file with two traces and out-of-order call_llm spans produces:
len(eval_set.eval_cases) == 1instead of2- the only case uses the second trace's
app_nameanduser_id conversation == []
The focused regression fails deterministically with:
assert len(eval_set.eval_cases) == 2
E assert 1 == 2
Expected behavior
Could you confirm whether the intended conversion semantics are:
- each
trace_idbecomes one isolatedEvalCase; - spans are ordered by
start_timewithin that trace; - conversation, tool calls, and session metadata never cross trace boundaries;
- the
EvalSettimestamp is the earliest generated case timestamp?
Validated local fix
A local one-commit patch implements the behavior above and currently passes:
tests/test_evaluator.py— 3 passed- Ruff 0.11.12 check and format
git diff --check
I have not opened a PR yet because this changes the public mapping between tracing files and evaluation cases. If the semantics above are intended, I can submit the tested patch.
AI assistance
The investigation and candidate patch were developed with AI assistance. I verified the failure on a clean origin/main worktree with an isolated Python bytecode cache and reviewed the trace-boundary semantics.
- Lingua principale
- Python
- Stelle
- 344
- Fork
- 98
- Merge medio
- 8h 17m
- PR unite (30g)
- 152
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di volcengine/veadk-python
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
volcengine/veadk-python#901 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
volcengine/veadk-python#549 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
volcengine/veadk-python#531 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 58/100
volcengine/veadk-python#508 · 2 commenti ·
Tutte le issue di volcengine/veadk-python
Issue simili
-
area: harness bug status: needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Human-Agent-Society/reef#625 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
learningequality/kolibri#15351 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Name consistency Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
eellak/triplestore#65 · 1 commento ·