Skip to content

AI 文档创作模板

版本: v5.0.2.1 Headless 命令 — 不依赖桌面 GUI,直接使用核心包运行。

概述

AI 文档创作模板是 ChainlessChain CLI 的项目初始化模板之一,通过 cc init --template ai-doc-creator 一键配置完整的 AI 文档创作环境。它将 LLM 驱动的内容生成与本地文档格式转换工具链(pandoc、LibreOffice、Python)相结合,支持从 Markdown 到 DOCX/PDF/XLSX/PPTX 的全格式文档生命周期管理。所有处理均在本地完成,文档内容不会上传至外部服务。

核心特性

  • AI 文档生成 — 通过自然语言描述生成结构化文档,支持报告、方案、手册、README 四种风格,可自定义大纲
  • 多格式输出 — 内置 Markdown/HTML 输出,通过 pandoc 和 LibreOffice 扩展支持 DOCX、PDF、ODT、CSV、PNG 等格式
  • AI 文档编辑 — 对现有文档进行智能修改、翻译、摘要提取,自动生成 _edited 副本不覆盖原文件
  • 公式与图表保留 — Excel 编辑使用 data_only=False 模式保留公式;PowerPoint 编辑仅修改文字,跳过图表形状
  • Persona 自动激活 — 初始化后 Agent 模式自动加载"AI文档助手"角色,支持自然语言批量任务
  • cli-anything 集成 — LibreOffice 和 pandoc 可通过 cli-anything register 注册为独立技能,支持宏执行等高级功能
  • 格式转换引擎 — LibreOffice 无头模式驱动,支持 9 种目标格式的相互转换

cc init --template ai-doc-creator 在项目目录中一键配置 AI 文档创作环境,自动生成 Persona(AI文档助手) 和 3 个工作区层技能。

三个文档技能

技能功能依赖
doc-generateAI 自动生成结构化文档,输出 md / html / docx / pdfmd/html 内置;docx 需要 pandoc;pdf 需要 LibreOffice
libre-convertLibreOffice 无头模式格式转换(docx/pdf/html/odt 等)LibreOffice 本地安装
doc-editAI 修改现有文档,保留公式 / 图表 / 样式(xlsx/pptx 结构完整)md/txt/html 内置;docx 需 pandoc 或 LibreOffice;xlsx 需 Python + openpyxl;pptx 需 Python + python-pptx

快速开始

bash
cd my-doc-project
chainlesschain init --template ai-doc-creator --yes

生成目录结构:

<project-root>/
├── .chainlesschain/
│   ├── config.json         # AI文档助手 Persona 配置
│   ├── rules.md            # LibreOffice + pandoc + cli-anything 集成规则
│   └── skills/
│       ├── ai-doc-creator-persona/   # 自动激活 Persona
│       ├── doc-generate/             # AI 文档生成技能
│       ├── libre-convert/            # LibreOffice 格式转换技能
│       └── doc-edit/                 # AI 修改现有文档技能
└── templates/
    └── README.md           # 文档模板使用指南

安装依赖

bash
# DOCX 输出(doc-generate / doc-edit)
winget install pandoc                        # Windows
brew install pandoc                          # macOS
apt install pandoc                           # Linux

# PDF 输出 / 格式转换(libre-convert / doc-generate)
winget install LibreOffice.LibreOffice       # Windows
brew install --cask libreoffice              # macOS
apt install libreoffice                      # Linux

# Excel 编辑(doc-edit .xlsx)
pip install openpyxl

# PowerPoint 编辑(doc-edit .pptx)
pip install python-pptx

技能使用

doc-generate — AI 生成文档

bash
# 生成 Markdown 文档(内置,无需依赖)
chainlesschain skill run doc-generate "2026年AI技术趋势分析报告"

# 指定文档风格
chainlesschain skill run doc-generate "项目方案" --args '{"style":"proposal","format":"md"}'

# 生成 DOCX(需要 pandoc)
chainlesschain skill run doc-generate "项目方案" --args '{"style":"proposal","format":"docx"}'

# 生成 PDF(需要 LibreOffice)
chainlesschain skill run doc-generate "产品需求说明书" --args '{"format":"pdf","style":"manual"}'

