From ab65b6032d281f82d0d4ce52c0b4f3ef05a775ca Mon Sep 17 00:00:00 2001 From: ThearchyHelios Date: Wed, 21 Oct 2026 18:27:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=84=8F=E5=9B=BE=EF=BC=9A?= =?UTF-8?q?=E3=80=8C=E5=8F=98=E5=8C=96=E5=A4=A7=E4=B8=8D=E5=A4=A7=E3=80=8D?= =?UTF-8?q?=E3=80=8C=E5=8F=98=E5=8C=96=E5=A4=A7=E5=90=97=E3=80=8D=E5=BD=92?= =?UTF-8?q?=E5=88=B0=E6=B3=A2=E5=8A=A8=E4=B8=80=E7=B1=BB=EF=BC=88=E9=97=AE?= =?UTF-8?q?=E7=9A=84=E6=98=AF=E8=BF=99=E6=AC=A1=E5=8F=98=E5=8C=96=E5=A4=A7?= =?UTF-8?q?=E4=B8=8D=E5=A4=A7=EF=BC=8C=E4=B8=8D=E6=98=AF=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E4=BB=8E=E5=93=AA=E6=9D=A5=EF=BC=89=EF=BC=8C=E8=87=AA=E6=9F=A5?= =?UTF-8?q?=E9=82=A3=E6=9D=A1=E9=97=AE=E9=A2=98=E7=85=A7=E3=80=8C=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E9=97=AE=E7=9A=84=E6=98=AF=E6=B3=A2=E5=8A=A8=E5=A4=A7?= =?UTF-8?q?=E4=B8=8D=E5=A4=A7=E3=80=8D=E8=AF=B4=EF=BC=9B=E6=9D=A5=E6=BA=90?= =?UTF-8?q?=E4=B8=80=E7=B1=BB=E5=8F=AA=E7=95=99=E3=80=8C=E6=80=8E=E4=B9=88?= =?UTF-8?q?=E5=8F=98=E4=BA=86=20/=20=E6=9C=89=E4=BB=80=E4=B9=88=E5=8F=98?= =?UTF-8?q?=E5=8C=96=20/=20=E5=8F=98=E5=8C=96=E5=9C=A8=E5=93=AA=E3=80=8D?= =?UTF-8?q?=E3=80=82=E6=B5=8B=E8=AF=95=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=AD=A3?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/analysis/intent.py | 7 +++---- backend/tests/test_analysis_intent.py | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/app/analysis/intent.py b/backend/app/analysis/intent.py index f0f68458..e5055bb6 100644 --- a/backend/app/analysis/intent.py +++ b/backend/app/analysis/intent.py @@ -17,7 +17,7 @@ 不是数,不算 - 异常(anomaly):「是否异常 / 异常吗 / 正常吗 / 算不算异常 / 有没有异动 / 是不是暴跌了」这类问句,和「超出正常范围」。 「异常订单有多少」「有没有异常记录」「门店是否正常营业」问的是业务状态,「系统正常吗」「连接正常吗」问的是服务,都不算 -- 波动(fluctuation):「波动大吗 / 是不是正常波动 / 只是波动」。「列出价格波动超过 10% 的商品」是筛选,「网络波动大吗」问的 +- 波动(fluctuation):「波动大吗 / 变化大不大 / 是不是正常波动 / 只是波动」。「列出价格波动超过 10% 的商品」是筛选,「网络波动大吗」问的 是服务,都不算 - 趋势(trend):「趋势 / 走势」「持续上升 / 下降会持续吗 / 一直在降 / 连续三周下降 / 越来越少 / 是不是在涨 / 稳步增长」。 「活动会持续几天」「促销还在持续吗」不算(「持续」前后要有涨跌) @@ -93,8 +93,7 @@ _RULES: list[tuple[str, re.Pattern[str], bool]] = [ ("why", re.compile(rf"(?:什么|啥|哪些)原因.{{0,12}}?(?:{_CHANGE})"), False), ("source", re.compile(r"归因分析|做(?:个|一下|下)?归因|归因一下|(?:怎么|如何)归因|驱动(?:因素|力)" r"|(?:由|靠)(?:什么|哪些|哪个).{0,4}?驱动"), False), - ("source", re.compile(r"怎么变(?:了|的|化)|如何变化|有(?:什么|啥|哪些)变化" - r"|变化(?:在哪|如何|怎么样|大吗|大不大|情况)"), True), + ("source", re.compile(r"怎么变(?:了|的|化)|如何变化|有(?:什么|啥|哪些)变化|变化(?:在哪|如何|怎么样|情况)"), True), ("source", re.compile(r"(?:哪|谁|什么).{0,10}?(?:拖累|拉低|拉高|拉动|带动|推动|贡献)" r"|(?:拖累|拉动|带动|推动|贡献)了?.{0,6}?(?:最大|最多|最明显)"), False), ("source", re.compile(rf"对.{{0,12}}?(?:{_CHANGE}|增量|增幅|降幅).{{0,2}}?贡献"), False), @@ -111,7 +110,7 @@ _RULES: list[tuple[str, re.Pattern[str], bool]] = [ ("anomaly", re.compile(r"(?:超出|超过|偏离)了?(?:正常|常规|历史)的?(?:范围|水平|波动|区间)" r"|(?:有没有|是否有|是不是)异动|异动分析|异动吗"), True), ("anomaly", re.compile(r"(?:是否|是不是|算不算|有没有).{0,6}?(?:大幅|骤降|暴跌|激增|飙升|突增|突降|大涨|大跌)"), True), - ("fluctuation", re.compile(r"波动(?:大吗|大么|大不大|算大|有多大|正常吗|正不正常)" + ("fluctuation", re.compile(r"(?:波动|变化)(?:大吗|大么|大不大|算大|有多大)|波动(?:正常吗|正不正常)" r"|(?:正常|常规|一般|季节性|随机|自然)的?波动" r"|(?:只是|仅仅是|是不是|是否|算不算|属于|算是)(?:正常|常规)?的?波动"), True), ("trend", re.compile(r"趋势|走势"), False), diff --git a/backend/tests/test_analysis_intent.py b/backend/tests/test_analysis_intent.py index b08178a4..811ef234 100644 --- a/backend/tests/test_analysis_intent.py +++ b/backend/tests/test_analysis_intent.py @@ -41,6 +41,7 @@ POSITIVE = [ # 波动 ("最近销售额波动大吗", "fluctuation"), ("这是不是正常波动", "fluctuation"), + ("销售额同比变化大不大", "fluctuation"), # 趋势 ("线上销售额的趋势怎么样", "trend"), ("看一下近半年订单数的走势", "trend"),