提示工程是指將您已撰寫的提示加以改進,以獲得更可靠、更高品質的輸出。這個過程包括撰寫初始提示、評估其表現,然後系統性地逐步應用工程技術來改進它。

迭代改進流程
這個方法遵循一個清晰的循環:設定目標、撰寫初始提示、評估它、應用提示工程技術,然後重新評估以驗證表現是否有所提升。這個循環會隨著您不斷優化提示而重複進行。

在這個教學系列中,我們將以一個實際範例來進行:建立一個提示,根據運動員的身高、體重、體能目標和飲食限制,生成一日餐食計畫。
設定評估流程
此評估使用了先前模組中流程的改進版本,並封裝在一個 PromptEvaluator 類別中,該類別負責處理資料集生成與模型評分。此類別支援並行處理,以加快評估流程:
python
evaluator = PromptEvaluator(max_concurrent_tasks=5)請從較低的並行值(例如 3)開始,以避免速率限制錯誤。您可以根據您的 API 配額進行調整。
生成測試資料
generate_dataset 方法會為您的提示建立測試案例。您需要指定:
- 一份任務描述,說明您的提示應該做什麼
- 您的提示所需輸入的規格說明
- 要生成的測試案例數量
以餐食計畫範例來說:
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"
},
num_cases=3
)撰寫您的初始提示
從一個簡單、樸素的提示開始,以建立基準線。run_prompt 函式會接收測試案例的輸入,並應回傳模型的回應:
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
"""
)分析結果
評估會生成一個 output.html 檔案,您可以在瀏覽器中開啟它。此報告會顯示每個測試案例的詳細結果,包括分數、推理過程,以及您的提示所生成的實際輸出。

不要因為初始分數偏低而感到氣餒——這是正常的!在這個範例中,初始提示的得分僅為 10 分中的 2.3 分,但這為您提供了一個清晰的基準線,讓您可以從此開始改進。
接下來呢
在建立好基準線之後,您現在可以系統性地應用提示工程技術,例如更具體地描述、新增輸出格式要求、使用結構化提示,以及實作多範例(multi-shot)示範。每種技術都應該能提升您的評估分數,讓您朝著目標取得可衡量的進展。