AutoPatent 是一个面向中国发明专利撰写流程的自动化程序。
当前仓库阶段:CN MVP+ 可运行版本。run 命令已接通 STAGE_00 到 STAGE_15 的执行链路,后半程阶段已升级为“结构化合成 + 可选 LLM 增强”输出。
本仓库目前仅实现中国发明专利自动化流程的 MVP 版本,聚焦交底书与审查意见预案导出链路,不包含海外制度或法律规则引擎。
当前实现重点是“可恢复的阶段化执行框架 + 结构化产物导出 + 关键文档质量门槛”,复杂法律规则引擎与多法域细则仍会在后续迭代补全。
当前 STAGE_02 支持检索 provider 选择:默认 offline,可切换 seed-only / online / plugin-hub。
plugin-hub 为可扩展检索中枢,内置 openalex/arxiv/semantic_scholar/crossref/epo_ops,并支持回退链 r.jina.ai -> crawl4ai。
当前 STAGE_02 支持通过配置文件 search_provider 或环境变量 AUTOPATENT_SEARCH_PROVIDER 覆盖 provider。
当前已支持可选 LLM 生成链路(STAGE_07/10/11/14):未配置 LLM 时自动回退到本地结构化文本。
当前 LLM 生成文本会经过清洗:自动去除“以下为关于…/如需我继续…”等助手式临时话术,输出面向正式文档。
当前图示产物按优先级生成:ASCII(必产)→ Mermaid(必产)→ PNG(可选,依赖 mmdc)。
以下示例为当前可执行用法:
- 交互式运行(默认,Stage 04 需要输入
choose <id>):
python -m autopatent.cli run --topic "示例主题" --output ./artifacts/demo
- 自动批准运行(非交互):
python -m autopatent.cli run --topic "示例主题" --output ./artifacts/demo --auto-approve
--auto-approve 会跳过 Stage 04 命令行选题,直接按预选方向继续执行。若要人工选题,不要带该参数。
- 文档 + 代码目录输入:
python -m autopatent.cli run --input-doc ./seed.md --code-dir ./impl --auto-approve
- 中断后继续执行:
python -m autopatent.cli run --topic "示例主题" --output ./artifacts/demo --resume --auto-approve
--resume 会优先读取阶段 metadata 快照;若快照缺失,会回退到 metadata_latest.json,并尝试从 human_decisions.json 恢复 Stage 04 选择。
执行完成后,CLI 会在终端打印 Stage outputs summary,按 STAGE_00..STAGE_15 展示阶段名称与产物路径,便于快速核对每阶段输出。
run 支持 --config 指定 JSON 配置文件。示例:
{
"checkpoint_root": "./state",
"search_provider": "plugin-hub",
"search": {
"plugin_hub": {
"enabled_plugins": ["openalex", "arxiv", "semantic_scholar", "crossref", "epo_ops"],
"max_workers": 8,
"request_timeout_sec": 20,
"retry": {
"max_attempts": 3,
"backoff_base_sec": 1.0
},
"circuit_breaker": {
"failure_threshold": 3,
"cooldown_sec": 120
},
"enable_fallback": true,
"fallback_chain": ["jina_reader", "crawl4ai"]
}
},
"llm": {
"provider": "openai-compatible",
"base_url": "http://10.20.35.182:13456/v1",
"api_key_env": "OPENAI_API_KEY",
"model": "gpt-5.4",
"timeout_sec": 60,
"max_tokens": 4096,
"temperature": 0.2
}
}search_provider 可选值:
offline:离线伪检索(稳定、无网络依赖)seed-only:仅基于输入主题/seed生成最小证据online:真实联网检索(OpenAlex + arXiv)plugin-hub:插件化检索(OpenAlex/arXiv/S2/Crossref/EPO OPS)+ 回退链(r.jina.ai、crawl4ai)
plugin-hub 额外说明:
enabled_plugins与fallback_chain都是 fail-fast 校验,出现未知项会在启动时报错。epo_ops需要设置环境变量:EPO_OPS_CONSUMER_KEY与EPO_OPS_CONSUMER_SECRET;未设置时会被自动跳过且不阻断流程。
运行方式:
export OPENAI_API_KEY="your-api-key"
python -m autopatent.cli run --config ./config.json --topic "示例主题" --output ./artifacts/demo --auto-approve若希望在 Stage 04 人工选题,去掉 --auto-approve,按提示输入例如 choose 2。
STAGE_06 会始终生成 ASCII 与 Mermaid 图文件;若安装 mmdc,还会继续生成 PNG 图片。
依赖要求:
- Node.js >= 18(当前环境建议 20+)
- npm
@mermaid-js/mermaid-cli(命令名mmdc)
安装方式:
npm install -g @mermaid-js/mermaid-cli验证安装:
mmdc --version快速验证渲染:
cat > /tmp/quick.mmd <<'EOF'
flowchart TD
A[Start] --> B[Done]
EOF
mmdc -i /tmp/quick.mmd -o /tmp/quick.png若使用 root 执行且遇到 Chromium sandbox 错误,可改用:
cat > /tmp/puppeteer-config.json <<'EOF'
{
"args": ["--no-sandbox", "--disable-setuid-sandbox"]
}
EOF
mmdc -p /tmp/puppeteer-config.json -i /tmp/quick.mmd -o /tmp/quick.png说明:AutoPatent 在调用 mmdc 生成 PNG 时,检测到 root 用户会自动附加 --no-sandbox 参数,无需手工干预。
以 --output ./artifacts/demo 为例,当前会产出:
./artifacts/demo/deliverables/disclosure.md./artifacts/demo/deliverables/disclosure.docx(当前为 stub 文本载荷)./artifacts/demo/deliverables/oa_response_playbook.md./artifacts/demo/state/checkpoint_history.json./artifacts/demo/state/metadata_latest.json./artifacts/demo/state/metadata/STAGE_XX.json(各阶段快照)./artifacts/demo/state/human_decisions.json(人工关卡决策记录)./artifacts/demo/artifacts/direction_analysis_report.md./artifacts/demo/artifacts/prior_art_evidence.jsonl./artifacts/demo/artifacts/direction_scores.json./artifacts/demo/artifacts/disclosure_context.json./artifacts/demo/artifacts/disclosure_outline.md./artifacts/demo/artifacts/system_architecture.md./artifacts/demo/artifacts/process_stages.md./artifacts/demo/artifacts/figures_and_tables_plan.md./artifacts/demo/artifacts/architecture_ascii.txt./artifacts/demo/artifacts/process_flow_ascii.txt./artifacts/demo/artifacts/architecture.mmd./artifacts/demo/artifacts/process_flow.mmd./artifacts/demo/artifacts/architecture.png(当环境安装mmdc时)./artifacts/demo/artifacts/process_flow.png(当环境安装mmdc时)./artifacts/demo/deliverables/disclosure_validation_report.md./artifacts/demo/deliverables/system_architecture.md./artifacts/demo/deliverables/process_stages.md./artifacts/demo/deliverables/figures_and_tables_plan.md./artifacts/demo/deliverables/architecture_ascii.txt./artifacts/demo/deliverables/process_flow_ascii.txt./artifacts/demo/deliverables/architecture.mmd./artifacts/demo/deliverables/process_flow.mmd./artifacts/demo/final_package/./artifacts/demo/artifacts/prior_art_queries.json./artifacts/demo/artifacts/search_meta.json说明:当search_provider=plugin-hub时,该文件会额外包含plugins/circuit_breaker/fallback_sources/errors_sample统计字段。./artifacts/demo/artifacts/input_doc_digest.md(当传入--input-doc时)./artifacts/demo/artifacts/code_inventory.json(当传入--code-dir时)./artifacts/demo/stage_outputs/STAGE_XX/manifest.json(每阶段输出清单)./artifacts/demo/stage_outputs/STAGE_XX/files/(该阶段新增或变更文件快照)
当命令行未显式提供 --template 参数时,CLI 会隐式使用 cn_invention_default 模板继续执行,不会中断流程或报错。
可通过 --template sansec_disclosure_v1 启用 Sansec 交底书模板:
OUT_DIR="$(mktemp -d /tmp/autopatent-sansec-smoke.XXXXXX)"
python -m autopatent.cli run \
--topic "抗量子SSL和证书" \
--template sansec_disclosure_v1 \
--output "$OUT_DIR" \
--auto-approve作用范围说明:
sansec_disclosure_v1仅影响 disclosure 产物生成(如disclosure.md/disclosure.docx的内容组织)。- 不影响
spec_draft与claims_draft的生成逻辑或输出语义。
模板语义说明:
- 交底书正文按“技术交底书主体”结构组织。
- 在交底书中追加“附录A 检索报告要点”(检索报告附录A)。
验收建议(smoke):
- 命令返回码应为
0(exit code = 0)。 - 检查
"$OUT_DIR"/artifacts/disclosure.md文件存在,且包含标题文本“附录A 检索报告要点”。 - 检查
"$OUT_DIR"/deliverables/disclosure.md文件存在,且包含标题文本“附录A 检索报告要点”。