從自由文本抽取結構化 JSON
一堆非結構化文本(郵件、公告、客服記錄),需要變成可以進資料庫的欄位。
提示詞長度
177
tokens
建議模型
Flash
單次成本(離峰)
$0.00021
Flash
跑一萬次
$2.07
Flash 離峰
提示詞全文
從下面的文本中抽取資訊,輸出 JSON。
文本:
```
{{文本}}
```
要抽取的欄位:
- {{欄位1}}(類型:字串)
- {{欄位2}}(類型:數字)
- {{欄位3}}(類型:日期,格式 YYYY-MM-DD)
- {{欄位4}}(類型:字串陣列)
輸出規則:
1. 只輸出 JSON,不要任何解釋文字
2. 找不到的欄位填 null,不要猜
3. 日期統一轉成 YYYY-MM-DD,原文是「下週三」這類相對時間時填 null 並在 __uncertain 裡說明
4. 所有欄位值保留原文表述,不要改寫
如果文本中完全沒有相關資訊,輸出 {"error": "no_data"}
為什麼這樣寫
- 「找不到填 null 不要猜」是抽取任務的第一原則。不寫這句,模型會編造看起來合理的值。
- 「只輸出 JSON 不要解釋」能省下大量輸出 token,也避免解析失敗。
- 要求相對時間填 null 並標記,比讓模型自己算成絕對日期安全得多 —— 它常常算錯。
成本
按上面這段提示詞估算(輸入 177 tokens、輸出 300 tokens)。輸出長度依任務而定,實際會有差異。
| 模型 | 單次(高峰) | 單次(離峰) | 1 萬次(高峰) | 1 萬次(離峰) |
|---|---|---|---|---|
| DeepSeek Flash | $0.00041 | $0.00021 | $4.13 | $2.07 |
| DeepSeek V4 Pro | $0.00142 | $0.00071 | $14.22 | $7.11 |
模型建議:結構化抽取是 Flash 最擅長的場景之一,準確率高且成本極低。只有欄位間需要複雜推理關聯時才考慮 V4 Pro。
變體
- 要批量處理時,改成「輸入是 JSON 陣列,輸出是對應的陣列,保持順序」。
- 欄位很多時,先用一句話讓模型「列出你能找到的欄位」,確認後再抽取,避免反覆掃全文。
常見失敗
- 不指定日期格式,會得到五花八門的寫法(2026/11/4、11月4日、Nov 4)。
- 不要求「保留原文表述」,模型會把「約三萬」改成 30000,丟失不確定性。