mirror of
https://github.com/langgenius/dify.git
synced 2026-11-11 22:02:23 +08:00
98 lines
3.4 KiB
Python
98 lines
3.4 KiB
Python
"""Stable, non-enumerating Console error contract for KnowledgeFS."""
|
|
|
|
from libs.exception import BaseHTTPException
|
|
from services.knowledge_fs.product_dto import KnowledgeFSPublicFailureResponse
|
|
|
|
|
|
class _KnowledgeFSFailureHTTPError(BaseHTTPException):
|
|
details_model = KnowledgeFSPublicFailureResponse
|
|
|
|
def __init__(self, failure: KnowledgeFSPublicFailureResponse | None = None) -> None:
|
|
super().__init__(failure.message if failure else None)
|
|
if failure is not None and self.data is not None:
|
|
details = failure.model_dump(by_alias=True, exclude_none=True)
|
|
self.data["details"] = details
|
|
# Keep the legacy field for clients that do not consume the documented error details.
|
|
self.data["failure"] = details
|
|
|
|
|
|
class KnowledgeFSSpaceNotFoundHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_space_not_found"
|
|
description = "Agent Knowledge Base was not found."
|
|
code = 404
|
|
|
|
|
|
class KnowledgeFSResourceNotFoundHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_resource_not_found"
|
|
description = "Agent Knowledge Base resource was not found."
|
|
code = 404
|
|
|
|
|
|
class KnowledgeFSOperationUnavailableHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_operation_unavailable"
|
|
description = "Agent Knowledge Base operation is not available."
|
|
code = 503
|
|
|
|
|
|
class KnowledgeFSUpstreamUnavailableHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_upstream_unavailable"
|
|
description = "Agent Knowledge Base is unavailable."
|
|
code = 503
|
|
|
|
|
|
class KnowledgeFSTimeoutHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_timeout"
|
|
description = "Agent Knowledge Base request timed out."
|
|
code = 504
|
|
|
|
|
|
class KnowledgeFSInvalidRequestHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_invalid_request"
|
|
description = "Agent Knowledge Base request is invalid."
|
|
code = 400
|
|
|
|
|
|
class KnowledgeFSAccessDeniedHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_access_denied"
|
|
description = "Agent Knowledge Base operation is not allowed."
|
|
code = 403
|
|
|
|
|
|
class KnowledgeFSConflictHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_conflict"
|
|
description = "Agent Knowledge Base operation conflicts with the current resource state."
|
|
code = 409
|
|
|
|
|
|
class KnowledgeFSRequestTooLargeHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_request_too_large"
|
|
description = "Agent Knowledge Base request is too large."
|
|
code = 413
|
|
|
|
|
|
class KnowledgeFSRequestRejectedHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_request_rejected"
|
|
description = "Agent Knowledge Base request was rejected."
|
|
code = 422
|
|
|
|
|
|
class KnowledgeFSRateLimitHTTPError(_KnowledgeFSFailureHTTPError):
|
|
error_code = "knowledge_fs_rate_limit_exceeded"
|
|
description = "Agent Knowledge Base request rate limit exceeded."
|
|
code = 429
|
|
|
|
|
|
__all__ = [
|
|
"KnowledgeFSAccessDeniedHTTPError",
|
|
"KnowledgeFSConflictHTTPError",
|
|
"KnowledgeFSInvalidRequestHTTPError",
|
|
"KnowledgeFSOperationUnavailableHTTPError",
|
|
"KnowledgeFSRateLimitHTTPError",
|
|
"KnowledgeFSRequestRejectedHTTPError",
|
|
"KnowledgeFSRequestTooLargeHTTPError",
|
|
"KnowledgeFSResourceNotFoundHTTPError",
|
|
"KnowledgeFSSpaceNotFoundHTTPError",
|
|
"KnowledgeFSTimeoutHTTPError",
|
|
"KnowledgeFSUpstreamUnavailableHTTPError",
|
|
]
|