English
主导航
Codex

Codex 用例

为你的 AI 应用添加评估

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

难度 中级
时间周期 1h

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

适用场景

  • 已有提示词、模型调用、工具、检索、代理或产品需求,但尚无可重复评估套件的 AI 应用。
  • 准备更改模型、提示词、检索或代理,并希望在拉取请求合并前进行回归测试的团队。
  • 需要将重复的手动检查转化为已提交的评估用例的质量审查。

目录

    ← 所有用例

    为你的 AI 应用添加评估

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

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

    中级
    1h

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

    中级
    1h

    适用场景

    • 已有提示词、模型调用、工具、检索、代理或产品需求,但尚无可重复评估套件的 AI 应用。
    • 准备更改模型、提示词、检索或代理,并希望在拉取请求合并前进行回归测试的团队。
    • 需要将重复的手动检查转化为已提交的评估用例的质量审查。

    技能与插件

    • 包含 `$promptfoo-evals` 和 `$promptfoo-provider-setup` 的插件,用于创建、连接、运行和 QA 评估套件。
    技能 为什么使用它
    Promptfoo 包含 `$promptfoo-evals` 和 `$promptfoo-provider-setup` 的插件,用于创建、连接、运行和 QA 评估套件。

    起始提示词

    使用 $promptfoo-evals 为此 AI 应用添加 Promptfoo 评估套件。如果尚未有可用的 Promptfoo 提供者或目标适配器,请先使用 $promptfoo-provider-setup。要评估的行为:[支持回答质量 / 工具调用正确性 / 检索依据 / 业务规则 / 代理任务完成度] 编辑前:- 检查用户访问的应用路径以及任何现有的评估或测试。- 提出最小可用的评估计划:目标适配器、种子用例、断言、文件、命令以及所需的环境变量或本地服务。- 在基线评估存在并运行之前,不要更改生产环境的提示词、模型设置或应用行为。要求:- 尽可能演练用户访问的应用路径,而不仅仅是原始的模型提示词。- 确保测试数据中不包含秘密、客户数据和敏感个人数据。- 添加本地评估命令(如 `npm run evals`)或记录具体的运行命令。结束时提供:- 更改的文件 - 运行的评估命令 - 通过和失败的用例 - 建议下一步添加的评估
    使用 $promptfoo-evals 为此 AI 应用添加 Promptfoo 评估套件。如果尚未有可用的 Promptfoo 提供者或目标适配器,请先使用 $promptfoo-provider-setup。要评估的行为:[支持回答质量 / 工具调用正确性 / 检索依据 / 业务规则 / 代理任务完成度] 编辑前:- 检查用户访问的应用路径以及任何现有的评估或测试。- 提出最小可用的评估计划:目标适配器、种子用例、断言、文件、命令以及所需的环境变量或本地服务。- 在基线评估存在并运行之前,不要更改生产环境的提示词、模型设置或应用行为。要求:- 尽可能演练用户访问的应用路径,而不仅仅是原始的模型提示词。- 确保测试数据中不包含秘密、客户数据和敏感个人数据。- 添加本地评估命令(如 `npm run evals`)或记录具体的运行命令。结束时提供:- 更改的文件 - 运行的评估命令 - 通过和失败的用例 - 建议下一步添加的评估

    简介

    在构建 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 或你的发布检查清单中。

    相关用例