在使用 AI 工具時,為結構化資料提取編寫詳細的 JSON 結構(schema)可能是一個真正的痛點。有一個巧妙的變通方法,讓您可以直接在提示中指定所需的資料結構,而不必建立複雜的結構(schema)。
靈活結構(Schema)方法
與為每個資料提取任務編寫詳細結構(schema)不同,您可以建立一個名為 to_json 的通用工具,該工具接受任何物件結構。關鍵在於將輸入結構(schema)設定為允許額外屬性,然後在提示本身中指定您的確切需求。

這種方法消除了一個主要痛點——不斷編寫和管理大型 JSON 結構(schema)。結果不會像專用結構那樣好,但您仍然可以用更少的設定工作獲得高品質的 JSON 輸出。
運作方式
這個過程很簡單:
- 建立一個接受任何物件結構的單一靈活結構(schema)
- 在您的提示中,明確指定您想要的資料結構
- 告訴 Claude 使用您指定的結構呼叫
to_json工具 - 使用
tool_choice強制 Claude 使用您的工具
設定提示
在編寫提示時,請非常明確地說明您想要的結構。以下是如何構建您的請求的範例:
Analyze the article below and extract key data. Then call the to_json tool.
<article_text>
{result["text"]}
</article_text>
When you call to_json, pass in the following structure:
{{
"title": str # title of the article,
"author": str # author of the article,
"topics": List[str] # List of topics mentioned in the article
}}進行 API 呼叫
API 呼叫使用靈活結構(schema)並強制使用工具:
python
flexible_result = chat(messages, tools=[to_json_schema], tool_choice="to_json")輕鬆變更結構
當您需要修改資料結構時,真正的優勢就會變得明顯。您只需更新提示,而不必重寫整個結構(schema)。想要新增一個主題數量的欄位?只需新增一行:
python
"num_topics": int # Number of topics mentioned就是這樣——不需要修改結構(schema)。
何時使用每種方法
靈活結構(schema)方法非常適合:
- 快速原型設計和實驗
- 簡單的資料提取任務
- 經常變更資料需求的情況
對於以下情況,請堅持使用專用結構(schema):
- 關鍵的生產環境資料提取任務
- 複雜的巢狀資料結構
- 當您需要盡可能高的準確度時
靈活方法讓您以 10% 的設定工作獲得約 90% 的品質,使其非常適合大多數需要結構化資料提取而不想承擔結構(schema)管理負擔的使用情境。