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
  • 不自動下單或發送訂單,僅做分析
  • 商品名稱以原文為準,不做過度標準化
  • 涉及金額時必須精確,不做四捨五入