# 使用大纲精确控制文档结构
chainlesschain skill run doc-generate "API文档" --args '{"outline":"1.概述 2.认证方式 3.接口列表 4.错误码","format":"md"}'

文档风格(style 参数):

风格说明典型章节
report(默认)分析报告执行摘要、背景、详细分析、结论和建议
proposal项目方案项目背景、目标、实施方案、资源需求、风险分析
manual说明书 / 手册概述、安装配置、功能说明、常见问题
readmeREADME 文档项目简介、快速开始、功能特性、安装使用

libre-convert — LibreOffice 格式转换

bash
# 转换为 PDF(默认)
chainlesschain skill run libre-convert "report.docx"

# 指定输出格式
chainlesschain skill run libre-convert "slides.pptx" --args '{"format":"pdf"}'
chainlesschain skill run libre-convert "data.xlsx" --args '{"format":"csv"}'

# 指定输出目录
chainlesschain skill run libre-convert "report.docx" --args '{"format":"html","outdir":"./output"}'

支持的转换格式: pdf / docx / html / odt / pptx / xlsx / csv / txt / png

doc-edit — AI 修改现有文档

输出文件自动命名为 {原文件名}_edited.{扩展名},不覆盖原文件。

bash
# 修改 Markdown 文档
chainlesschain skill run doc-edit --args '{"input_file":"report.md","instruction":"优化摘要部分,使语气更正式"}'

# 修改 Word 文档(保留样式,需要 pandoc)
chainlesschain skill run doc-edit --args '{"input_file":"report.docx","instruction":"将结论部分翻译为英文","action":"translate"}'

# 修改 Excel(保留公式和图表,需要 Python + openpyxl)
chainlesschain skill run doc-edit --args '{"input_file":"data.xlsx","instruction":"将产品名称首字母大写"}'

# 修改 PowerPoint(仅修改文字,不影响图形图表,需要 Python + python-pptx)
chainlesschain skill run doc-edit --args '{"input_file":"slides.pptx","instruction":"使语气更正式","action":"edit"}'

# 生成文档摘要
chainlesschain skill run doc-edit --args '{"input_file":"report.md","instruction":"提取核心要点","action":"summarize"}'

action 参数:

说明
edit(默认)按指令修改文档内容
summarize生成文档摘要
translate翻译文档内容

使用 Agent 批量处理文档

bash
chainlesschain agent

Agent 启动后自动加载 AI文档助手 Persona,可通过自然语言描述批量任务:

帮我把 docs/ 目录下所有 .md 文件转换为 PDF,并生成一份项目技术总结报告

cli-anything 集成

LibreOffice 具有完整的 CLI 接口,同时支持内置技能和 cli-anything 两种方式:

bash
# 注册 LibreOffice 完整 CLI(用于宏、模板样式等高级功能)
chainlesschain cli-anything register soffice

# 注册 pandoc
chainlesschain cli-anything register pandoc

选择方式:

场景推荐方式
日常 AI 文档生成和格式转换使用内置 doc-generate / libre-convert 技能
宏执行、样式管理、批量脚本等高级功能cli-anything register soffice 后通过 Agent 调用

故障排查

问题解决方案
doc-generate 请求 docx 但输出了 md安装 pandoc 后重试;或安装 LibreOffice
libre-convert 报错"LibreOffice not found"安装 LibreOffice,或运行 chainlesschain cli-anything register soffice
doc-edit .xlsx 报错安装 pip install openpyxl
doc-edit .pptx 报错安装 pip install python-pptx
doc-edit .docx 输出格式损坏优先安装 pandoc;没有 pandoc 时回退使用 LibreOffice

系统架构

AI 文档创作模板由 3 个工作区技能组成,各司其职并可组合使用:

用户输入 (自然语言 / 文件路径)


