feat(M4): 测试用例与性能基线 - 37个功能测试用例、安全测试、性能指标

This commit is contained in:
xieke
2026-06-06 06:30:25 +08:00
parent 8217d2d8e8
commit cf75b72bce
3 changed files with 255 additions and 2 deletions
+128
View File
@@ -0,0 +1,128 @@
# 性能基线指标
> 西安云美电子科技有限公司 - 企业知识库
> 版本:v1.0 | 创建时间:2026-06-06
---
## 1. 测试环境
| 项目 | 规格 |
|------|------|
| 服务器 | 8 核 CPU / 16 GB RAM / 100 GB SSD |
| 部署方式 | Docker Compose |
| Dify 版本 | 最新社区版(v1.x) |
| 模型 | DeepSeek-Chat |
| 知识库文档数 | 100-500 篇(初期) |
| 知识库分段方式 | 自动分段,500 tokens/段 |
---
## 2. 响应时间基线
| 场景 | 指标 | 目标值 | 可接受值 |
|------|------|:------:|:--------:|
| 首次响应(首 token) | TTFB | ≤ 3s | ≤ 5s |
| 简单问题完整回答 | 总耗时 | ≤ 8s | ≤ 15s |
| 复杂问题(跨分类检索) | 总耗时 | ≤ 12s | ≤ 20s |
| 多轮对话第 N 轮(N≤10) | 总耗时 | ≤ 10s | ≤ 15s |
| 流式输出首字延迟 | TTFB | ≤ 2s | ≤ 4s |
| 知识库索引构建(单文档) | 索引耗时 | ≤ 10s | ≤ 30s |
| 知识库索引构建(批量100篇) | 索引耗时 | ≤ 5min | ≤ 10min |
---
## 3. 准确率基线
| 场景 | 指标 | 目标值 | 可接受值 |
|------|------|:------:|:--------:|
| P0 核心问题回答准确率 | Top-1 准确率 | ≥ 95% | ≥ 85% |
| 制度流程类问题 | 回答准确率 | ≥ 98% | ≥ 90% |
| 产品技术类问题 | 回答准确率 | ≥ 95% | ≥ 85% |
| FAQ 类问题 | 回答准确率 | ≥ 98% | ≥ 90% |
| 不相关问题拒绝率 | 拒绝准确率 | ≥ 95% | ≥ 85% |
| 来源标注准确率 | 标注准确率 | ≥ 90% | ≥ 80% |
| 多轮对话上下文保持率 | 一致性 | ≥ 90% | ≥ 80% |
---
## 4. 并发与容量基线
| 场景 | 指标 | 目标值 | 可接受值 |
|------|------|:------:|:--------:|
| 并发用户数 | 最大并发 | ≥ 20 | ≥ 10 |
| 并发响应时间(10用户) | P95 延迟 | ≤ 10s | ≤ 20s |
| 并发响应时间(20用户) | P95 延迟 | ≤ 15s | ≤ 30s |
| 单知识库文档上限 | 最大文档数 | 1000 篇 | 500 篇 |
| 单知识库分段上限 | 最大分段数 | 50000 段 | 20000 段 |
| 单次检索返回 | Top-K 相关文档 | 3-5 段 | 3-10 段 |
---
## 5. 可用性基线
| 场景 | 指标 | 目标值 |
|------|------|:------:|
| 服务可用性 | Uptime | ≥ 99% |
| 计划外停机 | 月均 | ≤ 1 次 |
| 故障恢复时间 | MTTR | ≤ 30 min |
| 数据库备份频率 | RPO | 每日 |
| 数据恢复测试 | 频率 | 季度 |
---
## 6. 模型资源消耗基线
| 场景 | 指标 | 估算值 |
|------|------|--------|
| 单次问答(简单) | DeepSeek Token 消耗 | ~500-1000 tokens |
| 单次问答(复杂) | DeepSeek Token 消耗 | ~1500-3000 tokens |
| 每日 50 次问答 | 日 Token 消耗 | ~50K-100K tokens |
| 每月预估 | 月 Token 消耗 | ~1.5M-3M tokens |
---
## 7. 基线测量方法
### 7.1 响应时间测量
```bash
# 使用 curl 测量 TTFB
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
-X POST http://<dify-host>/v1/chat-messages \
-H "Authorization: Bearer <api-key>" \
-H "Content-Type: application/json" \
-d '{"query":"差旅报销标准是什么?","inputs":{},"response_mode":"blocking","user":"test-user"}'
```
### 7.2 准确率测量
使用 `tests/test-cases.md` 中的 37 个测试用例,逐条执行并记录结果。
计算公式:
- Top-1 准确率 = 正确回答数 / 总测试问题数 × 100%
- 拒绝准确率 = 正确拒绝无关问题数 / 总无关问题数 × 100%
### 7.3 并发测量
```bash
# 使用 ab(Apache Benchmark)模拟并发
ab -n 20 -c 10 -p request.json -T application/json \
-H "Authorization: Bearer <api-key>" \
http://<dify-host>/v1/chat-messages
```
---
## 8. 性能调优建议
| 问题方向 | 调优手段 |
|----------|---------|
| 响应慢 | 优化知识库分段大小、调整 Top-K 参数、升级服务器 |
| 准确率低 | 优化分段策略、增加元数据标签、调整检索权重 |
| 并发不足 | 扩展 Worker 实例数、增加 Redis 内存、升级 CPU |
| Token 消耗高 | 优化 System Prompt 长度、调整上下文窗口、启用缓存 |
---
_最后更新: 2026-06-06_