|
10 | 10 | import services
|
11 | 11 | from configs import dify_config
|
12 | 12 | from controllers.console import api
|
13 |
| -from controllers.console.app.error import ConversationCompletedError, DraftWorkflowNotExist, DraftWorkflowNotSync |
| 13 | +from controllers.console.app.error import ( |
| 14 | + ConversationCompletedError, |
| 15 | + DraftWorkflowNotExist, |
| 16 | + DraftWorkflowNotSync, |
| 17 | +) |
14 | 18 | from controllers.console.app.wraps import get_app_model
|
15 | 19 | from controllers.console.wraps import account_initialization_required, setup_required
|
| 20 | +from controllers.web.error import InvokeRateLimitError as InvokeRateLimitHttpError |
16 | 21 | from core.app.apps.base_app_queue_manager import AppQueueManager
|
17 | 22 | from core.app.entities.app_invoke_entities import InvokeFrom
|
18 | 23 | from extensions.ext_database import db
|
|
27 | 32 | from models.model import AppMode
|
28 | 33 | from services.app_generate_service import AppGenerateService
|
29 | 34 | from services.errors.app import WorkflowHashNotEqualError
|
| 35 | +from services.errors.llm import InvokeRateLimitError |
30 | 36 | from services.workflow_service import DraftWorkflowDeletionError, WorkflowInUseError, WorkflowService
|
31 | 37 |
|
32 | 38 | logger = logging.getLogger(__name__)
|
@@ -168,6 +174,8 @@ def post(self, app_model: App):
|
168 | 174 | raise NotFound("Conversation Not Exists.")
|
169 | 175 | except services.errors.conversation.ConversationCompletedError:
|
170 | 176 | raise ConversationCompletedError()
|
| 177 | + except InvokeRateLimitError as ex: |
| 178 | + raise InvokeRateLimitHttpError(ex.description) |
171 | 179 | except ValueError as e:
|
172 | 180 | raise e
|
173 | 181 | except Exception:
|
@@ -344,15 +352,18 @@ def post(self, app_model: App):
|
344 | 352 | parser.add_argument("files", type=list, required=False, location="json")
|
345 | 353 | args = parser.parse_args()
|
346 | 354 |
|
347 |
| - response = AppGenerateService.generate( |
348 |
| - app_model=app_model, |
349 |
| - user=current_user, |
350 |
| - args=args, |
351 |
| - invoke_from=InvokeFrom.DEBUGGER, |
352 |
| - streaming=True, |
353 |
| - ) |
| 355 | + try: |
| 356 | + response = AppGenerateService.generate( |
| 357 | + app_model=app_model, |
| 358 | + user=current_user, |
| 359 | + args=args, |
| 360 | + invoke_from=InvokeFrom.DEBUGGER, |
| 361 | + streaming=True, |
| 362 | + ) |
354 | 363 |
|
355 |
| - return helper.compact_generate_response(response) |
| 364 | + return helper.compact_generate_response(response) |
| 365 | + except InvokeRateLimitError as ex: |
| 366 | + raise InvokeRateLimitHttpError(ex.description) |
356 | 367 |
|
357 | 368 |
|
358 | 369 | class WorkflowTaskStopApi(Resource):
|
|
0 commit comments