mirror of
https://github.com/langgenius/dify.git
synced 2025-07-03 23:28:18 +00:00

This pull request introduces a feature aimed at improving the debugging experience during workflow editing. With the addition of variable persistence, the system will automatically retain the output variables from previously executed nodes. These persisted variables can then be reused when debugging subsequent nodes, eliminating the need for repetitive manual input. By streamlining this aspect of the workflow, the feature minimizes user errors and significantly reduces debugging effort, offering a smoother and more efficient experience. Key highlights of this change: - Automatic persistence of output variables for executed nodes. - Reuse of persisted variables to simplify input steps for nodes requiring them (e.g., `code`, `template`, `variable_assigner`). - Enhanced debugging experience with reduced friction. Closes #19735.
152 lines
4.2 KiB
Python
152 lines
4.2 KiB
Python
from libs.exception import BaseHTTPException
|
|
|
|
|
|
class AppUnavailableError(BaseHTTPException):
|
|
error_code = "app_unavailable"
|
|
description = "App unavailable, please check your app configurations."
|
|
code = 400
|
|
|
|
|
|
class NotCompletionAppError(BaseHTTPException):
|
|
error_code = "not_completion_app"
|
|
description = "Please check if your Completion app mode matches the right API route."
|
|
code = 400
|
|
|
|
|
|
class NotChatAppError(BaseHTTPException):
|
|
error_code = "not_chat_app"
|
|
description = "Please check if your app mode matches the right API route."
|
|
code = 400
|
|
|
|
|
|
class NotWorkflowAppError(BaseHTTPException):
|
|
error_code = "not_workflow_app"
|
|
description = "Please check if your Workflow app mode matches the right API route."
|
|
code = 400
|
|
|
|
|
|
class ConversationCompletedError(BaseHTTPException):
|
|
error_code = "conversation_completed"
|
|
description = "The conversation has ended. Please start a new conversation."
|
|
code = 400
|
|
|
|
|
|
class 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 = 400
|
|
|
|
|
|
class ProviderQuotaExceededError(BaseHTTPException):
|
|
error_code = "provider_quota_exceeded"
|
|
description = (
|
|
"Your quota for Dify Hosted OpenAI has been exhausted. "
|
|
"Please go to Settings -> Model Provider to complete your own provider credentials."
|
|
)
|
|
code = 400
|
|
|
|
|
|
class ProviderModelCurrentlyNotSupportError(BaseHTTPException):
|
|
error_code = "model_currently_not_support"
|
|
description = "Dify Hosted OpenAI trial currently not support the GPT-4 model."
|
|
code = 400
|
|
|
|
|
|
class CompletionRequestError(BaseHTTPException):
|
|
error_code = "completion_request_error"
|
|
description = "Completion request failed."
|
|
code = 400
|
|
|
|
|
|
class AppMoreLikeThisDisabledError(BaseHTTPException):
|
|
error_code = "app_more_like_this_disabled"
|
|
description = "The 'More like this' feature is disabled. Please refresh your page."
|
|
code = 403
|
|
|
|
|
|
class AppSuggestedQuestionsAfterAnswerDisabledError(BaseHTTPException):
|
|
error_code = "app_suggested_questions_after_answer_disabled"
|
|
description = "The 'Suggested Questions After Answer' feature is disabled. Please refresh your page."
|
|
code = 403
|
|
|
|
|
|
class NoAudioUploadedError(BaseHTTPException):
|
|
error_code = "no_audio_uploaded"
|
|
description = "Please upload your audio."
|
|
code = 400
|
|
|
|
|
|
class AudioTooLargeError(BaseHTTPException):
|
|
error_code = "audio_too_large"
|
|
description = "Audio size exceeded. {message}"
|
|
code = 413
|
|
|
|
|
|
class UnsupportedAudioTypeError(BaseHTTPException):
|
|
error_code = "unsupported_audio_type"
|
|
description = "Audio type not allowed."
|
|
code = 415
|
|
|
|
|
|
class ProviderNotSupportSpeechToTextError(BaseHTTPException):
|
|
error_code = "provider_not_support_speech_to_text"
|
|
description = "Provider not support speech to text."
|
|
code = 400
|
|
|
|
|
|
class NoFileUploadedError(BaseHTTPException):
|
|
error_code = "no_file_uploaded"
|
|
description = "Please upload your file."
|
|
code = 400
|
|
|
|
|
|
class TooManyFilesError(BaseHTTPException):
|
|
error_code = "too_many_files"
|
|
description = "Only one file is allowed."
|
|
code = 400
|
|
|
|
|
|
class FileTooLargeError(BaseHTTPException):
|
|
error_code = "file_too_large"
|
|
description = "File size exceeded. {message}"
|
|
code = 413
|
|
|
|
|
|
class UnsupportedFileTypeError(BaseHTTPException):
|
|
error_code = "unsupported_file_type"
|
|
description = "File type not allowed."
|
|
code = 415
|
|
|
|
|
|
class WebAppAuthRequiredError(BaseHTTPException):
|
|
error_code = "web_sso_auth_required"
|
|
description = "Web app authentication required."
|
|
code = 401
|
|
|
|
|
|
class WebAppAuthAccessDeniedError(BaseHTTPException):
|
|
error_code = "web_app_access_denied"
|
|
description = "You do not have permission to access this web app."
|
|
code = 401
|
|
|
|
|
|
class InvokeRateLimitError(BaseHTTPException):
|
|
"""Raised when the Invoke returns rate limit error."""
|
|
|
|
error_code = "rate_limit_error"
|
|
description = "Rate Limit Error"
|
|
code = 429
|
|
|
|
|
|
class NotFoundError(BaseHTTPException):
|
|
error_code = "not_found"
|
|
code = 404
|
|
|
|
|
|
class InvalidArgumentError(BaseHTTPException):
|
|
error_code = "invalid_param"
|
|
code = 400
|