智能本地知识库归档方案,支持 AI 智能分类、 批量归档、 全文搜索、 统计报告。
bash
# 基础用法(关键词分类)
node _scripts/archive.mjs /path/to/file.xlsx
# 指定分类
node _scripts/archive.mjs /path/to/file.xlsx "工作文件"
# AI 智能分类
node _scripts/archive.mjs /path/to/file.xlsx --ai-classify
bash
# 归档整个文件夹
node _scripts/archive.mjs /path/to/folder/
# 按文件类型过滤
node _scripts/archive.mjs /path/to/folder/ --pattern "*.xlsx"
# 批量 AI 分类
node _scripts/archive.mjs /path/to/folder/ --ai-classify
bash
# 搜索关键词
node _scripts/archive.mjs search "门店"
# 按分类过滤
node _scripts/archive.mjs search "数据" --category "工作文件"
bash
node _scripts/archive.mjs stats
text
knowledge-base/
├── 工作文件/ ← 数据报表、销售业绩等
├── 方案文档/ ← 计划方案、策略规划等
├── 参考资料/ ← 话术模板、培训教程等
├── 其他文档/ ← 未分类文档
├── _index/ ← 全文索引
│ ├── _manifest.json ← 归档清单
│ └── *.txt ← 索引文件
└── _scripts/
└── archive.mjs
分类关键词说明工作文件数据、报表、统计、门店、业绩、订单日常运营数据方案文档方案、计划、策略、制度、规范规划类文档参考资料话术、模板、培训、教程、案例学习参考材料其他文档-不属于以上分类
使用 --ai-classify 参数启用 AI 分类:
配置方式(可选):
bash
# 设置环境变量
export OPENCLAW_MODEL="your-model"
export OPENCLAW_API_ENDPOINT="http://localhost:11434/api/chat"
格式提取方式说明.xlsxPython openpyxlExcel 表格.docxZIP 解析Word 文档.pptxZIP 解析PowerPoint.pdf直接读取PDF 文本.txt/.csv/.md/.json/.xml/.html/.log直接读取文本文件
支持腾讯云 COS、AWS S3、阿里云 OSS 等,修改脚本配置即可:
javascript
const CLOUD_STORAGE = {
enabled: true,
type: 'cos',
bucket: 'mybucket-1250000000',
prefix: 'knowledge-base/',
command: (filepath, remotePath) => `coscmd upload "${filepath}" "${remotePath}"`,
};
A: 超过 10MB 的文件会自动上传到云存储(需配置),本地只保留索引。未配置云存储时会跳过上传但仍创建索引。
A: 加密的 Office 文件无法提取内容,会记录错误信息。建议先解密再归档。
A: 脚本会捕获错误并记录,不会中断批量处理。损坏文件的索引会标注 [提取失败: ...]。
腾讯云 COS:
bash
# 安装 coscmd
pip install coscmd
# 配置
coscmd config -a <SecretId> -s <SecretKey> -b <Bucket> -r <Region>
AWS S3:
bash
# 安装 aws-cli
pip install awscli
# 配置
aws configure
阿里云 OSS:
bash
# 安装 ossutil
wget https://gosspublic.alicdn.com/ossutil/1.7.14/ossutil-v1.7.14-linux-amd64.zip
# 配置
./ossutil config
A: 脚本会自动检测清单中是否已存在相同文件名和大小的记录,已归档的文件会自动跳过。
A: 使用 --category 参数按分类过滤,缩小搜索范围。
场景处理方式文件不存在报错退出文件名重复自动添加序号后缀不支持的格式创建索引但标注不支持提取AI 分类失败自动 fallback 到关键词分类云存储上传失败记录错误,继续创建本地索引批量处理中断已处理的文件已保存,可重新运行继续