3.Generating test datasets
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
构建自定义提示词评估工作流程首先需要创建一个可靠的提示词,然后生成测试数据来查看其表现如何。让我们逐步了解如何为一个帮助用户编写AWS特定代码的提示词设置评估系统。
Setting Up the Goal
我们的提示词需要协助用户为AWS用例编写三种特定类型的输出:
- Python code
- JSON配置文件
- Regular expressions
关键要求是,当用户请求某项任务的帮助时,我们需要返回这些格式中的一种干净输出,不包含任何额外的解释、标题或页脚。

这是我们的初始提示词(版本1):
prompt = f"""
Please provide a solution to the following task:
{task}
"""
创建评估数据集
评估数据集包含我们将输入到提示中的输入数据。对于提示和输入的每个组合,我们将运行提示并分析结果。
我们的数据集将是一个JSON对象数组,其中每个对象包含一个"task"属性,描述我们希望Claude完成的任务。我们可以手动创建这个数据集,也可以使用Claude自动生成。

由于我们正在生成测试数据,这是使用更快模型(如Haiku)而不是完整Claude模型的绝佳机会。
使用代码生成测试数据
让我们创建一个自动生成测试数据集的函数。首先,我们需要用于与Claude交互的辅助函数:
def add_user_message(messages, text):
user_message = {"role": "user", "content": text}
messages.append(user_message)
def add_assistant_message(messages, text):
assistant_message = {"role": "assistant", "content": text}
messages.append(assistant_message)
def chat(messages, system=None, temperature=1.0, stop_sequences=[]):
params = {
"model": model,
"max_tokens": 1000,
"messages": messages,
"temperature": temperature
}
if system:
params["system"] = system
if stop_sequences:
params["stop_sequences"] = stop_sequences
response = client.messages.create(**params)
return response.content[0].text
现在我们将创建数据集生成函数:
def generate_dataset():
prompt = """
为提示词评估生成一个评估数据集。该数据集将用于评估专门为AWS相关任务生成Python、JSON或正则表达式的提示词。生成一个JSON对象数组,每个对象代表一个需要Python、JSON或正则表达式来完成的任务。
Example output:
```json
[
{
"task": "任务描述",
},
...additional
]
```
* 专注于可以通过编写单个Python函数、单个JSON对象或单个正则表达式来解决的任务
* 专注于不需要编写大量代码的任务
请生成3个对象。
"""
为了正确解析JSON响应,我们将使用预填充和停止序列:
messages = []
add_user_message(messages, prompt)
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])
return json.loads(text)
测试数据集生成
让我们运行函数,看看能得到什么样的测试用例:
dataset = generate_dataset()
print(dataset)
这应该返回三个不同的测试用例,涵盖我们的目标输出 - Python 函数、JSON 配置和用于 AWS 特定任务的正则表达式。
Saving the Dataset
一旦我们有了数据集,我们将把它保存到文件中,这样在后续评估时就可以轻松加载:
with open('dataset.json', 'w') as f:
json.dump(dataset, f, indent=2)
这会在你的 notebook 同一目录下创建一个 dataset.json 文件,包含准备用于提示词评估的任务列表。
有了这个基础,你现在就有了一个系统化的方法来生成测试数据,用于评估你的提示词在不同类型的 AWS 相关编程任务中的表现如何。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org