跳到主要内容
返回使用场景

Codex 使用场景

为你的 AI 应用添加 evals

使用 Codex 将预期行为转化为 Promptfoo eval 套件。

中级1 小时评估质量

概览

让 Codex 检查你的 AI 应用,识别你想要评估的行为,并添加一个可运行的 Promptfoo eval 套件。

在更改行为之前添加 Evals

使用 $promptfoo-evals 为这个 AI 应用添加一个 Promptfoo eval 套件。如果当前还没有可用的 Promptfoo provider 或 target adapter,请先使用 $promptfoo-provider-setup。

要评估的行为:[支持回答质量 / tool-call 正确性 / 检索依据性 / 业务规则 / agent 任务完成情况]

编辑前:
- 检查用户实际会经过的应用路径,以及任何现有的 evals 或测试。
- 提出最小但有用的 eval 方案:target adapter、初始用例、断言、文件、命令,以及所需的环境变量或本地服务。
- 在基线 eval 建立并运行之前,不要更改生产提示词、模型设置或应用行为。

要求:
- 尽可能覆盖用户实际会经过的应用路径,而不只是原始模型提示词。
- 保持夹具数据不包含密钥、客户数据和敏感个人数据。
- 添加本地 eval 命令,例如 `npm run evals`,或记录准确的运行命令。

最后请给出:
- 修改的文件
- 已运行的 eval 命令
- 通过和失败的用例
- 建议接下来添加的 evals

建议推理强度:

简介

当你在构建一个 AI 应用,或对现有应用进行更改时,你会希望确保它的行为符合预期。Evals 是一种系统化测试一组场景、并在发布前发现回归问题的方法。

你可以使用 Promptfoo 在你的 AI 应用上运行 evals,并借助 Codex 帮助你创建和维护这些 evals。

如何使用

将 Codex 与 Promptfoo 插件中的 $promptfoo-evals skill 配合使用,把某个 AI 应用行为转化为可重复执行的 eval 套件。当应用还没有可用的 Promptfoo target 时,$promptfoo-provider-setup 可以帮助你把套件连接到你想测试的应用路径。

Codex 可以检查应用、提出高价值用例、添加 Promptfoo 配置和测试数据、在本地运行套件,并给你一个可持续使用的命令。

这个用例最适合行为足够具体的场景:支持回答质量、检索依据性、分类器标签、工具调用、JSON 结构、业务规则,或提示词与模型迁移的信心验证。

一个强有力的首版结果应当是可审查的代码和测试数据:promptfooconfig.yaml 或等效配置、一个小型 evals/ 目录、测试用例、调用应用所需的 target adapter,以及一个本地命令,例如 npm run evals

选择要评估的内容

从一个用户可感知的承诺开始。不要让 Codex 一次性评估整个 AI 系统。更小的套件更容易建立信任、审查并持续运行。

好的首批目标包括:

  • 正确性: 分类、抽取、摘要、路由或转换。
  • 依据性: 回答应始终与检索到的文档或引用来源保持一致。
  • 工具使用: 选择正确工具、传递有效参数,以及处理工具错误。
  • 格式或业务规则: JSON schema、字段名、业务规则限制,或面向 UI 的文案契约。
  • 提示词或模型迁移: 确保新的提示词、模型、system message 或检索设置不会破坏重要用例。

可以从产品需求、缺陷报告、支持升级问题,或你的团队愿意安全提交到仓库中的脱敏示例入手。

请求一个 eval 方案

Codex 应当先检查再编辑。请求一个明确列出目标路径、夹具数据、断言、adapter 和命令的方案。这样在添加文件之前,你就有机会发现目标选错了,或者测试用例太弱。

在实现前审查这个方案。它应该说明 Promptfoo 将调用的应用路径或端点、第一批初始用例、断言、Codex 将创建的文件、本地命令,以及任何必需的密钥或服务。如果这个方案测试的是原始模型,而不是用户实际会经过的应用路径,请询问 Codex 这是否是有意为之。

实现、运行和迭代

一旦方案正确,就让 Codex 去实现。第一次实现应当尽量朴素:配置、用例、夹具数据、必要时的 target adapter、命令,以及命令已运行的证明。

一个由应用驱动的小型套件可能如下所示:

evals/
  promptfooconfig.yaml
  tests/
    cases.yaml
  providers/
    provider.js  # only if the built-in provider cannot call the app directly

在更改行为之前先运行套件。这个基线会告诉你:应用是否已经无法通过这些用例、断言是否需要调整,或者 target adapter 是否有误。当断言过于脆弱或模糊时,要进行调整,但也要让真实的产品失败保持可见。

第一次运行之后,在应用发布前使用这个套件比较变更效果。每当 bug、上线要求或产品评审暴露出某些你希望保持稳定的行为时,就添加新的用例。一旦本地命令稳定下来,就让 Codex 把它加入 CI 或你的发布检查清单中。