(output_text: str)
| 153 | return all_results |
| 154 | |
| 155 | def extract_final_answer(output_text: str) -> str: |
| 156 | if not output_text: |
| 157 | return "" |
| 158 | |
| 159 | # Find ### Final Answer marker |
| 160 | final_answer_marker = "### Final Answer" |
| 161 | # Find the position of the last Final Answer marker |
| 162 | marker_pos = output_text.rfind(final_answer_marker) |
| 163 | |
| 164 | if marker_pos == -1: |
| 165 | # If marker not found, return the entire text (compatibility handling) |
| 166 | return output_text.strip() |
| 167 | |
| 168 | # Extract content after the marker |
| 169 | answer_start = marker_pos + len(final_answer_marker) |
| 170 | final_answer = output_text[answer_start:].strip() |
| 171 | |
| 172 | # Remove possible leading newlines |
| 173 | if final_answer.startswith('\n'): |
| 174 | final_answer = final_answer[1:].strip() |
| 175 | |
| 176 | return final_answer |
| 177 | |
| 178 | def extract_answers_from_results(results: List[Dict]) -> Tuple[List[List[str]], List[str]]: |
| 179 | logger = get_logger(__name__) |
no outgoing calls
no test coverage detected