# PLM 接口测试脚本使用说明 脚本 `scripts/test_plm_risk_report.py` 使用对方 2026-10-09 调用说明中第 3 节的完整参数。 样例保存在 `docs/examples/plm-risk-request-20261009.json`,品类保持“护发素”,不改为洗发水。 ## 原报告与幂等验证 在后端项目根目录执行: ```powershell .\.venv\Scripts\python.exe scripts/test_plm_risk_report.py --local-config ``` 默认访问 `http://192.168.9.28:18474/api/v1/integrations/risk-assessments/report`。 `--local-config` 表示从本项目 `.env` 读取 `dieya-plm` 对应密钥,密钥和签名不写入输出。 在外部环境可以改为设置 `RISK_CLIENT_SECRET` 或 `RISK_INTEGRATION_CLIENT_SECRET`,不传 `--local-config`。 脚本首先查询原请求。不存在时才提交原参数生成,失败记录允许使用原快照重新提交。 取得报告后,重复 POST 同一业务参数验证幂等,再 GET 查询验证正文及元数据一致。 HTTP 202、429 会遵守 `Retry-After` 等待;完整测试总期限 180 秒,单次连接最多 10 秒、请求最多 130 秒。 POST 网络异常后先 GET 查询,避免直接换编号重复生成。其他错误会保留诊断与快照并以退出码 1 结束。 ## 新生成一份报告 ```powershell .\.venv\Scripts\python.exe scripts/test_plm_risk_report.py --local-config --new-request ``` 这会生成唯一的 `PLM-TEST-...` 请求编号。其他业务字段(包括截止日期)保持原样,便于与原报告比较。 如需要不同产品、日期或操作人,准备新的 JSON 文件,再通过 `--body-file` 指定。 可指定访问地址和输出目录: ```powershell .\.venv\Scripts\python.exe scripts/test_plm_risk_report.py --local-config --url http://127.0.0.1:18474/api/v1/integrations/risk-assessments/report --output-dir .runtime-uploads/integration-tests/my-run ``` ## 输出文件 默认保存在 `.runtime-uploads/integration-tests/<北京时间及随机后缀>/`,该目录已被 Git 忽略。 | 文件 | 内容 | |---|---| | `request.json` | 实际发送的紧凑 UTF-8 请求快照,用于恢复 | | `report.md` | 接口实际返回的完整 Markdown,不进行重写 | | `response.json` | 状态、耗时、安全响应头、报告摘要、测试检查项或失败诊断 | | `summary.md` | 成功时的分数、等级、维度数量及报告链接 | 响应头校验包括请求编号、评估 ID、模型版本、0~100 安全分、合法风险等级;还会核对七个维度行。 HTTP 客户端只解压一次,报告以 UTF-8 校验,解压后的上限为 1MiB。 当前“护发素”不匹配八类品类评分规则,报告会显示无法归类和品类维度默认 50 分。 HTTP 200 表示调用成功,不代表所有维度具备真实数据。新旧报告的评分可比较,AI 建议文本可能不同。