MCPcopy Create free account
hub / github.com/microsoft/Webwright / _parse_image_judge_response

Function _parse_image_judge_response

src/webwright/tools/self_reflection.py:252–280  ·  view source on GitHub ↗
(response: str)

Source from the content-addressed store, hash-verified

250# ---------------------------------------------------------------------------
251
252def _parse_image_judge_response(response: str) -> tuple[str, int]:
253 score_match = re.search(r"(?is)\bscore\b[^1-5]*([1-5])\b", response)
254 reasoning_match = re.search(
255 r"(?is)(?:\*\*?\s*reasoning\s*\*\*?|reasoning)\s*[:\-]\s*"
256 r"(.*?)(?=\n\s*(?:\d+\.\s*)?(?:\*\*?\s*score\s*\*\*?|score)\s*[:\-]|\Z)",
257 response,
258 )
259
260 if score_match and reasoning_match:
261 reasoning = re.sub(r"\s+", " ", reasoning_match.group(1)).strip()
262 return reasoning, int(score_match.group(1))
263
264 try:
265 payload = json.loads(response)
266 except Exception:
267 payload = None
268
269 if isinstance(payload, dict):
270 score = payload.get("Score", payload.get("score"))
271 reasoning = payload.get("Reasoning", payload.get("reasoning"))
272 if (
273 isinstance(score, int)
274 and 1 <= score <= 5
275 and isinstance(reasoning, str)
276 and reasoning.strip()
277 ):
278 return re.sub(r"\s+", " ", reasoning).strip(), score
279
280 raise ValueError("Could not parse image judge response")
281
282
283def _parse_final_verdict(response: str) -> int | None:

Callers 1

_judge_one_imageFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected