Codex 用例
为你的 AI 应用添加评估
使用 Codex 将预期行为转化为 Promptfoo 评估套件。
让 Codex 检查你的 AI 应用,识别需要评估的行为,并添加一个可运行的 Promptfoo 评估套件。
适用场景
- 已有提示词、模型调用、工具、检索、代理或产品需求,但尚无可重复评估套件的 AI 应用。
- 准备更改模型、提示词、检索或代理,并希望在拉取请求合并前进行回归测试的团队。
- 需要将重复的手动检查转化为已提交的评估用例的质量审查。
目录
为你的 AI 应用添加评估
使用 Codex 将预期行为转化为 Promptfoo 评估套件。
让 Codex 检查你的 AI 应用,识别需要评估的行为,并添加一个可运行的 Promptfoo 评估套件。
适用场景
- 已有提示词、模型调用、工具、检索、代理或产品需求,但尚无可重复评估套件的 AI 应用。
- 准备更改模型、提示词、检索或代理,并希望在拉取请求合并前进行回归测试的团队。
- 需要将重复的手动检查转化为已提交的评估用例的质量审查。
技能与插件
- 包含 `$promptfoo-evals` 和 `$promptfoo-provider-setup` 的插件,用于创建、连接、运行和 QA 评估套件。
| 技能 | 为什么使用它 |
|---|---|
| Promptfoo | 包含 `$promptfoo-evals` 和 `$promptfoo-provider-setup` 的插件,用于创建、连接、运行和 QA 评估套件。 |
起始提示词
简介
在构建 AI 应用或更改现有应用时,你需要确保其行为符合预期。评估(Evals)是一种系统性测试场景集并在回归问题上线前将其捕获的方法。
你可以使用 Promptfoo 对你的 AI 应用运行评估,并使用 Codex 来帮助你创建和维护评估。
如何使用
结合 Promptfoo 插件的 $promptfoo-evals 技能使用 Codex,将单个 AI 应用行为转化为可重复的评估套件。当应用尚未有可用的 Promptfoo 目标时, $promptfoo-provider-setup 可帮助将套件连接到你想要测试的应用路径。
Codex 可以检查应用,提出高信号用例,添加 Promptfoo 配置和测试数据,在本地运行套件,并为你提供一个可持续使用的命令。
当行为具体时,此用例的效果最佳:支持回答质量、检索依据、分类器标签、工具调用、JSON 结构、业务规则,或提示词和模型迁移的置信度。
一个出色的初版应当是可审查的代码和测试数据:一个 promptfooconfig.yaml 或等效配置、一个小的 evals/ 目录、测试用例、调用应用所需的任何目标适配器,以及一个本地命令,例如 npm run evals.
选择要评估的内容
从一个用户可见的承诺开始。避免要求 Codex 一次性评估整个 AI 系统。较小的套件更容易信任、审查和持续运行。
理想的首次评估目标包括:
- Correctness: 分类、提取、摘要、路由或转换。
- Grounding: 应与检索到的文档或引用来源保持一致的回答。
- 工具使用: 选择正确的工具、传递有效参数以及处理工具错误。
- 格式或业务规则: JSON 模式、字段名称、业务规则限制或面向 UI 的文案约定。
- 提示词或模型迁移: 确保新的提示词、模型、系统消息或检索设置不会破坏重要的用例。
从产品需求、错误报告、支持升级或你的团队愿意提交到仓库的经过脱敏处理的示例开始。
要求提供评估计划
Codex 应该在编辑之前进行检查。要求提供一个计划,指出目标路径、测试数据、断言、适配器和命令。这让你有机会在文件添加之前,发现错误的目标或薄弱的测试用例。
在实施之前审查计划。它应该指出 Promptfoo 将调用的应用路径或端点、首批种子用例、断言、Codex 将创建的文件、本地命令以及所需的任何秘密或服务。如果计划测试的是原始模型而不是用户访问的应用路径,请向 Codex 确认这是否是有意为之。
实施、运行和迭代
计划确认无误后,让 Codex 进行实施。首次实施应当是平淡无奇的:配置、用例、测试数据、必要时提供的目标适配器、一个命令,以及该命令已运行的证明。
一个小型的应用支持套件可能如下所示:
evals/
promptfooconfig.yaml
tests/
cases.yaml
providers/
provider.js # only if the built-in provider cannot call the app directly
在更改行为之前运行套件。基线会告诉你应用是否已经在这些用例上失败,断言是否需要调整,或者目标适配器是否正确。当断言过于脆弱或模糊时应进行调整,但要确保真实的产品故障仍然可见。
首次运行后,在应用更改上线之前使用套件进行比较。每当错误、发布需求或产品审查显示出你希望保持稳定的行为时,就添加新的用例。一旦本地命令稳定下来,让 Codex 将其添加到 CI 或你的发布检查清单中。