|
@@ -10,9 +10,14 @@ from werkzeug.exceptions import Forbidden, InternalServerError, NotFound
|
|
|
import services
|
|
|
from configs import dify_config
|
|
|
from controllers.console import api
|
|
|
-from controllers.console.app.error import ConversationCompletedError, DraftWorkflowNotExist, DraftWorkflowNotSync
|
|
|
+from controllers.console.app.error import (
|
|
|
+ ConversationCompletedError,
|
|
|
+ DraftWorkflowNotExist,
|
|
|
+ DraftWorkflowNotSync,
|
|
|
+)
|
|
|
from controllers.console.app.wraps import get_app_model
|
|
|
from controllers.console.wraps import account_initialization_required, setup_required
|
|
|
+from controllers.web.error import InvokeRateLimitError as InvokeRateLimitHttpError
|
|
|
from core.app.apps.base_app_queue_manager import AppQueueManager
|
|
|
from core.app.entities.app_invoke_entities import InvokeFrom
|
|
|
from extensions.ext_database import db
|
|
@@ -27,6 +32,7 @@ from models.account import Account
|
|
|
from models.model import AppMode
|
|
|
from services.app_generate_service import AppGenerateService
|
|
|
from services.errors.app import WorkflowHashNotEqualError
|
|
|
+from services.errors.llm import InvokeRateLimitError
|
|
|
from services.workflow_service import DraftWorkflowDeletionError, WorkflowInUseError, WorkflowService
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
@@ -168,6 +174,8 @@ class AdvancedChatDraftWorkflowRunApi(Resource):
|
|
|
raise NotFound("Conversation Not Exists.")
|
|
|
except services.errors.conversation.ConversationCompletedError:
|
|
|
raise ConversationCompletedError()
|
|
|
+ except InvokeRateLimitError as ex:
|
|
|
+ raise InvokeRateLimitHttpError(ex.description)
|
|
|
except ValueError as e:
|
|
|
raise e
|
|
|
except Exception:
|
|
@@ -344,15 +352,18 @@ class DraftWorkflowRunApi(Resource):
|
|
|
parser.add_argument("files", type=list, required=False, location="json")
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
- response = AppGenerateService.generate(
|
|
|
- app_model=app_model,
|
|
|
- user=current_user,
|
|
|
- args=args,
|
|
|
- invoke_from=InvokeFrom.DEBUGGER,
|
|
|
- streaming=True,
|
|
|
- )
|
|
|
+ try:
|
|
|
+ response = AppGenerateService.generate(
|
|
|
+ app_model=app_model,
|
|
|
+ user=current_user,
|
|
|
+ args=args,
|
|
|
+ invoke_from=InvokeFrom.DEBUGGER,
|
|
|
+ streaming=True,
|
|
|
+ )
|
|
|
|
|
|
- return helper.compact_generate_response(response)
|
|
|
+ return helper.compact_generate_response(response)
|
|
|
+ except InvokeRateLimitError as ex:
|
|
|
+ raise InvokeRateLimitHttpError(ex.description)
|
|
|
|
|
|
|
|
|
class WorkflowTaskStopApi(Resource):
|