當您需要 Claude 生成結構化資料,例如 JSON、Python 程式碼或項目符號清單時,您經常會遇到一個常見問題:Claude 想要提供幫助,並在您的內容周圍加上說明文字。雖然這通常很棒,但有時您只需要原始資料,不需要其他任何內容。

想像您正在建置一個產生 AWS EventBridge 規則的網頁應用程式。使用者輸入描述,點擊生成,並期望看到可以立即複製使用的乾淨 JSON。如果 Claude 將 JSON 包裝在帶有說明性標題和頁尾的 markdown 程式碼區塊中,使用者就無法簡單地點擊「全部複製」——他們必須手動選取僅 JSON 的部分。

每當您生成結構化資料時,都會出現這種模式。Claude 自然地想要解釋其工作內容,但在許多情況下,您只想要您所要求的內容,不需要其他任何東西。

結合停止序列與助手訊息預填
解決方案結合了我們已經介紹過的兩種技術:停止序列和助手訊息預填。以下是實際運作方式:
python
messages = []
add_user_message(messages, "Generate a very short event bridge rule as json")
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])當您執行此程式碼時,您會取回僅包含 JSON 內容,沒有任何 markdown 格式或額外評論。
幕後運作原理

以下是 Claude 處理您的請求時發生的情況:
- Claude 讀取您的使用者訊息,並思考「我需要寫出完整的規則,並可能需要描述它」
- 它看到預填的助手訊息,並假設自己已經開始撰寫 JSON markdown 區塊
- Claude 思考「哦,我已經開始了 JSON 部分,所以我只需要寫出實際的 JSON 內容」
- 它生成 JSON 內容
- 當 Claude 嘗試用
```關閉 markdown 區塊時,它會遇到停止序列,生成立即停止
結果是您會取得預填開頭與停止序列之間的所有內容——正是您想要的內容。
清理輸出內容
回傳的文字可能會有一些多餘的換行符,但您可以輕鬆清理這些內容:
python
import json
# 解析為 JSON 以驗證並格式化
parsed_json = json.loads(text.strip())此技術適用於任何結構化資料格式,不僅限於 JSON。無論您是在生成 Python 程式碼、項目符號清單,還是任何其他特定內容格式,您都可以使用助手訊息預填來開始回應,並使用停止序列在您想要的確切位置結束它。
這種方法讓您能夠精確控制 Claude 的輸出格式,確保您的應用程式取得乾淨、可用的資料,而不會有可能干擾下游處理的額外格式或評論。