┌───────────────────┐     ┌───────────────────┐     ┌───────────────────┐
│   doc-generate    │     │  libre-convert    │     │     doc-edit      │
│                   │     │                   │     │                   │
│ LLM → Markdown   │────▶│ LibreOffice 无头  │     │ 读取 → LLM 修改  │
│ pandoc → DOCX    │     │ 模式格式转换      │     │ → 写回新文件      │
│ soffice → PDF    │     │ (9 种目标格式)    │     │                   │
└───────────────────┘     └───────────────────┘     └───────────────────┘
        │                         │                         │
        ▼                         ▼                         ▼
  md / html / docx / pdf    pdf / docx / html /      {name}_edited.{ext}
                            odt / csv / png ...

处理路径按文件类型分流:

文件类型doc-edit 处理方式
.md / .txt / .html直接读取 → LLM 修改 → 写回
.docxpandoc 转 Markdown → LLM 修改 → pandoc 转回 DOCX(回退 LibreOffice)
.xlsxPython + openpyxl 读取(data_only=False 保留公式)→ LLM 修改 → 写回
.pptxPython + python-pptx 读取文本 → LLM 修改 → 仅更新文字 run,跳过图表 shape

安全考虑

安全措施说明
临时文件清理Python 临时脚本通过 os.tmpdir() 创建,在 finally 块中自动删除
无外部上传所有文档处理均在本地完成,文件内容不会发送至外部服务(LLM 调用除外)
本地工具执行pandoc 和 LibreOffice 均为本地安装的可信程序,不涉及网络传输
Python 脚本隔离xlsx/pptx 编辑通过生成一次性 Python 脚本执行,脚本仅操作指定文件
不覆盖原文件doc-edit 输出为 {baseName}_edited.{ext},始终保留原始文件
LLM 本地优先默认使用本地 Ollama 模型处理文档内容,敏感数据不出境

关键文件

文件说明
packages/cli/src/commands/init.js模板定义入口,包含 3 个技能的 SKILL.md 和 handler 源码
.chainlesschain/skills/doc-generate/SKILL.mddoc-generate 技能定义(项目初始化后生成)
.chainlesschain/skills/doc-generate/handler.jsdoc-generate 处理器:LLM 生成 → pandoc/soffice 转换
.chainlesschain/skills/libre-convert/SKILL.mdlibre-convert 技能定义(项目初始化后生成)
.chainlesschain/skills/libre-convert/handler.jslibre-convert 处理器:LibreOffice 无头模式格式转换
.chainlesschain/skills/doc-edit/SKILL.mddoc-edit 技能定义(项目初始化后生成)
.chainlesschain/skills/doc-edit/handler.jsdoc-edit 处理器:按文件类型分流修改
.chainlesschain/config.jsonPersona 配置(AI文档助手角色)
.chainlesschain/rules.mdLibreOffice + pandoc + cli-anything 集成规则
packages/cli/__tests__/unit/init-ai-doc-creator.test.js单元测试(70 tests)
packages/cli/__tests__/integration/ai-doc-creator-handlers.test.js集成测试(47 tests)

配置参考

通过 .chainlesschain/config.json 控制文档创作模板行为:

javascript
{
  "persona": {
    "name": "AI文档助手",
    "role": "专业文档创作与编辑助手",
    "background": "擅长生成和编辑各类技术文档、商业文档与学术报告"
  },
  "skills": {
    "doc-generate": {
      "defaultStyle": "report",     // report | proposal | manual | readme
      "defaultFormat": "md",        // md | html | docx | pdf
      "pandocPath": "pandoc",       // pandoc 可执行路径(默认从 PATH 查找)
      "libreOfficePath": "soffice"  // LibreOffice soffice 路径
    },
    "libre-convert": {
      "defaultFormat": "pdf",       // 默认输出格式
      "outdir": "./output"          // 默认输出目录
    },
    "doc-edit": {
      "defaultAction": "edit",      // edit | summarize | translate
      "preserveFormulas": true,     // xlsx 编辑时保留公式(data_only=False)
      "skipChartShapes": true       // pptx 编辑时跳过图表 shape
    }
  }
}
配置项类型默认值说明
skills.doc-generate.defaultStylestring"report"未指定 style 时的默认文档风格
skills.doc-generate.defaultFormatstring"md"未指定 format 时的默认输出格式
skills.doc-generate.pandocPathstring"pandoc"pandoc 可执行文件路径
skills.doc-generate.libreOfficePathstring"soffice"LibreOffice 可执行文件路径
skills.libre-convert.defaultFormatstring"pdf"libre-convert 默认目标格式
skills.doc-edit.defaultActionstring"edit"doc-edit 未指定 action 时的默认动作
skills.doc-edit.preserveFormulasbooleantruexlsx 编辑使用 data_only=False 保留公式

