CSV
解析和字符串化逗号分隔值(CSV)数据。
解析器将CSV数据映射为对象数组,字段名与标题行对应。例如,CSV数据:
name, valueA, 10B, 2C, 3
映射为以下对象数组:
[ { "name": "A", "value": 10 }, { "name": "B", "value": 2 }, { "name": "C", "value": 3 }]
def
def 函数会自动将CSV数据解析并转换为Markdown表格格式(同样适用于XLSX)。
def("DATA", env.files[0])
def
还支持基本的行过滤选项,用于控制您想要插入到提示中的行数。
def("DATA", env.files[0], { sliceHead: 50, // take first 50 sliceTail: 25, // take last 25 sliceSample: 5, // take 5 at random})
CSV
类似于JavaScript中的JSON
类,CSV
类提供了用于解析和序列化逗号分隔值(CSV)数据的方法。
parse
parse
方法将 CSV 字符串转换为对象数组。第一行用作标题行。
const csv = await workspace.readText("penguins.csv")const rows = CSV.parse(csv)
如果CSV文件没有标题行,您可以将列名指定为字符串数组。您还可以指定自定义数据分隔符。
const rows = CSV.parse(csv, { delimiter: "|", headers: ["name", "value"],})
你可以使用defData将rows
对象序列化到提示中。defData
还支持基本的行过滤选项,如def
。
defData("DATA", rows)
stringify
stringify
方法将对象数组转换为CSV字符串。
const csvString = CSV.stringify(rows)
markdownify
方法将对象数组转换为Markdown表格。这种编码方式对LLM分词器更高效。
const md = CSV.markdownify(rows)
| name | value ||------|-------|| A | 10 || B | 2 || C | 3 |
parsers
parsers 还提供了一个用于解析CSV的解析器。对于无效输入,它会返回 undefined
,并支持文件和解析选项。
const rows = parsers.CSV(env.files[0])
修复
您可以指定repair: true
选项来修复CSV相关的常见LLM错误。
const rows = CSV.parse(csv, { repair: true })