diff --git a/apps/knowledge/views/knowledge_workflow.py b/apps/knowledge/views/knowledge_workflow.py index c6617e7d7..492eb0104 100644 --- a/apps/knowledge/views/knowledge_workflow.py +++ b/apps/knowledge/views/knowledge_workflow.py @@ -32,8 +32,20 @@ class KnowledgeDatasourceFormListView(APIView): ), ) def post(self, request: Request, workspace_id: str, knowledge_id: str, type: str, id: str): - return result.success(KnowledgeWorkflowSerializer.Datasource( - data={'type': type, 'id': id, 'params': request.data, 'function_name': 'get_form_list'}).action()) + r = KnowledgeWorkflowSerializer.Datasource( + data={'type': type, 'id': id, 'params': request.data, 'function_name': 'get_form_list'} + ).action() + for item in r: + attrs = item.get('attrs') + if attrs: + function = attrs.pop('fetch_list_function', None) + if function and callable(function): + function_name = function.__name__ + else: + function_name = function + attrs[ + 'url'] = '/workspace/${current_workspace_id}/knowledge/${current_knowledge_id}/datasource/tool/' + f'{id}/{function_name}' + return result.success(r) class KnowledgeDatasourceView(APIView): diff --git a/ui/src/views/tool/DataSourceToolFormDrawer.vue b/ui/src/views/tool/DataSourceToolFormDrawer.vue index 8370071af..e752ca8c4 100644 --- a/ui/src/views/tool/DataSourceToolFormDrawer.vue +++ b/ui/src/views/tool/DataSourceToolFormDrawer.vue @@ -283,11 +283,6 @@ const codeTemplate = ` from typing import Dict, List -def get_call_url(node, function_name): - return '/workspace/\${current_workspace_id}/knowledge/\${current_knowledge_id}/datasource/tool/' + node.get( - 'properties').get('node_data').get('tool_lib_id') + f'/{function_name}' - - def get_form_list(node, **kwargs) -> List[Dict[str, object]]: """获取文件列表表单配置 @@ -307,7 +302,7 @@ def get_form_list(node, **kwargs) -> List[Dict[str, object]]: "input_type": 'Tree', "attrs": { "lazy": True, - "url": get_call_url(node, 'get_file_list'), + "fetch_list_function": "get_file_list", }, "label": '', }]