|
|
|
|
@ -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):
|
|
|
|
|
|