Promptfoo的搭建与测试,2026-0521成功版很简单
可能写的有点粗糙,但是我搞通了,有不懂的可以问我,懒得再更新了
其实我也是520当天搭建好的,现在的教程也不多,我就搜了搜,没什么具体的步骤,我想用windows感觉更方便一点但是一直不行各种版本问题还有缺失编译各种问题,我就用的linux
我的项目是调用的ollama本地模型然后进行Promptfoo测试
项目本身windows里面下载了ollama
1、下载ubuntu,为的就是在linux里面使用promptfoo
2、ubuntu里面下载ollama(好像也可以不下载,问问ai怎么连接windows里面的ollama,如果不行就在ubuntu里面下载ollama然后连接),不用在ubuntu的ollama里面再次下载模型文件了
3、连接成功后创建一个文件夹(随便起就行)
里面的tests写你的测试用例(也可以写在yaml文件里面就是比较冗余)
具体里面应该怎么写,可以问ai,我现在可以跑,可能数据属性什么的没弄懂,反正思路没问题
***ubuntu里面的语句***
cd /mnt/d/promptfoo-demo (promptfoo-demo是你自己创建的文件夹的名字)
promptfoo eval(进行测试)
promptfoo view(打开web端可是工具 网址是eval-JXY-2026-05-21T01:14:09 | promptfoohttp://localhost:15500/eval)
下面是我yaml的格式(格式很重要,多一个空格都不行和java后的yaml文件一样)
providers: - ollama:qwen3:1.7b env: OLLAMA_BASE_URL: http://192.168.××.×××:11434 prompts: - | 你是工业机床UI控制助手。 可用页面列表(必须完全匹配): -主页 -程序 用户输入:{{question}} 只输出JSON,不要任何解释,不要加其他额外的文字。 输出格式:{"tool_calls":[{"function":"page_jump","parameters":{"target_page":"页面名称"}}]} tests: - name: 主页 - 进入 vars: question: 进入主页 assert: - type: contains value: '"function":"page_jump"' - type: contains value: '"target_page":"主页"' - name: 找边 - 打开 vars: question: 打开找边页面 assert: # 如果输出匹配任何合法页面 → 测试失败 - type: contains value: '"function":"page_jump"' - type: contains value: '"target_page":"找边"' output: format: markdown file: results.md