效率的關鍵。想象一下:讓 LLM 生成的 JSON 直接被代碼解析,讓報告自動符合公司模板,讓客服回覆精準匹配品牌調性 —— 這些都得經過 Prompt Engineering 實現對輸出的精確控制。本文將環境拆解控制 LLM 輸出的核心技能,從格式約束到內容雕琢,再到風格塑造,幫你從 "能用" 升級到 "善用" 大模型。就是在大模型應用中,"得到答案" 只是基礎,"得到符合預期格式、內容和風格的答案" 才
一、為什麼要控制 LLM 的輸出?
未經控制的 LLM 輸出常常存在 "不確定性":格式混亂導致無法直接使用(如 JSON 缺括號)、內容冗餘或遺漏關鍵信息、風格與場景不符(如用學術腔回覆客户諮詢)。這些問題會大幅增加後續處理成本 —— 據統計,開發者平均要花 30% 的時間清洗 LLM 輸出,而精準控制能將這一比例降低至 5% 以下。
控制輸出的本質是通過結構化提示縮小模型的 "決策空間":明確告訴模型 "必須輸出什麼格式"、"必須包含哪些內容"、"必須用什麼風格表達",讓模型的生成過程從 "自由創作" 轉為 "按要求執行"。
二、精確控制輸出格式:讓機器讀懂你的輸出
讓輸出就是格式控制是 Prompt Engineering 中最基礎也最常用的技能,尤其在需要機器自動處理 LLM 輸出的場景(如 API 集成、數據入庫)中必不可少。核心目標結構化、無歧義、可直接解析。
1. 結構化格式:JSON、表格與自定義模板
(1)JSON 格式控制
JSON 是最常用的結構化格式,需明確指定字段、類型和約束條件。關鍵技巧:
- 用
{}標記 JSON 起始,避免多餘文本- 列出必填字段及説明(如
"name": "用户姓名,字符串類型")- 提供示例(尤其字段麻煩時)
- 強調 "不添加任何解釋文本"
實戰示例:
任務:從以下文本中提取用户信息,以JSON格式返回,包含字段:姓名、年齡、購買產品、價格(數字類型)。
文本:"我叫張三,今年30歲,昨天買了一台筆記本電腦,花了5999元。"
要求:只返回JSON,不添加其他內容。
模型響應:
{"姓名": "張三", "年齡": 30, "購買產品": "筆記本電腦", "價格": 5999}
(2)表格格式控制
適合展示結構化數據對比,需指定表頭和行列規則。關鍵技巧:
- 用
|分隔單元格,---標記表頭分隔線- 明確列數和每列含義
- 要求 "表格無多餘邊框,行列對齊"
示例:
將以下3種水果的信息整理成Markdown表格,包含列:名稱、單價(元)、成熟季節。
信息:蘋果單價8元,秋季成熟;香蕉單價5元,夏季成熟;橙子單價6元,冬季成熟。
模型響應:
|
名稱
|
單價(元)
|
成熟季節
|
|
蘋果
|
8
|
秋季
|
|
香蕉
|
5
|
夏季
|
|
橙子
|
6
|
冬季
|
(3)自定義模板控制
針對特定業務場景(如報告、郵件),可預設模板讓模型填充內容。關鍵技巧:
- 用
{{佔位符}}標記需要填充的部分- 説明佔位符的取值範圍
- 強調 "嚴格按照模板結構,不增刪段落"
示例:
按以下模板生成產品故障報告:
故障報告 產品名稱:{{產品名}}
故障現象:{{具體描述}}
可能原因:1. {{原因1}} 2. {{原因2}}
解決方案:{{步驟}}
信息:用户反饋"新買的掃地機器人無法開機,充電時指示燈不亮"。
模型響應:
故障報告
產品名稱:掃地機器人
故障現象:無法開機,充電時指示燈不亮
可能原因:1. 充電器接觸不良 2. 電池故障
解決方案:1. 檢查充電器插頭是否插緊;2. 更換充電器嘗試充電;3. 若仍無效,聯繫售後檢測電池
2. 格式約束的核心技巧
|
技巧
|
作用
|
示例
|
|
明確分隔符
|
避免輸出混雜其他內容
|
" 用 |
|
字段類型標註
|
確保數據類型正確(如數字、布爾值)
|
|
|
錯誤兜底
|
處理信息不全的情況
|
"若年齡未提及,用 null 表示"
|
|
示例引導
|
艱難格式必用,降低模型理解成本
|
先給一個正確示例,再讓模型模仿
|
三、精準控制輸出內容:讓信息不多不少,恰到好處
內容控制的目標是讓 LLM 輸出覆蓋核心需求、排除無關信息、保證準確性因為你沒説清楚 "要什麼" 和 "不要什麼"。就是。很多時候,模型輸出質量差不是基於能力不足,而
1. 控制內容範圍:明確 "包含什麼" 和 "排除什麼"
(1)正向約束:指定必須包含的信息
通過 "必須含有 XX 點" 強制模型覆蓋核心內容,尤其適合需要完整性的場景(如需求文檔、檢查清單)。
示例:
總結以下產品説明,必須包含:1. 核心功能;2. 適用人羣;3. 注意事項。不超過200字。
產品説明:"智能手環B3支持心率監測、睡眠分析、運動計步,續航7天。適合上班族和運動愛好者使用。應用時需遠離強磁場,充電時請使用原裝充電器。"
模型響應:智能手環 B3 的核心功能包括心率監測、睡眠分析和運動計步,續航達 7 天。適用人羣為上班族和運動愛好者。注意事項:應用時需遠離強磁場,充電必須使用原裝充電器。
(2)反向約束:指定必須排除的信息
利用 "不包含 XX" 過濾冗餘內容,適合需要簡潔性的場景(如摘要、快速回復)。
示例:
解釋什麼是"機器學習",要求:1. 不使用數學公式;2. 不提及具體算法名稱;3. 用日常生活舉例。
模型響應:機器學習是讓計算機像人一樣 "從經驗中學習" 的技術。比如,手機相冊能自動識別人臉,它通過分析大量標註好的照片,逐漸學會區分不同人的面部特徵,下次看到新照片時就能準確識別,這個過程就像人通過多次見面記住朋友的樣子。
2. 控制內容深度:從 "概要" 到 "細節" 的精準調節
利用關鍵詞控制信息顆粒度,滿足不同場景需求:
- 概要級:用 "簡要説明"、"一句話總結"
- 中等深度:用 "分點説明(3-5 點)"、"核心步驟"
- 深度細節:用 "詳細描述"、"每個步驟具備 XX 信息"
示例對比:
# 概要級
簡要説明"如何煮米飯",不超過30字。
# 中等深度
分3步説明"如何煮米飯",每步不超過50字。
# 深度細節
詳細説明"如何煮米飯",包含:米和水的比例、浸泡時間、火候控制、判斷熟度的方法。
3. 控制內容準確性:減少幻覺與錯誤
LLM 有時會生成 "看似合理但錯誤" 的內容(即 "幻覺"),利用以下技巧降低風險:
- 限定信息來源:"僅基於以下文本回答,不添加外部信息"
- 標註不確定性:"若信息不明確,用 ' 可能 ' 標註並説明原因"
- 要求驗證依據:"每個結論需引用文本中的具體句子"
示例:
基於以下文本回答:"人工智能首次擊敗人類圍棋冠軍是哪一年?
" 文本:"2016年3月,谷歌DeepMind開發的AlphaGo與圍棋世界冠軍李世石進行比賽並獲勝,這是人工智能首次在圍棋領域擊敗人類頂尖選手。"
要求:僅用文本中的信息回答,若文本未提及,回覆"未提及"。
四、精細控制輸出風格:讓表達適配場景與對象
風格控制能讓 LLM 的輸出貼合場景氛圍、匹配受眾特徵,在營銷文案、客服溝通、內容創作等場景中至關重要。風格的核心要素包括:語氣(正式 / 隨意)、措辭(專業 / 通俗)、情感(積極 / 中性)、角色(專家 / 朋友)。
1. 語氣與措辭控制
通過明確形容詞指定語氣,配合示例強化效果:
- 正式語氣:"使用書面語,避免口語化表達,結構嚴謹"
- 隨意語氣:"像朋友聊天一樣,用口語化表達,可加語氣詞"
- 專業措辭:"使用 XX 領域術語(如計算機領域的 ' 迭代 '、' 封裝 ')"
- 通俗措辭:"用小學生能聽懂的話解釋,多舉生活例子"
示例對比:
# 正式專業版
解釋"區塊鏈",採用金融領域術語,結構嚴謹,適合向投資人説明。
# 隨意通俗版
解釋"區塊鏈",像和朋友聊天一樣,用口語化表達,適合向長輩説明。
模型響應(正式專業版):區塊鏈是一種去中心化的分佈式賬本技術,通過密碼學算法完成交易記錄的不可篡改與可追溯。其核心特性包括分佈式存儲、共識機制與智能合約,在金融領域可應用於跨境支付、供應鏈金融等場景,能降低信任成本與交易摩擦。
模型響應(隨意通俗版)為啥大家説它靠譜。就是:區塊鏈就像一個大家共用的記事本,你記一筆,我記一筆,所有人都能看到,但誰也改不了之前的記錄。比如你給朋友轉錢,這筆賬會被所有人記下來,想賴賬都不行,這就
2. 角色綁定與風格遷移
激活模型對該角色的 "語言習慣記憶"。關鍵技巧:就是給模型賦予具體角色,讓其從角色視角輸出內容,本質
- 角色細節越具體越好(如 "有 10 年經驗的小學科學老師,擅長用實驗舉例")
- 明確角色的溝通對象(如 "向 6 歲兒童解釋")
- 可附加角色的典型表達方式(如 "常用 ' 你看呀 '、' 咱們試試 ' 等句式")
五、實戰技巧:當模型 "不聽話" 時該怎麼辦?
即使掌握了上述方法,模型偶爾仍會 "跑偏"(如 JSON 格式錯誤、遺漏內容)。這時可採用以下進階技巧:
- 逐步引導法:複雜任務拆分成多步提示,先讓模型確認理解格式要求,再輸出內容。
第一步:請重複我需要的JSON格式(具備字段:姓名、年齡)。
第二步:根據文本"小李今年25歲",按上述格式輸出。
- 錯誤修正法:直接指出模型的錯誤並要求重寫。
你輸出的JSON缺少"年齡"字段,且"價格"應為數字類型(當前帶了單位),請修正後重新輸出。
- 冗餘約束法:用多重約束強化格式要求(尤其對較笨的模型)。
必須輸出JSON,用```包裹,字段不能缺失,值為數字的字段不能加引號,不允許任何解釋文字,否則輸出無效。
六、總結:控制輸出的底層邏輯
控制 LLM 輸出的核心不是 "命令",而是 "清晰的預期傳遞"。無論是格式、內容還是風格,本質都是通過以下方式縮小模型的生成空間:
- 明確邊界:告訴模型 "能做什麼" 和 "不能做什麼"
- 提供示例:用具體案例展示 "正確的樣子"
- 匹配場景:讓模型理解 "輸出將被如何應用"
練習建議:從日常任務開始(如讓模型生成帶格式的待辦清單),逐步增加複雜度(如生成可直接入庫的 JSON 數據),並記錄模型 "不聽話" 的場景 —— 這些場景正是你提升 Prompt 技能的關鍵突破口。