Skip to content

Commit d198e62

Browse files
fix(graders): avoid KeyError when LLM output misses score/reason fields (#177)
1 parent f56134a commit d198e62

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

openjudge/graders/llm_grader.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -337,17 +337,17 @@ async def _aevaluate(self, **kwargs: Any) -> GraderScore | GraderRank:
337337
parsed = getattr(chat_response, "parsed", {}) or {}
338338

339339
if self.mode == GraderMode.LISTWISE:
340-
rank = parsed.pop("rank")
341-
reason = parsed.pop("reason")
340+
rank = parsed.pop("rank", [])
341+
reason = parsed.pop("reason", "")
342342
result = GraderRank(
343343
name=self.name,
344344
rank=rank, # type: ignore
345345
reason=reason, # type: ignore
346346
metadata=parsed, # type: ignore
347347
)
348348
elif self.mode == GraderMode.POINTWISE:
349-
score = parsed.pop("score")
350-
reason = str(parsed.pop("reason"))
349+
score = parsed.pop("score", 0)
350+
reason = str(parsed.pop("reason", ""))
351351
result = GraderScore(
352352
name=self.name,
353353
score=score, # type: ignore

0 commit comments

Comments
 (0)