mirror of
http://112.124.100.131/huang.ze/ebiz-dify-ai.git
synced 2025-12-10 03:16:51 +08:00
chore: improve http executor configs (#7730)
This commit is contained in:
@@ -5,10 +5,6 @@ from pydantic import BaseModel, ValidationInfo, field_validator
|
|||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
from core.workflow.entities.base_node_data_entities import BaseNodeData
|
from core.workflow.entities.base_node_data_entities import BaseNodeData
|
||||||
|
|
||||||
MAX_CONNECT_TIMEOUT = dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT
|
|
||||||
MAX_READ_TIMEOUT = dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT
|
|
||||||
MAX_WRITE_TIMEOUT = dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT
|
|
||||||
|
|
||||||
|
|
||||||
class HttpRequestNodeAuthorizationConfig(BaseModel):
|
class HttpRequestNodeAuthorizationConfig(BaseModel):
|
||||||
type: Literal[None, 'basic', 'bearer', 'custom']
|
type: Literal[None, 'basic', 'bearer', 'custom']
|
||||||
@@ -41,9 +37,9 @@ class HttpRequestNodeBody(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class HttpRequestNodeTimeout(BaseModel):
|
class HttpRequestNodeTimeout(BaseModel):
|
||||||
connect: int = MAX_CONNECT_TIMEOUT
|
connect: int = dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT
|
||||||
read: int = MAX_READ_TIMEOUT
|
read: int = dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT
|
||||||
write: int = MAX_WRITE_TIMEOUT
|
write: int = dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT
|
||||||
|
|
||||||
|
|
||||||
class HttpRequestNodeData(BaseNodeData):
|
class HttpRequestNodeData(BaseNodeData):
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from mimetypes import guess_extension
|
|||||||
from os import path
|
from os import path
|
||||||
from typing import cast
|
from typing import cast
|
||||||
|
|
||||||
|
from configs import dify_config
|
||||||
from core.app.segments import parser
|
from core.app.segments import parser
|
||||||
from core.file.file_obj import FileTransferMethod, FileType, FileVar
|
from core.file.file_obj import FileTransferMethod, FileType, FileVar
|
||||||
from core.tools.tool_file_manager import ToolFileManager
|
from core.tools.tool_file_manager import ToolFileManager
|
||||||
@@ -11,9 +12,6 @@ from core.workflow.entities.node_entities import NodeRunResult, NodeType
|
|||||||
from core.workflow.entities.variable_pool import VariablePool
|
from core.workflow.entities.variable_pool import VariablePool
|
||||||
from core.workflow.nodes.base_node import BaseNode
|
from core.workflow.nodes.base_node import BaseNode
|
||||||
from core.workflow.nodes.http_request.entities import (
|
from core.workflow.nodes.http_request.entities import (
|
||||||
MAX_CONNECT_TIMEOUT,
|
|
||||||
MAX_READ_TIMEOUT,
|
|
||||||
MAX_WRITE_TIMEOUT,
|
|
||||||
HttpRequestNodeData,
|
HttpRequestNodeData,
|
||||||
HttpRequestNodeTimeout,
|
HttpRequestNodeTimeout,
|
||||||
)
|
)
|
||||||
@@ -21,9 +19,9 @@ from core.workflow.nodes.http_request.http_executor import HttpExecutor, HttpExe
|
|||||||
from models.workflow import WorkflowNodeExecutionStatus
|
from models.workflow import WorkflowNodeExecutionStatus
|
||||||
|
|
||||||
HTTP_REQUEST_DEFAULT_TIMEOUT = HttpRequestNodeTimeout(
|
HTTP_REQUEST_DEFAULT_TIMEOUT = HttpRequestNodeTimeout(
|
||||||
connect=min(10, MAX_CONNECT_TIMEOUT),
|
connect=min(10, dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT),
|
||||||
read=min(60, MAX_READ_TIMEOUT),
|
read=min(60, dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT),
|
||||||
write=min(20, MAX_WRITE_TIMEOUT),
|
write=min(20, dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -43,9 +41,9 @@ class HttpRequestNode(BaseNode):
|
|||||||
'body': {'type': 'none'},
|
'body': {'type': 'none'},
|
||||||
'timeout': {
|
'timeout': {
|
||||||
**HTTP_REQUEST_DEFAULT_TIMEOUT.model_dump(),
|
**HTTP_REQUEST_DEFAULT_TIMEOUT.model_dump(),
|
||||||
'max_connect_timeout': MAX_CONNECT_TIMEOUT,
|
'max_connect_timeout': dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT,
|
||||||
'max_read_timeout': MAX_READ_TIMEOUT,
|
'max_read_timeout': dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT,
|
||||||
'max_write_timeout': MAX_WRITE_TIMEOUT,
|
'max_write_timeout': dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -92,17 +90,18 @@ class HttpRequestNode(BaseNode):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
def _get_request_timeout(self, node_data: HttpRequestNodeData) -> HttpRequestNodeTimeout:
|
@staticmethod
|
||||||
|
def _get_request_timeout(node_data: HttpRequestNodeData) -> HttpRequestNodeTimeout:
|
||||||
timeout = node_data.timeout
|
timeout = node_data.timeout
|
||||||
if timeout is None:
|
if timeout is None:
|
||||||
return HTTP_REQUEST_DEFAULT_TIMEOUT
|
return HTTP_REQUEST_DEFAULT_TIMEOUT
|
||||||
|
|
||||||
timeout.connect = timeout.connect or HTTP_REQUEST_DEFAULT_TIMEOUT.connect
|
timeout.connect = min(timeout.connect or HTTP_REQUEST_DEFAULT_TIMEOUT.connect,
|
||||||
timeout.connect = min(timeout.connect, MAX_CONNECT_TIMEOUT)
|
dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT)
|
||||||
timeout.read = timeout.read or HTTP_REQUEST_DEFAULT_TIMEOUT.read
|
timeout.read = min(timeout.read or HTTP_REQUEST_DEFAULT_TIMEOUT.read,
|
||||||
timeout.read = min(timeout.read, MAX_READ_TIMEOUT)
|
dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT)
|
||||||
timeout.write = timeout.write or HTTP_REQUEST_DEFAULT_TIMEOUT.write
|
timeout.write = min(timeout.write or HTTP_REQUEST_DEFAULT_TIMEOUT.write,
|
||||||
timeout.write = min(timeout.write, MAX_WRITE_TIMEOUT)
|
dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT)
|
||||||
return timeout
|
return timeout
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
Reference in New Issue
Block a user