Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

atoz03/office-cli

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

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /