加载CSV文件,使用自然语言(英文)提问。通过Anthropic、OpenAI或本地Ollama实现AI驱动的自然语言查询,无需SQL。
CSVBrain.
功能概述
CSVBrain.是一项面向实际任务的技能,主要用于Version: 1.0.3. 授权人: @ The ShadowRose.License: MIT.;Description.;
核心要点
- Load CSV文件并用普通英语提问.;
- Anthropic, OpenAI, 或本地的Ollam 语言查询.。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
使用与执行
使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
CSVBrain
版本:1.0.3
作者:@TheShadowRose
许可证:MIT
描述
加载 CSV 文件,并使用纯英文提问。通过 Anthropic、OpenAI 或本地 Ollama 提供 AI 驱动的自然语言查询能力,无需编写 SQL。
CSVBrain 解析 CSV 文件(支持逗号、分号或制表符分隔),自动分析数据结构,并支持通过结构化筛选条件或 AI 驱动的纯英文问题来查询数据。
特性
- CSV 加载 — 自动检测分隔符(逗号、分号、制表符),支持带引号字段及转义引号。
- 数据概要分析 — 为每列提供即时统计信息:总行数、缺失值数量、唯一值数量;数值列额外提供最小值、最大值与平均值。
- 结构化查询 — 支持对数据进行筛选、排序、限制返回行数以及聚合操作。
- 自然语言提问 — 使用纯英文向数据提问。AI 会基于数据集的结构、类型与统计信息,返回包含具体数值的准确答案。
- 多 AI 提供商支持 — 可将问题路由至 Anthropic(Claude)、OpenAI(GPT)或本地 Ollama 模型,仅需修改模型前缀即可切换。
- 零依赖 — 纯 Node.js 实现,无需任何 npm 包;HTTP 请求使用内置
https/http模块。
安装
将 src/csv-brain.js 复制到您的项目中。
const { CSVBrain } = require('./src/csv-brain');
快速开始
const { CSVBrain } = require('./src/csv-brain');
const brain = new CSVBrain();
const info = brain.load('sales.csv');
console.log(info);
// { rows: 1200, columns: 8, types: { month: 'text', revenue: 'number', ... } }
// 分析数据概要
const stats = brain.profile();
console.log(stats.revenue);
// { type: 'number', count: 1200, missing: 0, unique: 987, min: 12.5, max: 94200, avg: 8450.32 }
// 使用纯英文提问
const result = await brain.ask('What was our best month for revenue?');
console.log(result.answer);
// "Based on the data, March had the highest total revenue at $94,200."
console.log(result.model);
// "anthropic/claude-haiku-4-5"
API
new CSVBrain(options?)
创建新实例。
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model |
string |
"anthropic/claude-haiku-4-5" |
ask() 方法的默认 AI 模型 |
const brain = new CSVBrain({ model: 'openai/gpt-4o-mini' });
load(filePath, options?)
同步加载 CSV 文件。
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
delimiter |
string |
自动检测 | 强制指定分隔符 |
返回值:{ rows: number, columns: number, types: object }
const info = brain.load('data.csv');
const info2 = brain.load('data.tsv', { delimiter: 't' });
profile()
获取所有列的统计概要信息。
返回值:以列名为键的对象,每个键对应一个对象,包含 type、count、missing、unique 字段;数值列额外包含 min、max、avg 字段。
const stats = brain.profile(); console.log(stats);
query(options)
对已加载的数据执行结构化查询。
| 选项 | 类型 | 说明 |
|---|---|---|
filter |
{ column, operator, value } |
按条件筛选行。支持的操作符:>、<、>=、<=、=、contains |
sort |
{ column, order } |
按指定列排序。顺序可选:"asc" 或 "desc" |
limit |
number |
最多返回的行数 |
aggregate |
{ column } |
对数值列返回 count、sum、avg、min、max 聚合结果 |
// 筛选并排序
const topSales = brain.query({
filter: { column: 'revenue', operator: '>', value: 10000 },
sort: { column: 'revenue', order: 'desc' },
limit: 10
});
// 聚合
const totals = brain.query({
aggregate: { column: 'revenue' }
});
console.log(totals);
// { count: 1200, sum: 10140384, avg: 8450.32, min: 12.5, max: 94200 }
async ask(question, options?)
就您的数据提出自然语言问题。需配置 AI 提供商 API 密钥(或运行本地 Ollama)。
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model |
string |
实例默认值 | 带提供商前缀的 AI 模型名 |
apiKey |
string |
从环境变量读取 | 覆盖默认 API 密钥 |
ollamaHost |
string |
"http://localhost:11434" |
Ollama 服务地址 |
返回值:{ answer: string, data: any, query: object|null, model: string }
// 使用 Anthropic(默认)
// 需设置 ANTHROPIC_API_KEY 环境变量
const result = await brain.ask('Which product category has the highest average price?');
console.log(result.answer);
// "Electronics has the highest average price at $342.50, followed by Appliances at $289.00."
// 使用 OpenAI
// 需设置 OPENAI_API_KEY 环境变量
const result2 = await brain.ask('How many orders were placed in Q4?', {
model: 'openai/gpt-4o-mini'
});
// 使用本地 Ollama(无需 API 密钥)
const result3 = await brain.ask('Summarize the sales trends', {
model: 'ollama/llama3'
});
AI 提供商配置
Anthropic(Claude)
将 API 密钥设为环境变量:
export ANTHROPIC_API_KEY="sk-ant-..."
可用模型:anthropic/claude-haiku-4-5、anthropic/claude-sonnet-4-20250514 等。
OpenAI(GPT)
export OPENAI_API_KEY="sk-..."
可用模型:openai/gpt-4o-mini、openai/gpt-4o 等。
Ollama(本地)
无需 API 密钥。只需在本地运行 Ollama:
ollama serve ollama pull llama3
可用模型:ollama/llama3、ollama/mistral 等。
可选:自定义主机地址:
export OLLAMA_HOST="http://192.168.1.100:11434"
错误处理
若 AI 提供商不可用,ask() 将返回优雅的错误信息而非抛出异常:
const result = await brain.ask('What is the trend?');
if (result.answer.startsWith('AI unavailable:')) {
console.log('Falling back to manual query...');
const data = brain.query({ sort: { column: 'date', order: 'asc' } });
}
支持的文件格式
- CSV — 逗号分隔值(
.csv) - TSV — 制表符分隔值(
.tsv、.txt) - 分号分隔 — 常见于欧洲地区导出的数据
分隔符将自动从首行检测,也可手动指定。
注意:Excel 文件(
.xlsx、.xls)不支持。请先将电子表格导出为 CSV 格式。
限制
- 文件以同步方式完整加载至内存。超大文件(100MB+)可能导致性能下降。
- AI 回答质量取决于所选模型的能力与上下文窗口大小。仅向 AI 发送列概要信息与前 5 行样本数据,而非全部数据集。
- 不支持流式响应。AI 的完整响应将一次性返回。
- 无内置导出功能。请结合
query()返回结果,自行实现文件写入逻辑。
免责声明
CSVBrain 按“原样”提供,遵循 MIT 许可证。AI 生成的答案可能并非始终准确,请务必对关键数据分析结果进行人工复核。调用 AI 接口可能产生相应服务商费用。
支持
- 问题反馈:github.com/TheShadowRose/CSVBrain/issues
- 作者:@TheShadowRose
热门AI工具
相关专题
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。
0
2026.11.04
本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。
0
2026.11.03
想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。
0
2026.11.03
本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。
0
2026.11.03
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.7万人学习
共6课时 | 54.7万人学习