def format_response(prompt, language, request_id, timestamp): """ Format a standardized response structure based on language. This utility creates a consistent response structure with the appropriate keys based on the specified language. :param prompt: The original user prompt :type prompt: str :param language: Language code ('en' or 'ar') :type language: str :param request_id: Unique identifier for the request :type request_id: str :param timestamp: ISO-formatted timestamp :type timestamp: str :return: Formatted response structure :rtype: dict """ if language == 'ar': return { 'حالة': "نجاح", 'معرف_الطلب': request_id, 'الطابع_الزمني': timestamp, 'الاستعلام': prompt, 'التحليلات': [] } else: return { 'status': "success", 'request_id': request_id, 'timestamp': timestamp, 'prompt': prompt, 'insights': [] } def format_error_response(message, status_code, language='en'): """ Format a standardized error response. :param message: Error message :type message: str :param status_code: HTTP status code :type status_code: int :param language: Language code ('en' or 'ar') :type language: str :return: Formatted error response :rtype: dict """ if language == 'ar': return { 'حالة': "خطأ", 'رسالة': message, 'رمز_الحالة': status_code } else: return { 'status': "error", 'message': message, 'status_code': status_code } def format_insights_for_display(insights, language='en'): """ Format insights for human-readable display. :param insights: Raw insights data :type insights: dict :param language: Language code ('en' or 'ar') :type language: str :return: Human-readable formatted insights :rtype: str """ formatted_text = "" # Determine keys based on language insights_key = 'التحليلات' if language == 'ar' else 'insights' recs_key = 'التوصيات' if language == 'ar' else 'recommendations' # Format insights if insights_key in insights and insights[insights_key]: header = "## نتائج التحليل\n\n" if language == 'ar' else "## Analysis Results\n\n" formatted_text += header for insight in insights[insights_key]: if isinstance(insight, dict): # Add insight type as header if 'type' in insight or 'نوع' in insight: type_key = 'نوع' if language == 'ar' else 'type' insight_type = insight.get(type_key, insight.get('type', insight.get('نوع', ''))) formatted_text += f"### {insight_type}\n\n" # Format results if present results_key = 'النتائج' if language == 'ar' else 'results' if results_key in insight: for result in insight[results_key]: model_key = 'النموذج' if language == 'ar' else 'model' error_key = 'خطأ' if language == 'ar' else 'error' count_key = 'العدد' if language == 'ar' else 'count' model_name = result.get(model_key, result.get('model', '')) if error_key in result: formatted_text += f"- **{model_name}**: {result[error_key]}\n" elif count_key in result: formatted_text += f"- **{model_name}**: {result[count_key]}\n" formatted_text += "\n" # Format recommendations if recs_key in insights and insights[recs_key]: header = "## التوصيات\n\n" if language == 'ar' else "## Recommendations\n\n" formatted_text += header for rec in insights[recs_key]: formatted_text += f"- {rec}\n" return formatted_text