性能指标

以下数据来自本地基准测试(配置:Ollama qwen2:7b,Core i7,16GB RAM):

文档生成耗时

文档类型规模平均耗时说明
Markdown 报告1000–2000 字8–15s纯 LLM 生成,无依赖
DOCX 报告1000–2000 字10–18sLLM + pandoc 转换
PDF 报告1000–2000 字15–25sLLM + LibreOffice 渲染
HTML 文档1000–2000 字8–16sLLM + 内置模板

格式转换耗时(libre-convert)

源格式目标格式文件大小平均耗时
DOCXPDF< 100KB2–5s
PPTXPDF< 5MB5–12s
XLSXCSV< 1MB1–3s
HTMLPDF< 500KB3–8s

doc-edit 处理耗时

文件类型文件大小操作平均耗时
.md< 50KBedit/translate5–12s
.docx< 100KBedit(pandoc)8–18s
.xlsx< 1MBedit(openpyxl)6–15s
.pptx< 5MBedit(python-pptx)8–20s

测试覆盖率

测试层级文件测试数覆盖场景
✅ 单元测试init-ai-doc-creator.test.js70技能生成、Persona 配置、模板结构
✅ 集成测试ai-doc-creator-handlers.test.js47doc-generate / libre-convert / doc-edit handler 完整流程
合计2 文件117

关键测试场景:

  • doc-generate 在无 pandoc/LibreOffice 时自动降级为 md 输出
  • libre-convert 正确调用 soffice --headless --convert-to
  • doc-edit xlsx 以 data_only=False 读取保留公式
  • doc-edit pptx 跳过图表 Shape 仅修改文字 run
  • doc-edit 输出文件命名为 {baseName}_edited.{ext}
  • ✅ Python 临时脚本在 finally 块中清理
  • ✅ Persona 自动激活配置完整性验证

使用示例

批量生成多格式文档

bash
# 1. 初始化项目
cd my-doc-project
chainlesschain init --template ai-doc-creator --yes

# 2. 生成 Markdown 报告
chainlesschain skill run doc-generate "2026年AI技术趋势分析报告"
# → 输出:ai-tech-trends-2026.md

# 3. 将 Markdown 转换为 PDF
chainlesschain skill run libre-convert "ai-tech-trends-2026.md" --args '{"format":"pdf"}'
# → 输出:ai-tech-trends-2026.pdf

# 4. 批量转换目录下所有 docx
chainlesschain agent
# > 帮我把 ./reports 目录下所有 .docx 转换为 PDF,保存到 ./output

多语言文档工作流

bash
# 生成中文技术方案
chainlesschain skill run doc-generate "微服务迁移方案" --args '{"style":"proposal","format":"docx"}'

# 翻译为英文副本
chainlesschain skill run doc-edit --args '{
  "input_file": "微服务迁移方案.docx",
  "instruction": "将全文翻译为英文,保持专业技术术语",
  "action": "translate"
}'
# → 输出:微服务迁移方案_edited.docx(英文版)

Agent 模式批量处理

bash
chainlesschain agent

进入 Agent 后可使用自然语言:

> 帮我生成一份产品发布说明,风格为 proposal,导出 docx 和 pdf 两份
> 把 data.xlsx 中的产品名称翻译成英文,保留所有公式
> 将 slides.pptx 的文字内容整体调整为更正式的商务语气

使用大纲精确控制文档结构

javascript
// 通过 --args 传递大纲控制章节
chainlesschain skill run doc-generate "API接口文档" --args '{
  "outline": "1.概述 2.认证方式 2.1 Bearer Token 2.2 API Key 3.接口列表 4.错误码 5.SDK示例",
  "style": "manual",
  "format": "md"
}'

相关文档

基于 MIT 许可发布