Skip to content

Repository files navigation

Office AI CLI

🚀 AI 驱动的命令行工具,专为零技术背景的办公人员设计,让 Excel/CSV 数据处理像说话一样简单。

License: MIT Bun TypeScript

当前版本: v1.0.0 🎉

✨ 核心特性

🎯 专为办公人员设计

  • 零门槛自然语言 - 用人话描述需求,无需学习复杂公式
  • VLOOKUP 智能替代 - 彻底告别复杂的 Excel 公式
  • 会话式体验 - 交互式对话模式,像聊天一样处理数据

⚡ 极致性能

  • 启动速度 <50ms - Bun 运行时,比 Python 快 30 倍
  • Token 优化 - 按需发送元数据,单次操作 <500 tokens
  • 混合执行 - 简单任务 TypeScript 直接处理,复杂任务生成 Python 脚本

🔒 安全可靠

  • 三档风险控制 - Low/Medium/High 灵活配置执行确认
  • 代码审查 - 脚本执行前完整展示
  • 超时保护 - 自动终止异常执行
  • 元信息优先 - 默认不上传完整数据

🚀 快速开始

前置要求

安装步骤

# 1. 克隆仓库
git clone https://github.com/atoz03/office-ai-cli.git
cd office-ai-cli

# 2. 安装依赖 (使用 Bun,超快速!)
bun install

# 3. 配置 API Key
cp .env.example .env
# 编辑 .env 文件,填入你的 ANTHROPIC_API_KEY

# 4. 运行健康检查
bun run doctor

5 分钟上手

# 查看帮助
bun run dev --help

# 开始使用交互式对话模式
bun run dev chat

📖 使用指南

1. 交互式对话模式(推荐)

最简单的使用方式,像聊天一样处理数据:

bun run dev chat

示例对话:

您> 我有两个文件,订单表.xlsx 和 客户表.xlsx,想要按客户ID关联
AI> 好的,我来帮你关联这两个文件...
    ✓ 意图识别: 数据匹配
    ✓ 正在处理...
    ✓ 完成!已输出到 matched_result.xlsx

您> 再帮我筛选出订单金额大于1000的记录
AI> [正在处理...]

2. 一次性执行模式

快速执行单个任务:

# 数据匹配 (VLOOKUP 替代) ⭐ 最常用功能
bun run dev exec "把 orders.xlsx 和 customers.xlsx 按客户ID关联"

# 数据筛选
bun run dev exec "从销售表.xlsx筛选出金额大于1000的订单"

# 数据统计
bun run dev exec "统计各部门的销售总额"

# 指定输出文件
bun run dev exec "关联订单和客户数据" -o result.xlsx

3. 环境检查

检查运行环境和依赖:

bun run doctor

# 输出示例:
# ✓ Bun Runtime: 1.3.0
# ✓ Python: 3.11.5
# ✓ pandas: 已安装
# ✓ API Key: 已配置

4. 风险级别控制

控制脚本执行的确认行为:

# LOW (默认): 每次执行前都确认
bun run dev exec "..."

# MEDIUM: 首次确认,之后自动
RISK_LEVEL=medium bun run dev exec "..."

# HIGH: 完全自动(推荐熟练用户)
RISK_LEVEL=high bun run dev exec "..."

永久配置:.env 文件中设置 RISK_LEVEL=medium

级别 行为 适用场景
LOW (默认) 每次执行前都确认 新手用户、不熟悉的任务
MEDIUM 首次确认,之后自动 日常重复任务
HIGH 完全自动,不确认 熟练用户、批量处理

🛠️ 技术架构

核心技术栈

  • Bun - 超快速 JavaScript 运行时
  • TypeScript - 类型安全
  • Commander.js - CLI 框架
  • Inquirer - 交互式对话

AI 引擎

  • Claude Haiku 4.5 - 快速意图识别
  • Claude Sonnet 4.5 - 强大的脚本生成

数据处理

  • SheetJS (xlsx) - Excel 读写
  • Danfo.js - TypeScript 数据分析
  • Pandas - Python 复杂任务(按需)

混合执行策略

// 简单任务 → TypeScript 原生处理
if (intent === "DATA_MATCH" && isSimple) {
  const result = matchData(file1, file2, key);  // 使用 Danfo.js
}

// 复杂任务 → AI 生成 Python 脚本
else {
  const script = await generatePythonScript(query);  // Claude Sonnet
  const result = await executePythonScript(script);   // 安全执行
}

