Skip to main content

数据集生成

你的数据集是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 "考虑与国际旅行相关的边缘案例"