Parse and validate a raw LLM response string. Returns (data_dict, raw_content). Raises ExtractionError on parse failure or validation failure.
(content: str)
| 75 | |
| 76 | |
| 77 | def process_llm_result(content: str) -> tuple[dict, str]: |
| 78 | """Parse and validate a raw LLM response string. |
| 79 | |
| 80 | Returns (data_dict, raw_content). |
| 81 | Raises ExtractionError on parse failure or validation failure. |
| 82 | """ |
| 83 | data = parse_json_response(content) |
| 84 | try: |
| 85 | validate_llm_response(data) |
| 86 | except ValueError as e: |
| 87 | raise ExtractionError( |
| 88 | str(e), |
| 89 | raw_response=content, |
| 90 | reason_class=FailureReason.INVALID_SCHEMA, |
| 91 | ) from e |
| 92 | return data, content |
| 93 | |
| 94 | |
| 95 | def extract_text_from_lines( |