ycmp-idp 合规审核
调用 ycmp-idp 文本审核服务,对文档或文本做合规审核。
运行环境
技能目录里不带虚拟环境。第一次真正执行 scripts/compliance_api.py 之前,如果技能根目录没有 .venv,再创建它并把依赖装进去。不要提前创建,也不要对本机 Python 执行 pip install。
在技能根目录执行:
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
macOS/Linux 把第二行换成 .venv/bin/python -m pip install -r requirements.txt。
系统 Python 只用来执行 python -m venv。之后的审核命令都用 .venv\Scripts\python.exe(Windows)或 .venv/bin/python(macOS/Linux)。.venv 已存在时跳过创建,直接运行。
不要自己拼 HTTP 请求,也不要在脚本或对话里写死地址。
地址、认证头、Token、任务号字段和超时都在技能根目录的 config.json。每项上面有注释。submit_url 和 stream_url 是两条完整链接,换环境只改这个文件。
安全边界
-
只请求
config.json里的submit_url和stream_url -
Token 只放在
config.json的token,由脚本放进auth_header。不要向用户索要密码,也不要让用户把 Token 贴到对话里 -
不访问
~/.ssh、~/.aws
Step 0:检查配置
先按「运行环境」确认 .venv 已在本次使用时创建,再执行:
.venv\Scripts\python.exe scripts/compliance_api.py --check
macOS/Linux 把解释器换成 .venv/bin/python。下面的命令同样处理。
-
输出
Token 有效:进入 Step 1 -
输出缺少配置、Token 无效或网络错误:请用户改
config.json里的submit_url、stream_url和token,改完再执行--check
Step 1:确认审核内容
用户已经给出文本或文件路径时,直接进入 Step 2。否则只问这一句:
> 请提供要审核的内容:文件路径(txt、md、docx;pdf 需已安装 pypdf),或直接粘贴文本。知道报告类型编码时可以一并告诉我。
报告类型不是必填。只有用户给出编码时才传 --report-type / --report-subtype。
粘贴的长文本不要塞进命令行。先写成 UTF-8 临时文件,再用 --file。
Step 2:提交并等待结果
.venv\Scripts\python.exe scripts/compliance_api.py --file "文件路径"
.venv\Scripts\python.exe scripts/compliance_api.py --file "文件路径" --report-type 编码
.venv\Scripts\python.exe scripts/compliance_api.py --text "短文本"
.venv\Scripts\python.exe scripts/compliance_api.py --task-id task_xxx
先告诉用户:已提交,正在审核。脚本会打印 task_id 和进度,结束后打印结果。流中断时用打印出的 task_id 执行 --task-id 再拉一次,不要重新提交。
Step 3:展示结果
把脚本输出原样给用户,结构如下:
审核对象:xxx.docx
任务:task_...
问题总计:N 个
--- 检查模块 ---
[完成] 敏感词
[完成] 文本纠错
[完成] 格式检查
[完成] 规则检查
[跳过] 上下文一致性
[未启用] 跨报告一致性
[未启用] 要素抽取
--- 各模块问题 ---
[格式检查] 2 处
[文本纠错] 1 处
--- 问题详情 ---
[问题 1] 格式检查 / TY040
问题片段:"..."
所在原文:"..."
原因:...
修改建议:...
[问题 2] 文本纠错 / typo
问题片段:"···"
所在原文:"···"
原因:···
修改建议:···
输出结构严格按照如上模板格式,展示后问是否还要审核其他内容。
错误处理
| 情况 | 处理 |
|---|---|
| Token 无效 | 回到 Step 0 |
| 文件不存在 | 请用户确认路径 |
| 旧版 .doc | 请另存为 .docx 或粘贴文本 |
| PDF 缺少 pypdf | 在虚拟环境执行 .venv\Scripts\python.exe -m pip install pypdf,或改为粘贴文本 |
| 提交失败 | 展示接口返回的 msg,问是否重试 |
| 超时或流中断 | 用已打印的 task_id 执行 --task-id |
接口
脚本按 config.json 走两条完整链接,不要再拼地址:
-
POST submit_url,JSON 体至少包含text,从task_id_field取任务号 -
GET stream_url,把其中的{task_id}换成任务号,读 SSE,直到complete_event
依赖只装在 .venv 里。PDF 另在虚拟环境安装 pypdf。