加载中

提示工程是指将您编写的提示进行改进,以获得更可靠、更高质量的输出。这个过程涉及迭代优化——从一个基本提示开始,评估其表现,然后系统地应用工程技术来改进它。

迭代改进流程

该方法遵循一个清晰的循环,您可以重复这个循环直到达到预期效果:

  1. 设定目标 - 定义您希望提示实现什么
  2. 编写初始提示 - 创建一个基本的初次尝试
  3. 评估提示 - 根据您的标准进行测试
  4. 应用提示工程技术 - 使用特定方法来提升表现
  5. 重新评估 - 验证您的更改是否真正改善了结果

您需要重复最后两个步骤,直到对表现感到满意为止。每次迭代都应在您的评估分数中显示出可衡量的改进。

搭建您的评估流水线

为了演示这个过程,我们将使用一个实际示例:创建一个为运动员生成单日膳食计划的提示。该提示需要考虑运动员的身高、体重、目标和饮食限制,然后生成一份全面的膳食计划。

评估设置使用一个 PromptEvaluator 类来处理数据集生成和模型评分。在创建评估器实例时,您可以使用 max_concurrent_tasks 参数来控制并发量:

python
evaluator = PromptEvaluator(max_concurrent_tasks=5)

从较低的并发值(例如 3)开始,以避免速率限制错误。如果您的 API 配额允许更快的处理速度,可以增加该值。

生成测试数据

评估系统可以根据您的提示要求自动生成测试用例。您需要定义提示所需的输入:

python
dataset = evaluator.generate_dataset(
    task_description="Write a compact, concise 1 day meal plan for a single athlete",
    prompt_inputs_spec={
        "height": "Athlete's height in cm",
        "weight": "Athlete's weight in kg", 
        "goal": "Goal of the athlete",
        "restrictions": "Dietary restrictions of the athlete"
    },
    output_file="dataset.json",
    num_cases=3
)

在开发过程中,将测试用例数量保持在较低水平(2-3 个),以加快迭代周期。在进行最终验证时,您可以增加这个数量。

编写您的初始提示

从一个简单、朴素的提示开始,以建立基线。以下是一个刻意设计得很基础的初次尝试示例:

python
def run_prompt(prompt_inputs):
    prompt = f"""
What should this person eat?

- Height: {prompt_inputs["height"]}
- Weight: {prompt_inputs["weight"]}
- Goal: {prompt_inputs["goal"]}
- Dietary restrictions: {prompt_inputs["restrictions"]}
"""
    
    messages = []
    add_user_message(messages, prompt)
    return chat(messages)

这个基本提示很可能会产生较差的结果,但它为您提供了一个衡量改进程度的起点。

添加评估标准

在运行评估时,您可以指定评分模型应考虑的额外标准:

python
results = evaluator.run_evaluation(
    run_prompt_function=run_prompt,
    dataset_file="dataset.json",
    extra_criteria="""
The output should include:
- Daily caloric total
- Macronutrient breakdown  
- Meals with exact foods, portions, and timing
"""
)

这有助于确保您的提示是根据与您的使用场景相关的具体要求进行评估的。

分析结果

运行评估后,您将获得一个数值分数和一份详细的 HTML 报告。该报告会准确展示每个测试用例的表现情况,包括模型对每个分数的推理过程。

不要因为初始分数较低而感到气馁——对于初次尝试来说,10 分中得 2.3 分是很常见的。目标是随着您应用工程技术,看到持续的改进。

详细的评估报告能帮助您准确了解提示在哪些方面存在问题,以及需要进行哪些改进。利用这些反馈来指导您的下一次迭代。

后续步骤

在建立了基线之后,您就可以开始应用具体的提示工程技术了。您学习的每一种技术都应在评估分数中带来可衡量的改进,逐步将您的基本提示转变为一个可靠、高性能的工具。

请记住,提示工程是一个迭代过程。关键在于每次只做一项更改,评估其影响,并在有效的基础上继续构建。这种系统化的方法能确保您了解哪些技术对您的特定使用场景最有价值。