import requests from dify_plugin.errors.model import ( InvokeAuthorizationError, InvokeBadRequestError, InvokeConnectionError, InvokeError, InvokeRateLimitError, InvokeServerUnavailableError, ) class _CommonOaiApiCompat: @property def _invoke_error_mapping(self) -> dict[type[InvokeError], list[type[Exception]]]: """ Map model invoke error to unified error The key is the error type thrown to the caller The value is the error type thrown by the model, which needs to be converted into a unified error type for the caller. :return: Invoke error mapping """ return { InvokeAuthorizationError: [ requests.exceptions.InvalidHeader, # Missing or Invalid API Key ], InvokeBadRequestError: [ requests.exceptions.HTTPError, # Invalid Endpoint URL or model name requests.exceptions.InvalidURL, # Misconfigured request or other API error ], InvokeRateLimitError: [ requests.exceptions.RetryError # Too many requests sent in a short period of time ], InvokeServerUnavailableError: [ requests.exceptions.ConnectionError, # Engine Overloaded requests.exceptions.HTTPError, # Server Error ], InvokeConnectionError: [ requests.exceptions.ConnectTimeout, # Timeout requests.exceptions.ReadTimeout, # Timeout ], }