Promptfoo怎么用 AI提示词测试对比工具教程
更新时间:2026-10-09 04:11:19 发布时间:1小时前 阅读:3次Promptfoo是一个开源的AI提示词测试工具,可以对比不同模型和提示词的输出效果,帮你找到最好的组合。它通过配置文件整理提示词、模型和测试输入,再批量运行并展示结果,适合检查回答质量、格式和稳定性。下面从安装、编写用例到查看结果,带你完成一次基础测试。
第一步:安装Promptfoo
先确认电脑已安装Node.js和npm,然后打开终端执行npm install -g promptfoo。如果不想全局安装,也可以用npx promptfoo@latest运行命令。接着创建示例项目:执行promptfoo init --example getting-started,进入生成的目录。示例会提供配置文件和测试内容,方便先跑通流程再改成自己的任务。
运行模型测试通常需要服务商的API密钥。以OpenAI为例,在终端设置环境变量:export OPENAI_API_KEY=你的密钥;Windows PowerShell可用$env:OPENAI_API_KEY="你的密钥"。密钥不要直接写进配置文件或提交到代码仓库。不同模型服务的密钥名称与配置方式可能不同,按所选provider的要求设置即可。
第二步:配置测试用例
在项目目录找到promptfooconfig.yaml,用文本编辑器打开。配置一般包含prompts、providers和tests:分别代表待测提示词、模型服务以及测试输入。提示词中的{{question}}是变量占位符,运行时会由测试用例里的变量值替换。保存前留意YAML缩进,层级通常用空格表示,不要混用制表符。
测试用例应覆盖真实任务,而不只是简单示例。比如客服问答可以准备退款、物流和无法识别的问题,并为每条输入设置预期条件。你可以添加断言,检查输出是否包含必要词语,或是否符合指定规则;也可以先不设断言,运行后人工比较。例子如下,缩进请保持一致:
prompts:
- "请简洁回答用户问题:{{question}}"
providers:
- openai:模型名称
tests:
- vars:
question: "如何申请退款?"
assert:
- type: contains
value: "退款"
对比多个模型
在providers下添加多个模型标识,Promptfoo会把同一组提示词和测试输入分别交给各个模型,再汇总输出。模型名称需使用对应provider支持的准确写法,并确保API密钥和访问权限已经配置。也可以在prompts中放入不同版本的提示词,观察同一模型面对不同写法时的表现。
比较时尽量保持测试输入一致,并关注任务相关指标:是否答对、是否遵守格式、是否遗漏关键信息,以及延迟和调用成本。单个样例很容易造成误判,建议准备多条覆盖常见情况和边界情况的输入。提示词优化一次只改少量内容,更容易判断效果变化来自哪里。
第三步:运行测试和查看结果
确认配置文件在当前目录后,执行promptfoo eval启动测试。工具会依次运行提示词、模型与用例的组合,并在终端报告结果;模型调用可能产生费用或受到速率限制。配置有误时先检查缩进、字段名称和密钥,再重试。若想排查配置,也可使用promptfoo validate config -c promptfooconfig.yaml进行校验。
测试结束后执行promptfoo view,在浏览器打开本地结果页面。结果通常按测试输入和模型并排列出,便于逐格查看回答、断言通过情况及差异。不要只看总分:点开失败项,确认是提示词含糊、模型能力不足,还是测试预期设置得不合理。修改配置后再次运行,形成“测试—分析—调整”的迭代过程。
如果更习惯国内工具,也可以了解01Agent作为替代选择,按自身的模型接入方式和工作流程评估是否合适:01agent.cgref.cn。无论使用哪种工具,建议把测试用例和配置文件与项目代码一起维护;每次修改提示词后重复运行同一套用例,才能更可靠地比较新旧版本。