From 5dd30b1a70f4f98f0bb34b257dfa58ebf7daf843 Mon Sep 17 00:00:00 2001 From: Henry Heng Date: Wed, 25 Jun 2025 11:35:24 +0100 Subject: [PATCH] Bugfix/Update api code dialog for agentflowv2 (#4726) update api code dialog for agentflowv2 --- packages/ui/src/views/canvas/CanvasHeader.jsx | 3 +- .../ui/src/views/chatflows/APICodeDialog.jsx | 79 ++++++++++++------- 2 files changed, 52 insertions(+), 30 deletions(-) diff --git a/packages/ui/src/views/canvas/CanvasHeader.jsx b/packages/ui/src/views/canvas/CanvasHeader.jsx index bef733ece..ade71b6e2 100644 --- a/packages/ui/src/views/canvas/CanvasHeader.jsx +++ b/packages/ui/src/views/canvas/CanvasHeader.jsx @@ -206,7 +206,8 @@ const CanvasHeader = ({ chatflow, isAgentCanvas, isAgentflowV2, handleSaveFlow, chatflowApiKeyId: chatflow.apikeyid, isFormDataRequired, isSessionMemory, - isAgentCanvas + isAgentCanvas, + isAgentflowV2 }) setAPIDialogOpen(true) } diff --git a/packages/ui/src/views/chatflows/APICodeDialog.jsx b/packages/ui/src/views/chatflows/APICodeDialog.jsx index ee7ac2223..26acf8fe2 100644 --- a/packages/ui/src/views/chatflows/APICodeDialog.jsx +++ b/packages/ui/src/views/chatflows/APICodeDialog.jsx @@ -203,26 +203,7 @@ const APICodeDialog = ({ show, dialogProps, onCancel }) => { result[node].nodeIds.sort() } setNodeConfig(result) - - if (!overrideConfigStatus) { - setNodeOverrides(newNodeOverrides) - } else { - const updatedNodeOverrides = { ...nodeOverrides } - - Object.keys(updatedNodeOverrides).forEach((node) => { - if (!seenNodes.has(node)) { - delete updatedNodeOverrides[node] - } - }) - - seenNodes.forEach((node) => { - if (!updatedNodeOverrides[node]) { - updatedNodeOverrides[node] = newNodeOverrides[node] - } - }) - - setNodeOverrides(updatedNodeOverrides) - } + setNodeOverrides(newNodeOverrides) } const groupByVariableLabel = (variables) => { @@ -629,26 +610,63 @@ query({ } const getMultiConfigCodeWithFormData = (codeLang) => { - if (codeLang === 'Python') { - return `# Specify multiple values for a config parameter by specifying the node id + if (dialogProps.isAgentflowV2) { + if (codeLang === 'Python') { + return `# Specify multiple values for a config parameter by specifying the node id +body_data = { + "agentModelConfig": { + "agentAgentflow_0": { + "openAIApiKey": "sk-my-openai-1st-key" + }, + "agentAgentflow_1": { + "openAIApiKey": "sk-my-openai-2nd-key" + } + } +}` + } else if (codeLang === 'JavaScript') { + return `// Specify multiple values for a config parameter by specifying the node id +formData.append("agentModelConfig[agentAgentflow_0][openAIApiKey]", "sk-my-openai-1st-key") +formData.append("agentModelConfig[agentAgentflow_1][openAIApiKey]", "sk-my-openai-2nd-key")` + } else if (codeLang === 'cURL') { + return `-F "agentModelConfig[agentAgentflow_0][openAIApiKey]=sk-my-openai-1st-key" \\ +-F "agentModelConfig[agentAgentflow_1][openAIApiKey]=sk-my-openai-2nd-key" \\` + } + } else { + if (codeLang === 'Python') { + return `# Specify multiple values for a config parameter by specifying the node id body_data = { "openAIApiKey": { "chatOpenAI_0": "sk-my-openai-1st-key", "openAIEmbeddings_0": "sk-my-openai-2nd-key" } }` - } else if (codeLang === 'JavaScript') { - return `// Specify multiple values for a config parameter by specifying the node id + } else if (codeLang === 'JavaScript') { + return `// Specify multiple values for a config parameter by specifying the node id formData.append("openAIApiKey[chatOpenAI_0]", "sk-my-openai-1st-key") formData.append("openAIApiKey[openAIEmbeddings_0]", "sk-my-openai-2nd-key")` - } else if (codeLang === 'cURL') { - return `-F "openAIApiKey[chatOpenAI_0]=sk-my-openai-1st-key" \\ + } else if (codeLang === 'cURL') { + return `-F "openAIApiKey[chatOpenAI_0]=sk-my-openai-1st-key" \\ -F "openAIApiKey[openAIEmbeddings_0]=sk-my-openai-2nd-key" \\` + } } } const getMultiConfigCode = () => { - return `{ + if (dialogProps.isAgentflowV2) { + return `{ + "overrideConfig": { + "agentModelConfig": { + "agentAgentflow_0": { + "openAIApiKey": "sk-my-openai-1st-key" + }, + "agentAgentflow_1": { + "openAIApiKey": "sk-my-openai-2nd-key" + } + } + } +}` + } else { + return `{ "overrideConfig": { "openAIApiKey": { "chatOpenAI_0": "sk-my-openai-1st-key", @@ -656,6 +674,7 @@ formData.append("openAIApiKey[openAIEmbeddings_0]", "sk-my-openai-2nd-key")` } } }` + } } useEffect(() => { @@ -773,7 +792,7 @@ formData.append("openAIApiKey[openAIEmbeddings_0]", "sk-my-openai-2nd-key")` here {' '} @@ -838,7 +857,9 @@ formData.append("openAIApiKey[openAIEmbeddings_0]", "sk-my-openai-2nd-key")` rows={nodeOverrides[nodeLabel]} columns={ nodeOverrides[nodeLabel].length > 0 - ? Object.keys(nodeOverrides[nodeLabel][0]) + ? Object.keys(nodeOverrides[nodeLabel][0]).filter( + (key) => key !== 'schema' + ) : [] } />