dieya_risk_prediction_backend/docs/PLM接口测试脚本使用说明.md

54 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 建议文本可能不同。