為什麼 Prompt 很重要?
同樣的模型,prompt 寫得好不好,輸出品質差很多。
這篇整理我在實際專案中驗證過有效的技巧。
1. Chain-of-Thought(思維鏈)
讓模型一步一步思考,而不是直接給答案。
基本版
問題:一個商店有 23 顆蘋果。如果他們用掉 20 顆做果汁,又進貨 6 顆,現在有幾顆?
讓我們一步一步思考:
1. 初始數量:23 顆
2. 用掉:23 - 20 = 3 顆
3. 進貨:3 + 6 = 9 顆
答案:9 顆
進階版:Zero-shot CoT
只要加一句「Let's think step by step」就有效:
問題:[複雜問題]
Let's think step by step.
什麼時候用:數學問題、邏輯推理、多步驟任務。
2. Few-shot Learning(少樣本學習)
給幾個範例,讓模型學會格式和邏輯。
範例
將以下內容轉換為 SQL:
輸入:「找出所有台北的用戶」
輸出:SELECT * FROM users WHERE city = '台北';
輸入:「計算上個月的訂單總額」
輸出:SELECT SUM(amount) FROM orders WHERE created_at >= DATE_SUB(NOW(), INTERVAL 1 MONTH);
輸入:「找出購買超過 3 次的客戶」
輸出:
技巧:
- 範例要多樣化,涵蓋不同情況
- 3-5 個範例通常就夠
- 範例順序可能影響結果
3. 角色設定
給模型一個明確的角色,會影響回答的風格和深度。
範例
你是一位有 10 年經驗的資安工程師,專長是 Web 應用安全。
請審查以下程式碼,找出潛在的安全漏洞:
[程式碼]
請列出:
1. 漏洞類型(OWASP 分類)
2. 風險等級
3. 修復建議
技巧:角色要具體,「資深工程師」比「工程師」好,「有 10 年 Web 安全經驗」更好。
4. 結構化輸出
明確指定輸出格式,避免模型自由發揮。
JSON 格式
分析這段文字的情感,以 JSON 格式回傳:
{
"sentiment": "positive" | "negative" | "neutral",
"confidence": 0.0-1.0,
"key_phrases": ["關鍵詞1", "關鍵詞2"],
"reasoning": "判斷理由"
}
文字:[待分析文字]
Markdown 表格
比較 React 和 Vue,以表格呈現:
| 方面 | React | Vue |
|------|-------|-----|
| 學習曲線 | ... | ... |
| 效能 | ... | ... |
| 生態系 | ... | ... |
5. 負面指令
告訴模型「不要」做什麼,有時比告訴它「要」做什麼更有效。
範例
總結這篇文章的重點。
注意:
- 不要加入你自己的觀點
- 不要使用「首先」「其次」這類順序詞
- 不要超過 200 字
- 如果文章沒提到某個資訊,不要猜測
6. 分隔符號
用分隔符號區分不同部分,避免模型混淆。
範例
請翻譯以下文字,並說明翻譯選擇的理由。
---原文開始---
[原文]
---原文結束---
---翻譯開始---
[翻譯]
---翻譯結束---
---理由說明---
[說明]
常用分隔符號:---、###、""""、<tag></tag>
7. 自我檢查
讓模型檢查自己的輸出。
範例
[任務描述]
完成後,請自我檢查:
1. 答案是否完整回答了問題?
2. 有沒有遺漏重要資訊?
3. 格式是否正確?
如果有問題,請修正後再輸出最終答案。
實戰組合
實際應用通常會組合多種技巧:
你是一位資深軟體架構師,專長是分散式系統設計。
請分析以下系統需求,提出架構建議。
---需求開始---
[需求描述]
---需求結束---
請按以下格式回答:
## 系統概述
(一句話總結架構方向)
## 核心組件
| 組件 | 職責 | 技術選型 |
|------|------|----------|
| ... | ... | ... |
## 設計考量
1. ...
2. ...
## 潛在風險
- ...
注意:
- 不要推薦你不確定的技術
- 如果需求不清楚,請列出需要釐清的問題
- 優先考慮簡單可維護的方案
常見錯誤
1. Prompt 太長
模型可能忽略中間的指令。重要的放前面或後面。
2. 指令矛盾
「回答要詳細,但不要超過 100 字」——這種矛盾的指令會讓模型困惑。
3. 過度依賴單一技巧
不同任務適合不同技巧,要根據情況選擇。
總結
好的 prompt 是清楚、具體、有結構的。
核心技巧:
- Chain-of-Thought:複雜推理
- Few-shot:教模型格式
- 角色設定:控制風格
- 結構化輸出:穩定格式
- 負面指令:避免問題
- 分隔符號:區分內容
- 自我檢查:提升品質
多實驗,找到適合你任務的組合。