Feature/Update csv agent (#2143)

update csv agent
This commit is contained in:
Henry Heng 2024-04-09 21:22:00 +01:00 committed by GitHub
parent d96459d87b
commit 024b2ad22e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 3 deletions

View File

@ -25,7 +25,7 @@ class CSV_Agents implements INode {
constructor() { constructor() {
this.label = 'CSV Agent' this.label = 'CSV Agent'
this.name = 'csvAgent' this.name = 'csvAgent'
this.version = 2.0 this.version = 3.0
this.type = 'AgentExecutor' this.type = 'AgentExecutor'
this.category = 'Agents' this.category = 'Agents'
this.icon = 'CSVagent.svg' this.icon = 'CSVagent.svg'
@ -60,6 +60,16 @@ class CSV_Agents implements INode {
type: 'Moderation', type: 'Moderation',
optional: true, optional: true,
list: true list: true
},
{
label: 'Custom Pandas Read_CSV Code',
description:
'Custom Pandas <a target="_blank" href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html">read_csv</a> function. Takes in an input: "csv_data"',
name: 'customReadCSV',
default: 'read_csv(csv_data)',
type: 'code',
optional: true,
additionalParams: true
} }
] ]
} }
@ -74,6 +84,7 @@ class CSV_Agents implements INode {
const model = nodeData.inputs?.model as BaseLanguageModel const model = nodeData.inputs?.model as BaseLanguageModel
const systemMessagePrompt = nodeData.inputs?.systemMessagePrompt as string const systemMessagePrompt = nodeData.inputs?.systemMessagePrompt as string
const moderations = nodeData.inputs?.inputModeration as Moderation[] const moderations = nodeData.inputs?.inputModeration as Moderation[]
const _customReadCSV = nodeData.inputs?.customReadCSV as string
if (moderations && moderations.length > 0) { if (moderations && moderations.length > 0) {
try { try {
@ -126,6 +137,7 @@ class CSV_Agents implements INode {
// First load the csv file and get the dataframe dictionary of column types // First load the csv file and get the dataframe dictionary of column types
// For example using titanic.csv: {'PassengerId': 'int64', 'Survived': 'int64', 'Pclass': 'int64', 'Name': 'object', 'Sex': 'object', 'Age': 'float64', 'SibSp': 'int64', 'Parch': 'int64', 'Ticket': 'object', 'Fare': 'float64', 'Cabin': 'object', 'Embarked': 'object'} // For example using titanic.csv: {'PassengerId': 'int64', 'Survived': 'int64', 'Pclass': 'int64', 'Name': 'object', 'Sex': 'object', 'Age': 'float64', 'SibSp': 'int64', 'Parch': 'int64', 'Ticket': 'object', 'Fare': 'float64', 'Cabin': 'object', 'Embarked': 'object'}
let dataframeColDict = '' let dataframeColDict = ''
let customReadCSVFunc = _customReadCSV ? _customReadCSV : 'read_csv(csv_data)'
try { try {
const code = `import pandas as pd const code = `import pandas as pd
import base64 import base64
@ -138,7 +150,7 @@ decoded_data = base64.b64decode(base64_string)
csv_data = StringIO(decoded_data.decode('utf-8')) csv_data = StringIO(decoded_data.decode('utf-8'))
df = pd.read_csv(csv_data) df = pd.${customReadCSVFunc}
my_dict = df.dtypes.astype(str).to_dict() my_dict = df.dtypes.astype(str).to_dict()
print(my_dict) print(my_dict)
json.dumps(my_dict)` json.dumps(my_dict)`

View File

@ -16,7 +16,7 @@
"id": "csvAgent_0", "id": "csvAgent_0",
"label": "CSV Agent", "label": "CSV Agent",
"name": "csvAgent", "name": "csvAgent",
"version": 2, "version": 3,
"type": "AgentExecutor", "type": "AgentExecutor",
"baseClasses": ["AgentExecutor", "BaseChain"], "baseClasses": ["AgentExecutor", "BaseChain"],
"category": "Agents", "category": "Agents",
@ -45,6 +45,16 @@
"optional": true, "optional": true,
"list": true, "list": true,
"id": "csvAgent_0-input-inputModeration-Moderation" "id": "csvAgent_0-input-inputModeration-Moderation"
},
{
"label": "Custom Pandas Read_CSV Code",
"description": "Custom Pandas <a target=\"_blank\" href=\"https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html\">read_csv</a> function. Takes in an input: \"csv_data\"",
"name": "customReadCSV",
"default": "read_csv(csv_data)",
"type": "code",
"optional": true,
"additionalParams": true,
"id": "csvAgent_0-input-customReadCSV-code"
} }
], ],
"inputs": { "inputs": {