首页
/ DeepSeek 模型评测实战:用 promptfoo 对 DeepSeek-R1 与 OpenAI o1 做并排测试与质量评估

DeepSeek 模型评测实战:用 promptfoo 对 DeepSeek-R1 与 OpenAI o1 做并排测试与质量评估

2026-09-08 10:58:03作者:田桥桑Industrious

promptfoo 是一个开源 LLM 输出测试与评估框架,在本仓库中位于 awesome-deepseek-integration 项目列表 的 Others 分类下,定位是"测试和评估 LLM prompt(含 DeepSeek 模型),对比不同 LLM 供应商、捕获回归并评估回复"。本文基于 docs/promptfoo/README.md中文版 展开,讲解如何将 DeepSeek 接入 promptfoo,通过配置文件驱动多模型并排评测、质量断言与成本控制,并运行可视化报告,最终你将在本地复现出"DeepSeek-R1 vs OpenAI o1"这类可量化的模型对比工作流。

promptfoo 能做什么:面向 DeepSeek 的评测定位

promptfoo 的核心价值是让模型选择从"凭感觉"变成"跑评测、看数据"。接入 DeepSeek 后,它可以用于以下三类典型任务(对应原文档列出的能力):

  • 不同模型并排比较(side-by-side comparisons):在同一个 prompt 与同一组测试用例下,同时请求 DeepSeek 与 OpenAI o1、GPT-4o、Claude 3.5、Llama 3.3、Gemini 等多家模型,用一致的断言与评分标准衡量输出差异;
  • 检查输出质量与一致性:对同一模型反复请求同一问题,或用规则断言、LLM 评委校验回复内容,捕获 prompt 修改后引入的回归(regression);
  • 生成测试报告eval 结束后自动产出结构化结果,支持 Web 可视化与分享,便于向团队展示对比结论。

此外原文档还指出,promptfoo 不只做质量评测,也支持对 LLM 及其应用进行安全漏洞测试——例如用它构造恶意或越狱类输入,验证 DeepSeek 应用在异常输入下的行为边界。

安装与环境准备

promptfoo 通过 Node.js 生态分发,也支持 Homebrew,二选一即可:

npm install -g promptfoo
# 或者使用 brew
brew install promptfoo

安装后可执行 promptfoo --version 验证。接下来配置 API 密钥。promptfoo 从进程环境变量读取密钥,DeepSeek 对应 DEEPSEEK_API_KEY

export DEEPSEEK_API_KEY=your_api_key
# 根据需要添加其他 API 密钥

若同时对比 OpenAI o1 等模型,还需导出对应供应商的密钥,例如 OPENAI_API_KEY(按 promptfoo 对各 provider 的通用约定,OpenAI 密钥变量名为 OPENAI_API_KEY);如果用到大模型做评委(如 llm-rubric 断言),也可复用上述密钥,避免额外配置。密钥仅存于环境变量,不写入配置文件,方便在 CI 中通过 Secret 注入。

快速开始:一份最小可用配置

promptfoo 采用"配置文件即测试计划"的模式。在当前目录创建 promptfooconfig.yaml,声明要测的 provider、prompt 模板与测试用例:

providers:
  - deepseek:deepseek-reasoner # DeepSeek-R1
  - openai:o1

prompts:
  - 'Solve this step by step: {{math_problem}}'

tests:
  - vars:
      math_problem: 'What is the derivative of x^3 + 2x with respect to x?'
    assert:
      - type: contains
        value: '3x^2' # Check for correct answer
      - type: llm-rubric
        value: 'Response shows clear steps'
      - type: cost
        threshold: 0.05 # Maximum cost per request

逐段拆解这份配置,它同时定义了"测谁、怎么问、怎么判"三层内容:

配置块 作用 本例含义
providers 被测模型清单,promptfoo 会对每个 provider 跑完全部用例 deepseek:deepseek-reasoner(DeepSeek-R1)与 openai:o1 并排对比
prompts 注入测试的 prompt 模板,{{变量}} 占位符由用例中的 vars 填充 要求"逐步求解"的数学题模板
tests[].vars 单条测试的变量输入 一道微积分求导题:对 x³+2x 求导
tests[].assert 判定规则,全部通过该条测试才算 pass 见下方断言说明

