feat: workflow/chatflow api support async

pull/18838/head
hobo.l 1 year ago
parent 28a37fc52e
commit 09a10620a1

@ -1,4 +1,4 @@
from flask_restful import Resource, marshal_with
from flask_restful import Resource, marshal_with # type: ignore
from controllers.service_api import api
from controllers.service_api.wraps import validate_app_token

@ -174,13 +174,13 @@ class AdvancedChatAppGenerateTaskPipeline:
for stream_response in generator:
if is_async:
return ChatbotAppBlockingResponse(
task_id=self._application_generate_entity.workflow_run_id,
task_id=stream_response.task_id,
data=ChatbotAppBlockingResponse.Data(
id=self._message_id,
mode=self._conversation_mode,
conversation_id=self._conversation_id,
message_id=self._message_id,
answer=self._application_generate_entity.workflow_run_id,
answer=str(self._application_generate_entity.workflow_run_id),
created_at=int(self._message_created_at),
),
)
@ -225,7 +225,7 @@ class AdvancedChatAppGenerateTaskPipeline:
stream_response=MessageStreamResponse(
task_id=self._application_generate_entity.task_id,
id="0",
answer=self._application_generate_entity.workflow_run_id,
answer=str(self._application_generate_entity.workflow_run_id),
),
)
return
@ -299,7 +299,7 @@ class AdvancedChatAppGenerateTaskPipeline:
worker_thread = threading.Thread(
target=self._generate_worker,
kwargs={
"flask_app": current_app._get_current_object(),
"flask_app": current_app._get_current_object(), # type: ignore
"queue_manager": queue_manager,
"context": contextvars.copy_context(),
"publisher": publisher,

@ -149,7 +149,11 @@ class WorkflowAppGenerateTaskPipeline:
id=self._application_generate_entity.app_config.app_id,
workflow_id=self._workflow_id,
status="processing",
elapsed_time=0,
total_tokens=0,
total_steps=0,
created_at=int(time.time()),
finished_at=int(time.time()),
),
)
if isinstance(stream_response, ErrorStreamResponse):
@ -291,7 +295,7 @@ class WorkflowAppGenerateTaskPipeline:
worker_thread = threading.Thread(
target=self._generate_worker,
kwargs={
"flask_app": current_app._get_current_object(),
"flask_app": current_app._get_current_object(), # type: ignore
"queue_manager": queue_manager,
"context": contextvars.copy_context(),
"publisher": publisher,

Loading…
Cancel
Save