Skill-driven document review CLI
Project description
DocCheck CLI
Skill 驱动的合同审核 CLI。用户提供合同文件或目录后,DocCheck 会自动完成文档解析、合同画像、规则适用性判断、规则审核和结果输出。
当前能力
- 支持单文件和目录批量审核。
- 每次审核创建独立 Run Workspace,隔离输入文件、解析产物、任务状态和审核结果。
- 内置 5 条已发布审核 Skill,首次配置后可直接审核合同。
- 支持 OpenAI-compatible 模型网关,主 Agent 和规则 Worker 可配置不同模型。
- 支持本地轻量解析、jyppx 本地高精度解析、MinerU/Doc2X/PDF2X 等远程商业解析服务。
- 支持 Excel 审核规则导入,并由主 Agent 深度分析生成可执行 Skill。
- 支持 SQLite Taskboard、失败重试、断点恢复、Run 重命名和 JSON 报告。
- 支持交互式 Shell,提供
/config、/check、/resume、/rename等命令。
安装
推荐从 PyPI 安装:
pipx install doccheck-cli
更新到最新版:
pipx install --force doccheck-cli
安装指定版本:
pipx install "doccheck-cli==0.1.1"
开发版或预发布代码可从 GitHub 安装:
pipx install git+https://github.com/Mingyu-Xu-98/doccheck-cli.git
本地开发安装:
git clone https://github.com/Mingyu-Xu-98/doccheck-cli.git
cd doccheck-cli
pipx install -e .
安装后验证:
doccheck --version
doccheck onboard --help
快速开始
第一次使用需要配置两类服务:
- 模型服务:主 Agent 和规则审核 Worker 使用。
- 解析服务:PDF/DOCX 等合同文件解析使用。
交互式配置:
doccheck onboard
检查配置:
doccheck doctor
开始审核:
doccheck check "/路径/合同或合同目录"
把本次审核输出到指定目录:
doccheck check "/路径/合同或合同目录" -o "/路径/审核输出"
查看历史任务:
doccheck runs
doccheck status <run-id>
审核结果位于:
$DOCCHECK_HOME/workspaces/<run-id>/results/result.json
如果使用 doccheck check -o "/路径/审核输出",本次 Run 会写到:
/路径/审核输出/<run-id>/results/result.json
/路径/审核输出/<run-id>/reports/documents/*.html
如果未设置 DOCCHECK_HOME,默认使用:
~/.doccheck
非交互配置示例
使用阿里百炼模型
以百炼中国北京区域为例:
doccheck onboard \
--base-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
--api-key "$DASHSCOPE_API_KEY" \
--deepseek-model qwen-plus \
--qwen-model qwen-plus \
--parser-provider mineru_agent
说明:当前 CLI 参数名仍保留 --deepseek-model,它实际表示“主 Agent 模型”。如果不用 DeepSeek,也可以填写百炼、LiteLLM 或其他 OpenAI-compatible 网关中的模型名。
使用自定义 LiteLLM 网关
doccheck onboard \
--base-url https://your-litellm.example/v1 \
--api-key "$MODEL_API_KEY" \
--deepseek-model deepseek-v4-flash \
--qwen-model qwen-plus \
--parser-provider local_docx
使用 MinerU v4 解析
doccheck onboard \
--base-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
--api-key "$DASHSCOPE_API_KEY" \
--deepseek-model qwen-plus \
--qwen-model qwen-plus \
--parser-provider mineru_v4 \
--parser-api-key "$MINERU_TOKEN"
使用 Doc2X/PDF2X 解析
doccheck onboard \
--base-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
--api-key "$DASHSCOPE_API_KEY" \
--deepseek-model qwen-plus \
--qwen-model qwen-plus \
--parser-provider doc2x \
--parser-api-key "$DOC2X_API_KEY"
模型与 Key
模型 API Key 和解析服务 API Key 分开保存:
模型 Key: $DOCCHECK_HOME/credentials/model_api_key
解析 Key: $DOCCHECK_HOME/credentials/parser_api_key
也可以使用环境变量:
export DEEPSEEK_API_KEY="模型服务 Key"
export QWEN_API_KEY="模型服务 Key"
export DOCCHECK_PARSER_API_KEY="解析服务 Key"
配置文件路径:
$DOCCHECK_HOME/config.json
关键配置项:
models.orchestrator:主 Agent,用于合同画像、规则分析和必要的复核。models.rule_worker:规则审核 Worker,用于按 Skill 判断每条规则。parser.provider:文档解析器。runtime.rule_worker_concurrency:规则审核并发数。runtime.max_rules_per_document:单文档同时执行的规则数。
解析服务
| Provider | 是否需要安装额外工具 | 是否需要解析 Key | 适用场景 |
|---|---|---|---|
local_docx |
否 | 否 | 轻量解析 DOCX/Markdown/TXT,不提供 PDF 页码和坐标 |
mineru_agent |
否 | 否 | MinerU 轻量解析,适合快速试用,有文件和访问限制 |
mineru_v4 |
否 | 是 | MinerU 商业解析,适合正式 PDF/DOCX 解析 |
doc2x / pdf2x |
否 | 是 | Doc2X/PDF2X 商业解析,可获得页级 Markdown |
jyppx_tool |
是 | 否 | 本地高精度解析,适合私有化部署和页码/坐标定位 |
pdf_v1 |
否 | 视服务而定 | 已有 V1 解析服务兼容入口 |
执行合同审核时不需要先手工解析。doccheck check 会根据当前 parser.provider 自动调用解析器。
只想测试解析:
doccheck parse "/路径/合同.pdf" -o parsed-output
注意:doccheck parse -o 只控制解析产物目录;doccheck check -o 控制完整审核 Run 的输出目录。
jyppx 本地解析
jyppx_tool 是可选能力,适合已经部署 jyppx/PPX 的本地或私有化环境。公开 README 不应写入任何个人机器路径,实际路径应由安装用户在 onboarding 时填写:
doccheck onboard \
--parser-provider jyppx_tool \
--jyppx-python "/path/to/jyppx/.venv/bin/python" \
--jyppx-runner "/path/to/jyppx/projects/<project>/deliverable/parser.py"
也可以通过环境变量提供路径:
export JYPPX_PYTHON="/path/to/jyppx/.venv/bin/python"
export JYPPX_RUNNER="/path/to/jyppx/projects/<project>/deliverable/parser.py"
doccheck onboard --parser-provider jyppx_tool
jyppx_tool 会把 jyppx deliverable 作为隔离的本地解析工具调用,并消费其输出的 doc.json、tree.json 和 chunks。审核结果可以保留页码、坐标、章节路径和对象类型。
DOCX 会优先通过 jyppx 和 LibreOffice 转换为 PDF,以获得页码和坐标定位。如果 LibreOffice 不可用,CLI 会降级为 DOCX 结构解析并继续审核,不会中断任务。
macOS 安装 LibreOffice:
HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask libreoffice
内置 Skill 与扩展规则
第一版安装后已经内置 5 条 published 正式 Skill。普通用户只需要配置模型和解析服务,然后上传合同即可审核。
后续要扩展规则库时,可以从 Excel 导入:
doccheck skills import-excel 审核规则.xlsx
doccheck skills analyze --rule 103
doccheck skills validate
doccheck skills publish
Skill 生命周期:
pending_deepseek -> deepseek_analyzed -> published
正式审核默认只使用 published Skill。重新分析规则会生成新的草稿版本,不会覆盖已经发布的版本快照。
常用命令
doccheck onboard
doccheck doctor
doccheck doctor --list-models
doccheck doctor --auto-qwen
doccheck check "/路径/合同或合同目录"
doccheck parse "/路径/合同.pdf" -o parsed-output
doccheck runs
doccheck status <run-id>
doccheck retry <run-id>
doccheck retry <run-id> --rule 57
doccheck resume <run-id>
doccheck rename <run-id> "项目名称"
doccheck config show
doccheck shell
Shell 内命令:
/check "/路径/合同或合同目录" --name "批量合同审核"
/parse "/路径/合同.pdf" -o parsed-output
/runs
/status <run-id>
/retry <run-id> --rule 57
/resume <run-id>
/rename <run-id> "项目名称"
/config
/exit
常见问题
如何更新到最新版?
DocCheck 已发布到 PyPI,正常更新使用:
pipx install --force doccheck-cli
如果要安装 GitHub 上的开发版:
pipx install --force git+https://github.com/Mingyu-Xu-98/doccheck-cli.git
Base URL 只能用某个固定地址吗?
不是。DocCheck 接受任意 OpenAI-compatible 模型网关地址,例如阿里百炼、LiteLLM、自建网关或其他兼容服务。用户需要填写自己的 Base URL、模型名和 API Key。
没有 jyppx 可以用吗?
可以。普通用户可以选择 local_docx、mineru_agent、mineru_v4、doc2x 或 pdf2x。jyppx_tool 只是本地高精度解析的一种可选部署方式。
结论里能定位原文吗?
取决于解析器能力。jyppx_tool、mineru_v4、doc2x/pdf2x 更适合输出页码、章节和原文来源;local_docx 更适合低成本 DOCX 文本审核。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file doccheck_cli-0.1.1.tar.gz.
File metadata
- Download URL: doccheck_cli-0.1.1.tar.gz
- Upload date:
- Size: 71.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86911d0e5d1de511f021cecbda125d40b93b0e9d2708a4329f25aabc36dbef88
|
|
| MD5 |
2030e65ea147f145fe021e89845b80ad
|
|
| BLAKE2b-256 |
501de4873fa38ac4c14bf2bedb038b1d0de9d77fd1b88bf76e046bb655ff0283
|
File details
Details for the file doccheck_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: doccheck_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 84.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f500301a6898bd7ceed61df13052a8b5038f2d68f0cfb11c81f3a7b00072bab4
|
|
| MD5 |
d0f686498001752fd4885de03ac9c766
|
|
| BLAKE2b-256 |
2973d4be43094658ad5793f8dbcc99c93c42d65407396075071ad365b17d810c
|