⚡ 性能对比

指标 Python CLI Office AI CLI (Bun) 提升
启动时间 ~1.5s ~50ms 30x
内存占用 ~80MB ~30MB 2.6x
依赖安装 ~30s ~3s 10x

🏗️ 项目结构

office-ai-cli/
├── src/
│   ├── cli/              # CLI 命令
│   │   ├── chat.ts       # 交互式对话
│   │   ├── doctor.ts     # 环境检查
│   │   └── config.ts     # 配置管理
│   ├── core/             # 核心逻辑
│   │   ├── executor.ts           # 查询执行器
│   │   ├── intent-router.ts      # 意图识别
│   │   ├── script-generator.ts   # AI 脚本生成
│   │   ├── script-executor.ts    # 安全执行
│   │   └── risk-manager.ts       # 风险控制
│   ├── ai/               # AI 客户端
│   │   └── client.ts     # Claude API
│   ├── tools/            # 数据工具
│   │   ├── data-matcher.ts       # VLOOKUP 替代 ⭐
│   │   ├── data-filter.ts        # 数据筛选
│   │   ├── data-stats.ts         # 数据统计
│   │   └── metadata.ts           # Token 优化
│   └── index.ts          # CLI 入口
├── examples/             # 示例数据
│   ├── orders.xlsx
│   ├── customers.xlsx
│   └── sales.xlsx
├── package.json
├── tsconfig.json
└── .env.example          # 环境变量模板

🔒 安全机制

  1. 代码审查 - Python 脚本执行前显示完整代码
  2. 白名单库 - 只允许安全的 Python 库(pandas, openpyxl 等)
  3. 超时保护 - 脚本执行超时自动终止(默认 300 秒)
  4. 三档确认 - 可配置执行确认级别
  5. 元信息优先 - 默认只发送列名和类型,不上传完整数据

📦 打包与分发

# 编译为单文件可执行程序
bun run build

# 生成的文件: dist/office-ai (30-50MB)
# 可直接分发,无需 node_modules
./dist/office-ai --help

🤝 开发指南

# 安装依赖
bun install

# 开发模式
bun run dev <command>

# 运行测试
bun test

# 端到端测试
RISK_LEVEL=high bun test
./test-e2e.sh

# 构建
bun run build

🗺️ Roadmap

v1.0.0 (当前版本) ✅

  • 交互式对话模式
  • VLOOKUP 智能替代(数据匹配)
  • 双层 AI 引擎(Haiku + Sonnet)
  • 三档风险级别控制
  • Token 优化(按需发送)
  • 会话上下文管理

v1.1.0 (计划中)

  • 数据可视化(图表生成)
  • 批量文件处理
  • 自定义脚本模板
  • 成本监控和预算控制

v2.0.0 (未来)

  • Word 文档处理
  • PDF 表格提取
  • 云端存储集成(S3, OSS)
  • Web UI 界面

💡 为什么选择 Bun?

  1. 极速启动 - 比 Node.js 快 6 倍,比 Python 快 30 倍
  2. 内置工具 - TypeScript/测试/打包一体化
  3. 100% 兼容 - 完全兼容 Node.js API
  4. 单文件编译 - bun build --compile 生成原生二进制
  5. 依赖安装快 - npm 包安装速度是 npm 的 10 倍

📄 许可证

MIT License - 详见 LICENSE 文件

🙏 致谢

🤔 常见问题

Q: 需要编程基础吗?

A: 完全不需要!这个工具就是为零技术背景的办公人员设计的,用自然语言描述需求即可。

Q: 数据会上传到云端吗?

A: 默认情况下,只上传列名和数据类型等元信息,不会上传完整数据。复杂任务会在本地执行 Python 脚本。

Q: 支持哪些数据格式?

A: 目前支持 Excel (.xlsx, .xls) 和 CSV (.csv) 格式。

Q: API 调用需要花费多少?

A: 使用 Token 优化策略,单次操作通常 <500 tokens。Haiku 模型成本极低(~$0.001/次),Sonnet 模型略贵但更强大。

Q: 可以在公司内网使用吗?

A: 可以!支持自定义 API URL,可以配置企业内部的 Claude API 代理。


使命: 让不会技术的人也能轻松处理复杂的数据任务!🚀

技术亮点: Bun (速度) + TypeScript (安全) + Claude AI (智能) 的完美结合!

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages