提示工程是指將您撰寫的提示加以改進,以獲得更可靠、更高品質的輸出。這個過程涉及反覆的精煉——從一個基本的提示開始,評估其表現,然後系統性地應用工程技巧來改善它。

反覆改進流程
這個方法遵循一個清晰的循環,您可以重複執行直到達到您想要的結果:

- 設定目標 - 定義您希望提示達成的目的
- 撰寫初始提示 - 建立一個基本的初次嘗試
- 評估提示 - 依照您的標準進行測試
- 應用提示工程技巧 - 使用特定方法來改善表現
- 重新評估 - 驗證您的變更是否確實改善了結果
您重複最後兩個步驟,直到對表現感到滿意為止。每次迭代都應在您的評估分數中顯示出可衡量的改進。
建立您的評估流程
為了示範這個過程,我們將以一個實際範例來進行:建立一個能為運動員生成一日餐食計畫的提示。這個提示需要考量運動員的身高、體重、目標以及飲食限制,然後產生一份完整的餐食計畫。

評估設定使用了一個 PromptEvaluator 類別,負責處理資料集生成與模型評分。當您建立評估器實例時,可以透過 max_concurrent_tasks 參數來控制並行數:
evaluator = PromptEvaluator(max_concurrent_tasks=5)請從較低的並行數值(例如 3)開始,以避免速率限制錯誤。如果您的 API 配額允許更快的處理速度,可以再提高此數值。
生成測試資料
評估系統可以根據您的提示需求自動生成測試案例。您需要定義提示所需的輸入內容:
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 個),以加快您的迭代週期。在進行最終驗證時,您可以增加此數量。
撰寫您的初始提示
從一個簡單、樸素的提示開始,以建立基準線。以下是一個刻意簡化的初次嘗試範例:
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)這個基本提示很可能會產生不佳的結果,但它為您提供了一個衡量改進程度的起點。
新增評估標準
在執行評估時,您可以指定評分模型應考量的額外標準:
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 分是很常見的。目標是在您應用工程技巧後,看到持續一致的改進。

詳細的評估報告能幫助您準確了解提示失敗的地方以及需要哪些改進。請利用這些回饋來指引您的下一次迭代。
後續步驟
在建立好基準線之後,您就可以開始應用特定的提示工程技巧了。您學到的每一項技巧都應該在評估分數中帶來可衡量的改進,逐步將您的基本提示轉變為一個可靠、高效能的工具。
請記住,提示工程是一個反覆的過程。關鍵在於每次只做一項變更,評估其影響,並在有效的基礎上持續建構。這種系統性的方法能確保您了解哪些技巧對您的特定使用情境最具價值。