Enhance error handling in AIEngine and update ResourceDebugOverlay

- Added error type handling in AIEngine for better error categorization during model configuration and execution.
- Updated _handle_error method to accept and log error types.
- Improved ResourceDebugOverlay to silently ignore 404 responses from the metrics endpoint, preventing unnecessary logging and retries.
- Refactored authStore to utilize fetchAPI for automatic token handling and improved error logging without throwing exceptions.
This commit is contained in:
IGNY8 VPS (Salman)
2025-11-16 11:44:51 +00:00
parent a492eb3560
commit 8908c11c86
3 changed files with 33 additions and 25 deletions

View File

@@ -215,13 +215,15 @@ class AIEngine:
except ValueError as e:
# IntegrationSettings not configured or model missing
error_msg = str(e)
error_type = 'ConfigurationError'
logger.error(f"[AIEngine] {error_msg}")
return self._handle_error(error_msg, fn)
return self._handle_error(error_msg, fn, error_type=error_type)
except Exception as e:
# Other unexpected errors
error_msg = f"Failed to get model configuration: {str(e)}"
error_type = type(e).__name__
logger.error(f"[AIEngine] {error_msg}", exc_info=True)
return self._handle_error(error_msg, fn)
return self._handle_error(error_msg, fn, error_type=error_type)
# Debug logging: Show model configuration (console only, not in step tracker)
logger.info(f"[AIEngine] Model Configuration for {function_name}:")
@@ -373,18 +375,28 @@ class AIEngine:
}
except Exception as e:
logger.error(f"Error in AIEngine.execute for {function_name}: {str(e)}", exc_info=True)
return self._handle_error(str(e), fn, exc_info=True)
error_msg = str(e)
error_type = type(e).__name__
logger.error(f"Error in AIEngine.execute for {function_name}: {error_msg}", exc_info=True)
return self._handle_error(error_msg, fn, exc_info=True, error_type=error_type)
def _handle_error(self, error: str, fn: BaseAIFunction = None, exc_info=False):
def _handle_error(self, error: str, fn: BaseAIFunction = None, exc_info=False, error_type: str = None):
"""Centralized error handling"""
function_name = fn.get_name() if fn else 'unknown'
# Determine error type
if error_type:
final_error_type = error_type
elif isinstance(error, Exception):
final_error_type = type(error).__name__
else:
final_error_type = 'Error'
self.step_tracker.add_request_step("Error", "error", error, error=error)
error_meta = {
'error': error,
'error_type': type(error).__name__ if isinstance(error, Exception) else 'Error',
'error_type': final_error_type,
**self.step_tracker.get_meta()
}
self.tracker.error(error, meta=error_meta)
@@ -399,7 +411,7 @@ class AIEngine:
return {
'success': False,
'error': error,
'error_type': type(error).__name__ if isinstance(error, Exception) else 'Error',
'error_type': final_error_type,
'request_steps': self.step_tracker.request_steps,
'response_steps': self.step_tracker.response_steps
}