diff --git a/web/src/views/ApplicationConfig/Agent.tsx b/web/src/views/ApplicationConfig/Agent.tsx index aa71ead7..b694d1eb 100644 --- a/web/src/views/ApplicationConfig/Agent.tsx +++ b/web/src/views/ApplicationConfig/Agent.tsx @@ -229,10 +229,11 @@ const Agent = forwardRef ({ kb_id: item.kb_id || item.id, + retrieve_type: item.retrieve_type, top_k: item.top_k, similarity_threshold: item.similarity_threshold, vector_similarity_weight: item.vector_similarity_weight, - ...(item.config || {}) + // ...(item.config || {}) })) } as KnowledgeConfig : null, tools: tools.map(vo => { diff --git a/web/src/views/ApplicationConfig/components/Knowledge/Knowledge.tsx b/web/src/views/ApplicationConfig/components/Knowledge/Knowledge.tsx index 7ad3073d..d213e739 100644 --- a/web/src/views/ApplicationConfig/components/Knowledge/Knowledge.tsx +++ b/web/src/views/ApplicationConfig/components/Knowledge/Knowledge.tsx @@ -117,6 +117,7 @@ const Knowledge: FC<{value?: KnowledgeConfig; onChange?: (config: KnowledgeConfi const list = [...knowledgeList] list[index] = { ...list[index], + ...values, config: {...values as KnowledgeConfigForm} } setKnowledgeList([...list]) diff --git a/web/src/views/ApplicationConfig/components/Knowledge/KnowledgeListModal.tsx b/web/src/views/ApplicationConfig/components/Knowledge/KnowledgeListModal.tsx index f2c2ce3c..5b6391c0 100644 --- a/web/src/views/ApplicationConfig/components/Knowledge/KnowledgeListModal.tsx +++ b/web/src/views/ApplicationConfig/components/Knowledge/KnowledgeListModal.tsx @@ -88,6 +88,10 @@ const KnowledgeListModal = forwardRef(({ const handleSave = () => { refresh(selectedRows.map(item => ({ ...item, + similarity_threshold: 0.7, + retrieve_type: "hybrid", + top_k: 3, + weight: 1, config: { similarity_threshold: 0.7, retrieve_type: "hybrid", diff --git a/web/src/views/Workflow/components/Properties/CaseList/index.tsx b/web/src/views/Workflow/components/Properties/CaseList/index.tsx index d1849872..e1583ca0 100644 --- a/web/src/views/Workflow/components/Properties/CaseList/index.tsx +++ b/web/src/views/Workflow/components/Properties/CaseList/index.tsx @@ -61,6 +61,20 @@ const CaseList: FC = ({ const { t } = useTranslation(); const form = Form.useFormInstance(); + const bringLoopChildrenToFront = (cell: any) => { + const type = cell?.getData()?.type; + if ((type !== 'loop' && type !== 'iteration') || !graphRef?.current) return; + const cycleId = cell.getData().id; + graphRef.current.getEdges().forEach((edge: any) => { + const src = graphRef.current?.getCellById(edge.getSourceCellId()); + const tgt = graphRef.current?.getCellById(edge.getTargetCellId()); + if (src?.getData()?.cycle === cycleId || tgt?.getData()?.cycle === cycleId) edge.toFront(); + }); + graphRef.current.getNodes().forEach((n: any) => { + if (n.getData()?.cycle === cycleId) n.toFront(); + }); + }; + // Recalculate node height and port Y positions without rebuilding ports const updateNodeLayout = (cases: any[]) => { if (!selectedNode || !graphRef?.current) return; @@ -141,6 +155,8 @@ const CaseList: FC = ({ } sourceCell.toFront() selectedNode.toFront() + bringLoopChildrenToFront(sourceCell) + bringLoopChildrenToFront(selectedNode) graphRef.current?.removeCell(edge); return; } @@ -186,7 +202,9 @@ const CaseList: FC = ({ ...edgeAttrs }); selectedNode.toFront() + bringLoopChildrenToFront(selectedNode) targetCell.toFront() + bringLoopChildrenToFront(targetCell) } } diff --git a/web/src/views/Workflow/components/Properties/CategoryList/index.tsx b/web/src/views/Workflow/components/Properties/CategoryList/index.tsx index d37699d9..8a406a7a 100644 --- a/web/src/views/Workflow/components/Properties/CategoryList/index.tsx +++ b/web/src/views/Workflow/components/Properties/CategoryList/index.tsx @@ -25,6 +25,20 @@ const CategoryList: FC = ({ parentName, selectedNode, graphRe const form = Form.useFormInstance(); const formValues = Form.useWatch([parentName], form); + const bringLoopChildrenToFront = (cell: any) => { + const type = cell?.getData()?.type; + if ((type !== 'loop' && type !== 'iteration') || !graphRef?.current) return; + const cycleId = cell.getData().id; + graphRef.current.getEdges().forEach((edge: any) => { + const src = graphRef.current?.getCellById(edge.getSourceCellId()); + const tgt = graphRef.current?.getCellById(edge.getTargetCellId()); + if (src?.getData()?.cycle === cycleId || tgt?.getData()?.cycle === cycleId) edge.toFront(); + }); + graphRef.current.getNodes().forEach((n: any) => { + if (n.getData()?.cycle === cycleId) n.toFront(); + }); + }; + // Update node ports based on category count changes (add/remove categories) const updateNodePorts = (caseCount: number, removedCaseIndex?: number) => { if (!selectedNode || !graphRef?.current) return; @@ -89,7 +103,9 @@ const CategoryList: FC = ({ parentName, selectedNode, graphRe ...edgeAttrs }); sourceCell.toFront() + bringLoopChildrenToFront(sourceCell) selectedNode.toFront() + bringLoopChildrenToFront(selectedNode) } return; } @@ -122,7 +138,9 @@ const CategoryList: FC = ({ parentName, selectedNode, graphRe ...edgeAttrs }); selectedNode.toFront() + bringLoopChildrenToFront(selectedNode) targetCell.toFront() + bringLoopChildrenToFront(targetCell) } } });