SuperAPI AI 工具集

llm-testing

测试与质量

查看项目

更新于 10-16 04:30

技能介绍

用途:为基于 LLM 的应用提供测试模式,帮助在 CI 中实现确定性测试,避免依赖真实 LLM API。

主要能力:

  1. 模拟 LLM 响应:用 unittest.mock 的 AsyncMock 与 patch 构造确定性测试夹具,例如 patch("app.core.model_factory.get_model", return_value=mock_llm)。
  2. DeepEval 质量测试:使用 LLMTestCase 与 AnswerRelevancyMetric、FaithfulnessMetric 等指标,通过 assert_test(test_case, metrics) 断言。
  3. 超时测试:用 pytest.mark.asyncio 与 asyncio.timeout 验证异步 LLM 调用超时行为。
  4. 结构化输出校验:验证 JSON schema 合规与输出结构。
  5. 黄金数据集测试:与参考输出比较,做回归测试。
  6. VCR 录制:记录并回放 LLM API 响应,用于集成测试。

质量指标参考阈值:Answer Relevancy ≥ 0.7;Faithfulness ≥ 0.8;Hallucination ≤ 0.3;Context Precision ≥ 0.7。

使用方式:单元测试中始终模拟 LLM;集成测试使用 VCR.py,如 @pytest.mark.vcr();超时测试建议使用小于 1 秒的超时;质量指标建议使用 3 至 5 个维度。

限制与禁止事项:禁止在 CI 中测试真实 LLM API;禁止使用随机种子导致非确定性;禁止跳过超时处理。

配套资源:references/deepeval-ragas-api.md、examples/test-patterns.md、checklists/llm-test-checklist.md、scripts/llm-test-template.py。相关技能包括 vcr-http-recording、llm-evaluation、unit-testing。