Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -670,9 +670,15 @@ class TextToSQLSystem:
|
|
| 670 |
year_a, year_b = years_unique[0], years_unique[1]
|
| 671 |
# 嘗試抓買家名稱(英文/數字/符號),若沒有則不加 buyer 條件
|
| 672 |
buyer_name = None
|
| 673 |
-
|
| 674 |
-
|
| 675 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 676 |
|
| 677 |
# 判斷偏向金額或件數
|
| 678 |
amount_intent = any(kw in q_lower for kw in ["金額", "金钱", "amount", "營收", "業績", "營業額", "銷售額", "revenue"])
|
|
|
|
| 670 |
year_a, year_b = years_unique[0], years_unique[1]
|
| 671 |
# 嘗試抓買家名稱(英文/數字/符號),若沒有則不加 buyer 條件
|
| 672 |
buyer_name = None
|
| 673 |
+
# 1) 優先解析明確條件:BuyerName LIKE '%...%'
|
| 674 |
+
m_like = re.search(r"BuyerName\s+LIKE\s*'%([^']+)%'", question, re.IGNORECASE)
|
| 675 |
+
if m_like:
|
| 676 |
+
buyer_name = m_like.group(1).strip()
|
| 677 |
+
else:
|
| 678 |
+
# 2) 解析自然語言:避免 'BuyerName' 被誤判成 'buyer'
|
| 679 |
+
buyer_match = re.search(r"(?:買家|买家|客戶|客户|\bbuyer\b(?!name))\s*[::]?\s*([A-Za-z0-9&.\- ]+)", question, re.IGNORECASE)
|
| 680 |
+
if buyer_match:
|
| 681 |
+
buyer_name = buyer_match.group(1).strip()
|
| 682 |
|
| 683 |
# 判斷偏向金額或件數
|
| 684 |
amount_intent = any(kw in q_lower for kw in ["金額", "金钱", "amount", "營收", "業績", "營業額", "銷售額", "revenue"])
|