(raw_text: str)
| 55 | |
| 56 | |
| 57 | def _parse_json_response(raw_text: str) -> dict[str, Any]: |
| 58 | try: |
| 59 | parsed = json.loads(raw_text) |
| 60 | except json.JSONDecodeError: |
| 61 | start = raw_text.find("{") |
| 62 | end = raw_text.rfind("}") |
| 63 | if start == -1 or end == -1 or end <= start: |
| 64 | raise |
| 65 | parsed = json.loads(raw_text[start : end + 1]) |
| 66 | if not isinstance(parsed, dict): |
| 67 | raise ValueError("image_qa model response must be a JSON object.") |
| 68 | return parsed |
| 69 | |
| 70 | |
| 71 | def run_image_qa( |