fix: clear resolved evidence gaps after a successful scoring retry
This commit is contained in:
@@ -607,6 +607,9 @@ def test_scoring_retry_carries_target_contract_and_specific_repair_feedback(sqli
|
||||
"description": "实现方法", "required_evidence": ["实验数据", "实现方法"]}
|
||||
created = services.create_batch(SimpleNamespace(course_version_id=1, rubric_version_id=1), db)
|
||||
batch = db.get(ScoringBatch, created["id"])
|
||||
db.add(CriterionScore(batch_id=batch.id, project_id=item.id, criterion_id=criterion["criterion_id"],
|
||||
status="needs_review", evidence_gaps=[{"target_id": "t1", "reason": "上次未命中正文"}]))
|
||||
db.commit()
|
||||
class Client:
|
||||
calls = 0
|
||||
def json_call(self, prompt, payload, *args, **kwargs):
|
||||
@@ -626,6 +629,7 @@ def test_scoring_retry_carries_target_contract_and_specific_repair_feedback(sqli
|
||||
score = _score_criterion(db, batch, item, criterion, client,
|
||||
retriever=lambda *args, **kwargs: [], multi_retriever=selected)
|
||||
assert score.status == "scored" and client.calls == 2
|
||||
assert score.evidence_gaps == []
|
||||
|
||||
|
||||
@pytest.mark.parametrize("version", [None, 1])
|
||||
|
||||
@@ -263,6 +263,7 @@ def _score_criterion(db, batch, project, criterion, client, *, retriever, multi_
|
||||
gap["reason"] = result.reason
|
||||
else:
|
||||
score.status, score.error = STATUS_SCORED, ""
|
||||
score.evidence_gaps = []
|
||||
for evidence in db.scalars(select(ScoreEvidence).where(ScoreEvidence.score_id == score.id)).all():
|
||||
db.delete(evidence)
|
||||
by_id = {chunk["chunk_id"]: chunk for chunk in chunks}
|
||||
|
||||
Reference in New Issue
Block a user