| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | from libs.exception import BaseHTTPExceptionclass AppNotFoundError(BaseHTTPException):    error_code = "app_not_found"    description = "App not found."    code = 404class ProviderNotInitializeError(BaseHTTPException):    error_code = "provider_not_initialize"    description = (        "No valid model provider credentials found. "        "Please go to Settings -> Model Provider to complete your provider credentials."    )    code = 400class ProviderQuotaExceededError(BaseHTTPException):    error_code = "provider_quota_exceeded"    description = (        "Your quota for Dify Hosted Model Provider has been exhausted. "        "Please go to Settings -> Model Provider to complete your own provider credentials."    )    code = 400class ProviderModelCurrentlyNotSupportError(BaseHTTPException):    error_code = "model_currently_not_support"    description = "Dify Hosted OpenAI trial currently not support the GPT-4 model."    code = 400class ConversationCompletedError(BaseHTTPException):    error_code = "conversation_completed"    description = "The conversation has ended. Please start a new conversation."    code = 400class AppUnavailableError(BaseHTTPException):    error_code = "app_unavailable"    description = "App unavailable, please check your app configurations."    code = 400class CompletionRequestError(BaseHTTPException):    error_code = "completion_request_error"    description = "Completion request failed."    code = 400class AppMoreLikeThisDisabledError(BaseHTTPException):    error_code = "app_more_like_this_disabled"    description = "The 'More like this' feature is disabled. Please refresh your page."    code = 403class NoAudioUploadedError(BaseHTTPException):    error_code = "no_audio_uploaded"    description = "Please upload your audio."    code = 400class AudioTooLargeError(BaseHTTPException):    error_code = "audio_too_large"    description = "Audio size exceeded. {message}"    code = 413class UnsupportedAudioTypeError(BaseHTTPException):    error_code = "unsupported_audio_type"    description = "Audio type not allowed."    code = 415class ProviderNotSupportSpeechToTextError(BaseHTTPException):    error_code = "provider_not_support_speech_to_text"    description = "Provider not support speech to text."    code = 400class NoFileUploadedError(BaseHTTPException):    error_code = "no_file_uploaded"    description = "Please upload your file."    code = 400class TooManyFilesError(BaseHTTPException):    error_code = "too_many_files"    description = "Only one file is allowed."    code = 400class DraftWorkflowNotExist(BaseHTTPException):    error_code = "draft_workflow_not_exist"    description = "Draft workflow need to be initialized."    code = 400class DraftWorkflowNotSync(BaseHTTPException):    error_code = "draft_workflow_not_sync"    description = "Workflow graph might have been modified, please refresh and resubmit."    code = 400class TracingConfigNotExist(BaseHTTPException):    error_code = "trace_config_not_exist"    description = "Trace config not exist."    code = 400class TracingConfigIsExist(BaseHTTPException):    error_code = "trace_config_is_exist"    description = "Trace config is exist."    code = 400class TracingConfigCheckError(BaseHTTPException):    error_code = "trace_config_check_error"    description = "Invalid Credentials."    code = 400class InvokeRateLimitError(BaseHTTPException):    """Raised when the Invoke returns rate limit error."""    error_code = "rate_limit_error"    description = "Rate Limit Error"    code = 429
 |