Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,13 @@ def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return DocumentSplitNodeSerializer

def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
if [WorkflowMode.KNOWLEDGE, WorkflowMode.KNOWLEDGE_LOOP, WorkflowMode.TOOL,
WorkflowMode.TOOL_LOOP].__contains__(
self.workflow_manage.flow.workflow_mode):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data,
**{'knowledge_id': None})
else:
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)

def execute(self, document_list, knowledge_id, split_strategy, paragraph_title_relate_problem_type,
paragraph_title_relate_problem, paragraph_title_relate_problem_reference,
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The provided code seems to have an issue related to handling different workflow modes. The execute method is called regardless of whether the workflow_mode is one of the specified knowledge loop workflows (KNOWLEDGE LOOP, TOOL_LOOP). This can be improved by modifying the logic inside _run() to handle these mode-specific conditions:

def _run(self):
    if [WorkflowMode.KNOWLEDGE, WorkflowMode.KNOWLEDGE_LOOP, WorkflowMode.TOOL,
        WorkflowMode.TOOL_LOOP].__contains__(self.workflow_manage.flow.workflow_mode):
        # Set default values for knowledge_id if needed
        return self.execute(
            **self.node_params_serializer.data,
            **self.flow_params_serializer.data,
            **{'knowledge_id': None}  # Adjust based on actual requirements
        )
    else:
        return self.execute(
            **self.node_params_serializer.data,
            **self.flow_params_serializer.data
        )

This ensures that when a knowledge loop-related workflow mode is detected, the knowledge_id parameter is set to None. You should adjust this according to your actual use case for specifying default or custom values in these cases.

Expand Down
17 changes: 11 additions & 6 deletions ui/src/workflow/common/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -976,7 +976,13 @@ const toolMenuNodes = [
},
{
label: t('views.knowledge.title'),
list: [searchKnowledgeNode, searchDocumentNode, rerankerNode, documentExtractNode],
list: [
searchKnowledgeNode,
searchDocumentNode,
rerankerNode,
documentExtractNode,
documentSplitNode,
],
},
{
label: t('workflow.nodes.classify.businessLogic'),
Expand Down Expand Up @@ -1043,14 +1049,13 @@ export const toolLibNode = {
*/
export const toolWorkflowLibNode = {
type: WorkflowType.ToolWorkflowLib,
text: t('workflow.nodes.toolWorlflowNode.text','工作流工具'),
label: t('workflow.nodes.toolWorlflowNode.label','工作流工具'),
text: t('workflow.nodes.toolWorlflowNode.text', '工作流工具'),
label: t('workflow.nodes.toolWorlflowNode.label', '工作流工具'),
height: 170,
properties: {
stepName: t('workflow.nodes.toolWorlflowNode.label','工作流工具'),
stepName: t('workflow.nodes.toolWorlflowNode.label', '工作流工具'),
config: {
fields: [
],
fields: [],
},
},
}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are no apparent errors or issues with the provided code snippet. The only suggestion would be to consider adding more descriptive labels for some of the nodes, such as "Document Split" instead of just "documentSplit". This could improve readability when using the interface.

Expand Down
Loading