載入中

靈活的工具提取

第 31 課9 分鐘

在使用 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)管理負擔的使用情境。