数据集生成
你的数据集是LLM评估的核心。在可能的范围内,它应尽可能真实地反映输入到你的LLM应用中的内容。
promptfoo可以使用promptfoo generate dataset
命令扩展现有数据集,并帮助使其更加全面和多样化。本指南将引导你使用promptfoo
生成数据集的过程。
准备你的提示
在生成数据集之前,你需要准备好你的prompts
,以及可选的tests
:
prompts:
- 'Act as a travel guide for {{location}}'
- 'I want you to act as a travel guide. I will write you my location and you will suggest a place to visit near my location. In some cases, I will also give you the type of places I will visit. You will also suggest me places of similar type that are close to my first location. My current location is {{location}}'
tests:
- vars:
location: 'San Francisco'
- vars:
location: 'Wyoming'
- vars:
location: 'Kyoto'
- vars:
location: 'Great Barrier Reef'
运行promptfoo generate dataset
数据集生成使用你的提示和任何现有的测试用例来生成新的、独特的测试用例,这些用例可用于评估。
在与配置文件相同的目录中运行命令:
promptfoo generate dataset
这将把tests
YAML输出到你的终端。
如果你想将新数据集写入文件:
promptfoo generate dataset -o tests.yaml
或者如果你想就地编辑现有配置:
promptfoo generate dataset -w
自定义生成过程
你可以通过向promptfoo generate dataset
命令提供额外选项来自定义数据集生成过程。以下是支持的参数表:
参数 | 描述 |
---|---|
-c, --config | 配置文件的路径。 |
-i, --instructions | 生成测试用例时LLM应遵循的特定指令。 |
-o, --output | 数据集将保存到的输出文件的路径。 |
-w, --write | 直接将生成的测试用例写入配置文件。 |
--numPersonas | 为数据集生成的人物角色数量。 |
--numTestCasesPerPersona | 每个角色生成的测试用例数量。 |
--provider | 用于数据集生成的提供者。例如:openai:chat:gpt-4o |
例如:
promptfoo generate dataset --config path_to_config.yaml --output path_to_output.yaml --instructions "考虑与国际旅行相关的边缘案例"