提示词测试

提示词测试

把提示词当作源文件对待。一条命令即可对照质量标准、token 预算和严重级别阈值检查仓库中的每个提示词,一旦有问题就让构建失败。

  • CLI
  • 离线
  • 从源码构建

功能介绍

上个月还好用的提示词,可能被一次好心的修改弄坏:一段重复的段落、一个被删掉的输出格式、一个粘贴进来的密钥。提示词测试能在审查阶段而不是生产环境中发现这些问题。

promptflow check 命令会读取你指定的提示词文件,当某个文件得分低于你的下限、token 超过你的上限,或存在达到所选严重级别的问题时,命令就会失败。默认阈值是 critical,因此泄露的凭据总会导致失败。配置保存在仓库根目录的 .promptflowrc.json 文件中。

这些是静态测试。它们检查提示词文本,从不调用模型,因此快速、免费,且每次运行结果都相同。它们不能取代用模型进行的输出测试,而是位于其前面,消除那些不需要模型就能发现的失败。基于模型的测试已在路线图中,目前尚未提供。

实际示例

compare 发现的一次回归

同一提示词的两个版本,由引擎在构建本页面时进行比较。那次修改看似无害,却删掉了输出格式。 引擎的检查结果和生成的提示词以英文显示,与引擎和 API 返回的内容完全一致。

版本 1

100/100 · 46 token
Summarize the incident report below for the on-call engineering team in 5 bullet points. Include the root cause, the customer impact, and the fix. Return a markdown list.

<report>
{{report}}
</report>

版本 2

84/100 · 36 token
Summarize the incident report below for the on-call engineering team. Include the root cause, the customer impact, the fix, and some other details if relevant.

{{report}}
质量
-16
token
-10
新问题
3
  • 警告Template variable not delimited: {{report}}.
  • 提示No output format is specified.
  • 提示No length limit for generated content.

由引擎在构建本页面时计算得出。 按照下面的配置,版本 2 能以最低 70 分通过门禁。

.promptflowrc.json
{
  "include": ["prompts/**/*.md"],
  "model": "gpt-4.1",
  "minScore": 70,
  "maxTokens": 2000,
  "failOn": "critical"
}
shell
promptflow check
promptflow compare prompts/summary.v1.md prompts/summary.v2.md

主要优势

功能

适用人群

使用场景

常见问题

提示词测试会用模型运行我的提示词吗?

不会。这些检查是静态的:用确定性规则分析提示词文本。用模型运行提示词并为输出打分的功能已在路线图中,目前尚未提供。

CLI 在 npm 上吗?

还没有。在软件包发布之前,请从仓库检出的代码构建 CLI。CLI 文档中列有相关命令。

它能检查哪些文件类型?

任何文本文件。把 include 的 glob 指向存放提示词的文件即可,例如 Markdown 或 .prompt.txt 文件。

我可以忽略某条规则吗?

可以。在 .promptflowrc.json 的 ignore 下列出规则代码,即可在整个仓库中跳过它们。

所有产品都运行同一个引擎,组合使用时不会出现意外差异。

了解背后的技巧

来自提示词工程知识中心的指南,讲解本产品所运用的理念。

用你自己的提示词试一试。

免费、确定性、保护隐私。无需注册。