瀏覽代碼

fix: convert backwards invocation into BaseBackwardsResponse

Yeuoly 5 月之前
父節點
當前提交
8b30099672
共有 2 個文件被更改,包括 3 次插入7 次删除
  1. 2 2
      api/core/app/apps/advanced_chat/app_generator.py
  2. 1 5
      api/core/plugin/backwards_invocation/base.py

+ 2 - 2
api/core/app/apps/advanced_chat/app_generator.py

@@ -162,7 +162,7 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator):
 
     def single_iteration_generate(
         self, app_model: App, workflow: Workflow, node_id: str, user: Account | EndUser, args: dict, stream: bool = True
-    ) -> dict[str, Any] | Generator[str, Any, None]:
+    ) -> dict[str, Any] | Generator[str | dict[str, Any], Any, None]:
         """
         Generate App response.
 
@@ -218,7 +218,7 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator):
         application_generate_entity: AdvancedChatAppGenerateEntity,
         conversation: Optional[Conversation] = None,
         stream: bool = True,
-    ) -> dict[str, Any] | Generator[str, Any, None]:
+    ) -> dict[str, Any] | Generator[str | dict[str, Any], Any, None]:
         """
         Generate App response.
 

+ 1 - 5
api/core/plugin/backwards_invocation/base.py

@@ -1,4 +1,3 @@
-import json
 from collections.abc import Generator
 from typing import Generic, Optional, TypeVar
 
@@ -19,10 +18,7 @@ class BaseBackwardsInvocation:
                 error_message = BaseBackwardsInvocationResponse(error=str(e)).model_dump_json()
                 yield f"{error_message}\n\n".encode()
         else:
-            if isinstance(response, BaseModel):
-                yield response.model_dump_json().encode() + b"\n\n"
-            else:
-                yield json.dumps(response).encode() + b"\n\n"
+            yield BaseBackwardsInvocationResponse(data=response).model_dump_json().encode() + b"\n\n"
 
 
 T = TypeVar("T", bound=dict | str | bool | int | BaseModel)