需要说明的是,原文档注释将 deepseek-reasoner 标为 DeepSeek-R1(DeepSeek 的推理增强模型),实际使用时应以你 API 账户可用的模型 ID 为准,promptfoo 的 DeepSeek provider 也支持在配置中指定 deepseek:deepseek-chat 等其它模型名。

配置中的三条断言代表了三类互补的评测维度:

  • contains(规则断言):直接检查模型输出文本是否包含期望子串 3x^2,用于验证"答得对不对"这类确定性要求;
  • llm-rubric(LLM 评委):让一个大模型按给定评语标准("回答需展示清晰的步骤")对输出打分,用于评估"逻辑与过程是否清晰"这类难以用字符串匹配的软性质量;
  • cost(成本断言):设定单次请求的成本上限阈值 threshold: 0.05,超出即判失败,把"花多少钱"也变成可回归的验收指标——这对需要在推理模型(reasoner)与通用模型之间做性价比权衡的场景非常实用。

运行评测与查看结果

测试计划就绪后,一条命令执行全部评测:

promptfoo eval

eval 会逐条加载测试用例,分别向两个 provider 发起请求,运行断言并汇总通过/失败情况,最终在终端输出摘要,同时把详细结果写入本地(默认输出至 promptfoo-output 目录,供 view 读取)。

如需在浏览器中交互式查看结果,运行:

promptfoo view

view 会启动本地 Web 服务,以表格并排展示每个 provider 在每条用例上的输出、断言结果与成本明细,是进行"DeepSeek-R1 vs o1 谁更稳、更省"这类人工研判的最佳入口,也方便把结果导出为报告分发给团队。

扩展实战思路:对比、回归与评测治理

基于上文的配置骨架,把 promptfoo 用于 DeepSeek 应用可以进一步演化出三种实战形态:

1. 多模型横向对比。在 providers 中追加 openai:gpt-4oanthropic:messages:claude-3-5-sonnetgoogle:gemini-... 等条目即可在同一批用例上横向扩展对比阵容(对应原文档提到的与 GPT-4o、Claude 3.5、Llama 3.3、Gemini 等模型的对比场景)。此时建议配合 cost 断言同时考察质量与成本。

2. Prompt 回归测试。把线上 prompt 固化为一组断言用例后,任何 prompt 措辞调整都先跑 promptfoo eval,确保关键能力点(如 contains 检查、llm-rubric 质量标准)不因改动而回退。

3. 评测进 CI。配置文件与密钥环境变量天然可迁移到 CI:DEEPSEEK_API_KEY 通过 CI Secret 注入,promptfoo eval 作为流水线步骤,任一断言失败即中断构建,实现模型输出质量的持续回归守护。

原文档还提到 promptfoo 可对 LLM 与 LLM 应用执行安全类测试,可在上述配置之外按需补充针对提示注入、越狱等方向的用例集(详见其官方文档的 security 相关说明)。

参考示例与进一步阅读

  • 示例项目:promptfoo 官方仓库提供了 r1 与 o1 在 MMLU(大规模多任务语言理解基准)上的对比示例,可参考其用例组织方式扩展自己的数据集与断言;
  • 仓库内文档:本仓库 docs/promptfoo/README.md 为英文原版,docs/promptfoo/README_cn.md 为中文版,二者可作为配置速查;
  • 项目定位:promptfoo 在 项目总列表 中被归入 Others 分类,与 Langfuse、Opik 等观测/评测类工具并列,属于 DeepSeek 生态中面向"测试与评测"环节的开源方案。

实践要点小结:接入 promptfoo 评测 DeepSeek 只需三步——安装 CLI、导出 DEEPSEEK_API_KEY、编写声明式 promptfooconfig.yaml;随后以 promptfoo eval 出数据、promptfoo view 看对比。将 contains(正确性)、llm-rubric(质量)、cost(成本)三类断言组合使用,即可把 DeepSeek-R1 与其它主流模型的对比从主观体验转化为可重复、可回归、可汇报的工程化评测流程。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.76 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
858
1.35 K
docsdocs
暂无描述
Markdown
899
5.82 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
923
1.85 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.83 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
532
596
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.03 K
524
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.37 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
393