feat(M4): 测试用例与性能基线 - 37个功能测试用例、安全测试、性能指标
This commit is contained in:
@@ -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_
|
||||
Reference in New Issue
Block a user