效率的關鍵。想象一下:讓 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}

提示詞(prompt)工程指南(一):提示介紹_mb618b7a3518a5a的技術博客_JSON

(2)表格格式控制

適合展示結構化數據對比,需指定表頭和行列規則。關鍵技巧:

  • |分隔單元格,---標記表頭分隔線
  • 明確列數和每列含義
  • 要求 "表格無多餘邊框,行列對齊"

示例

將以下3種水果的信息整理成Markdown表格,包含列:名稱、單價(元)、成熟季節。

信息:蘋果單價8元,秋季成熟;香蕉單價5元,夏季成熟;橙子單價6元,冬季成熟。

模型響應

名稱

單價(元)

成熟季節

蘋果

8

秋季

香蕉

5

夏季

橙子

6

冬季

(3)自定義模板控制

針對特定業務場景(如報告、郵件),可預設模板讓模型填充內容。關鍵技巧:

  • {{佔位符}}標記需要填充的部分
  • 説明佔位符的取值範圍
  • 強調 "嚴格按照模板結構,不增刪段落"

示例

按以下模板生成產品故障報告:

故障報告 產品名稱:{{產品名}}

故障現象:{{具體描述}}

可能原因:1. {{原因1}} 2. {{原因2}}

解決方案:{{步驟}}


信息:用户反饋"新買的掃地機器人無法開機,充電時指示燈不亮"。

模型響應

故障報告

產品名稱:掃地機器人

故障現象:無法開機,充電時指示燈不亮

可能原因:1. 充電器接觸不良 2. 電池故障

解決方案:1. 檢查充電器插頭是否插緊;2. 更換充電器嘗試充電;3. 若仍無效,聯繫售後檢測電池

2. 格式約束的核心技巧

技巧

作用

示例

明確分隔符

避免輸出混雜其他內容

" 用json和包裹 JSON 內容 "

字段類型標註

確保數據類型正確(如數字、布爾值)

"價格": "數字類型,不帶單位"

錯誤兜底

處理信息不全的情況

"若年齡未提及,用 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 歲兒童解釋")
  • 可附加角色的典型表達方式(如 "常用 ' 你看呀 '、' 咱們試試 ' 等句式")

提示詞(prompt)工程指南(一):提示介紹_mb618b7a3518a5a的技術博客_JSON_02

五、實戰技巧:當模型 "不聽話" 時該怎麼辦?

即使掌握了上述方法,模型偶爾仍會 "跑偏"(如 JSON 格式錯誤、遺漏內容)。這時可採用以下進階技巧:

  1. 逐步引導法:複雜任務拆分成多步提示,先讓模型確認理解格式要求,再輸出內容。

第一步:請重複我需要的JSON格式(具備字段:姓名、年齡)。

第二步:根據文本"小李今年25歲",按上述格式輸出。

  1. 錯誤修正法:直接指出模型的錯誤並要求重寫。

你輸出的JSON缺少"年齡"字段,且"價格"應為數字類型(當前帶了單位),請修正後重新輸出。

  1. 冗餘約束法:用多重約束強化格式要求(尤其對較笨的模型)。

必須輸出JSON,用```包裹,字段不能缺失,值為數字的字段不能加引號,不允許任何解釋文字,否則輸出無效。

六、總結:控制輸出的底層邏輯

控制 LLM 輸出的核心不是 "命令",而是 "清晰的預期傳遞"。無論是格式、內容還是風格,本質都是通過以下方式縮小模型的生成空間:

  • 明確邊界:告訴模型 "能做什麼" 和 "不能做什麼"
  • 提供示例:用具體案例展示 "正確的樣子"
  • 匹配場景:讓模型理解 "輸出將被如何應用"

練習建議:從日常任務開始(如讓模型生成帶格式的待辦清單),逐步增加複雜度(如生成可直接入庫的 JSON 數據),並記錄模型 "不聽話" 的場景 —— 這些場景正是你提升 Prompt 技能的關鍵突破口。