order_analyzer
訂單分析器。當收到 WeChat 訂單對話需要提取訂單資訊時觸發,包括:客戶識別、商品標準化、價格提取、數量單位解析、JSON 結構化輸出。
訂單分析器
功能說明
從 WeChat 訂單對話中自動提取結構化訂單資訊,識別客戶、商品、數量、價格,輸出標準 JSON 格式。專為澳門餐飲/酒店供應鏈設計。
工作流程
第一步:接收對話文本
- 接收原始 WeChat 訂單對話
- 可以是單筆或多筆訂單混合
第二步:客戶識別
- 識別已知客戶名稱:
| 類型 | 客戶名稱 |
|---|---|
| 餐廳 | 彥食堂、匠膳、櫻川壽司、達摩、寫樂 |
| 酒店 | 葡京酒店、皇朝举杯、濠尚 |
| 地點 | 石排灣、台山、氹仔 |
第三步:商品標準化
- 「大三文魚」→「大三文魚」
- 「三文魚」→「三文魚」
- 「赤貝」「甜蝦」「北極貝」等保持原名
第四步:數量與單位解析
| 縮寫 | 單位 |
|---|---|
| 條 | 條(整條魚) |
| k / kg | 公斤 |
| 箱 | 箱 |
| 盒 | 盒 |
| 包 | 包 |
第五步:價格提取
- 有數字:直接提取(如
100→ price: 100) - 標註「機價」:price: null
- 僅數量無價格:price 欄位省略
第六步:輸出 JSON
{
"orders": [
{
"customer": "客戶名稱",
"location": "地點(可選)",
"items": [
{"name": "商品名稱", "qty": 1, "unit": "條", "price": 100}
],
"total": 100
}
],
"summary": {
"total_orders": 1,
"hot_products": ["大三文魚"]
}
}
錯誤處理
| 情境 | 處理方式 |
|---|---|
| 客戶名稱無法識別 | 使用原文作為 customer,標記為「未知客戶」 |
| 數量單位不明 | 預設為「個」,附註待確認 |
| 價格格式混亂 | 設為 null,附註原始文字 |
| 對話中混雜非訂單內容 | 過濾無關內容,僅提取訂單資訊 |
| 同一客戶多筆訂單 | 合併為一筆,items 陣列包含所有商品 |
使用範例
-
輸入:「彥食堂 大三文魚1條100」 輸出:
{"customer": "彥食堂", "items": [{"name": "大三文魚", "qty": 1, "unit": "條", "price": 100}]} -
輸入:「氹仔旗艦(壽司吧) 赤貝4kg 大葉 6盒」 輸出:
{"customer": "氹仔旗艦", "items": [{"name": "赤貝", "qty": 4, "unit": "kg"}, {"name": "大葉", "qty": 6, "unit": "盒"}]} -
輸入:「英皇鮮味王 大三文魚2條90 2L甜虾1箱,275」 輸出:兩個商品項目,total: 365
護欄
- 不修改原始對話內容,僅做結構化提取
- 不猜測缺失的價格,缺失就標 null
- 不自動下單或發送訂單,僅做分析
- 商品名稱以原文為準,不做過度標準化
- 涉及金額時必須精確,不做四捨五入