Ver código fonte

Fix/incorrect code template (#7490)

Yeuoly 8 meses atrás
pai
commit
a02118d5bc

+ 3 - 3
api/core/helper/code_executor/code_executor.py

@@ -4,7 +4,7 @@ from enum import Enum
 from threading import Lock
 from typing import Literal, Optional
 
-from httpx import get, post
+from httpx import Timeout, get, post
 from pydantic import BaseModel
 from yarl import URL
 
@@ -21,7 +21,7 @@ logger = logging.getLogger(__name__)
 CODE_EXECUTION_ENDPOINT = dify_config.CODE_EXECUTION_ENDPOINT
 CODE_EXECUTION_API_KEY = dify_config.CODE_EXECUTION_API_KEY
 
-CODE_EXECUTION_TIMEOUT = (10, 60)
+CODE_EXECUTION_TIMEOUT = Timeout(connect=10, write=10, read=60, pool=None)
 
 class CodeExecutionException(Exception):
     pass
@@ -116,7 +116,7 @@ class CodeExecutor:
         if response.data.error:
             raise CodeExecutionException(response.data.error)
         
-        return response.data.stdout
+        return response.data.stdout or ''
 
     @classmethod
     def execute_workflow_code_template(cls, language: CodeLanguage, code: str, inputs: dict, dependencies: Optional[list[CodeDependency]] = None) -> dict:

+ 1 - 1
api/core/helper/code_executor/python3/python3_code_provider.py

@@ -13,7 +13,7 @@ class Python3CodeProvider(CodeNodeProvider):
     def get_default_code(cls) -> str:
         return dedent(
             """
-            def main(arg1: int, arg2: int) -> dict:
+            def main(arg1: str, arg2: str) -> dict:
                 return {
                     "result": arg1 + arg2,
                 }

+ 2 - 3
api/core/workflow/nodes/code/code_node.py

@@ -23,7 +23,7 @@ MAX_NUMBER_ARRAY_LENGTH = dify_config.CODE_MAX_NUMBER_ARRAY_LENGTH
 
 class CodeNode(BaseNode):
     _node_data_cls = CodeNodeData
-    node_type = NodeType.CODE
+    _node_type = NodeType.CODE
 
     @classmethod
     def get_default_config(cls, filters: Optional[dict] = None) -> dict:
@@ -48,8 +48,7 @@ class CodeNode(BaseNode):
         :param variable_pool: variable pool
         :return:
         """
-        node_data = self.node_data
-        node_data: CodeNodeData = cast(self._node_data_cls, node_data)
+        node_data = cast(CodeNodeData, self.node_data)
 
         # Get code language
         code_language = node_data.code_language