class OutputFormatter: def format_response(self, analysis_result, search_results): """ Format the final response with proper structure """ if isinstance(analysis_result, tuple): analysis, citations = analysis_result else: analysis = analysis_result citations = {} # Format the response formatted_output = f"## Research Analysis\n\n{analysis}\n\n" # Add sources section if search_results: formatted_output += "## Sources\n" for i, result in enumerate(search_results): formatted_output += f"{i+1}. [{result.get('title', 'Untitled')}]({result.get('url', '')})\n" # Add citation details if available if citations: formatted_output += "\n## Detailed Citations\n" for cite_id, info in citations.items(): formatted_output += f"- {cite_id} **{info['title']}** - {info['source']}: {info['url']}\n" return formatted_output