| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- workflow_summary_markers = [
- 'WORKFLOW SUMMARY',
- 'WORKFLOW_SUMMARY',
- 'WORKFLOW-SUMMARY',
- 'Workflow Summary',
- ]
- final_answer_markers = [
- 'FINAL ANSWER',
- 'FINAL_ANSWER',
- 'FINAL-ANSWER',
- 'Final Answer',
- 'Scientific Hypothesis',
- 'Hypothesis',
- ]
- next_agent_markers = [
- 'NEXT AGENT',
- 'NEXT-AGENT',
- 'NEXT_AGENT',
- 'FEEDBACK',
- ]
- def extract_between(content, start_markers, end_markers=None):
- for marker in start_markers:
- if marker in content:
- result = content.split(marker, 1)[1]
- if end_markers:
- for end_marker in end_markers:
- if end_marker in result:
- result = result.split(end_marker, 1)[0]
- return result
- return ''
- def extract_gen_hypo_from_logs(content: str):
- error = ''
- gen_workflow = extract_between(
- content, workflow_summary_markers, final_answer_markers
- )
- if not gen_workflow:
- error += 'No Workflow Summary found in the line. | '
- gen_hypothesis = extract_between(content, final_answer_markers, next_agent_markers)
- if not gen_hypothesis:
- error += 'No Final Answer in the line.'
- return gen_hypothesis, gen_workflow, error
|