From 9da05acc308840f83b743fe0082dd8d668ad6c0a Mon Sep 17 00:00:00 2001 From: Henry Heng Date: Fri, 9 Aug 2024 13:03:07 +0100 Subject: [PATCH] Bugfix/add regex to csv and airtable agent (#2983) add regex to csv and airtable agent --- .../components/nodes/agents/AirtableAgent/AirtableAgent.ts | 3 +++ packages/components/nodes/agents/CSVAgent/CSVAgent.ts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts b/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts index 34352f6c3..7b8349e80 100644 --- a/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts +++ b/packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts @@ -166,6 +166,8 @@ json.dumps(my_dict)` } const res = await chain.call(inputs, [loggerHandler, ...callbacks]) pythonCode = res?.text + // Regex to get rid of markdown code blocks syntax + pythonCode = pythonCode.replace(/^```[a-z]+\n|\n```$/gm, '') } // Then run the code using Pyodide @@ -173,6 +175,7 @@ json.dumps(my_dict)` if (pythonCode) { try { const code = `import pandas as pd\n${pythonCode}` + // TODO: get print console output finalResult = await pyodide.runPythonAsync(code) } catch (error) { throw new Error(`Sorry, I'm unable to find answer for question: "${input}" using follwoing code: "${pythonCode}"`) diff --git a/packages/components/nodes/agents/CSVAgent/CSVAgent.ts b/packages/components/nodes/agents/CSVAgent/CSVAgent.ts index 4478f9a46..5d61bcda3 100644 --- a/packages/components/nodes/agents/CSVAgent/CSVAgent.ts +++ b/packages/components/nodes/agents/CSVAgent/CSVAgent.ts @@ -171,6 +171,8 @@ json.dumps(my_dict)` } const res = await chain.call(inputs, [loggerHandler, ...callbacks]) pythonCode = res?.text + // Regex to get rid of markdown code blocks syntax + pythonCode = pythonCode.replace(/^```[a-z]+\n|\n```$/gm, '') } // Then run the code using Pyodide @@ -178,6 +180,7 @@ json.dumps(my_dict)` if (pythonCode) { try { const code = `import pandas as pd\n${pythonCode}` + // TODO: get print console output finalResult = await pyodide.runPythonAsync(code) } catch (error) { throw new Error(`Sorry, I'm unable to find answer for question: "${input}" using following code: "${pythonCode}"`)