From ba224ac335a7b8f558a16e6854b5b40a18421498 Mon Sep 17 00:00:00 2001 From: williamhliu Date: Thu, 9 Nov 2023 20:27:18 +0800 Subject: [PATCH] (feature)(chat-sdk) modify recommend metric rule --- .../chat-sdk/src/components/ChatItem/ParseTip.tsx | 8 +++++--- .../chat-sdk/src/components/ChatMsg/index.tsx | 12 ++++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx b/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx index 11f4dee9f..21e4bcdac 100644 --- a/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx +++ b/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx @@ -117,7 +117,6 @@ const ParseTip: React.FC = ({ const getTipNode = () => { const dimensionItems = dimensions?.filter(item => item.type === 'DIMENSION'); - const metric = metrics?.[0]; const itemValueClass = `${prefixCls}-tip-item-value`; const entityId = dimensionFilters?.length > 0 ? dimensionFilters[0].value : undefined; @@ -153,11 +152,14 @@ const ParseTip: React.FC = ({ )} {!queryMode?.includes('ENTITY') && - metric && + metrics && + metrics.length > 0 && !dimensions?.some(item => item.bizName?.includes('_id')) && (
指标:
-
{metric.name}
+
+ {metrics.map(metric => metric.name).join('、')} +
)} {['METRIC_GROUPBY', 'METRIC_ORDERBY', 'ENTITY_DETAIL', 'LLM_S2QL'].includes( diff --git a/webapp/packages/chat-sdk/src/components/ChatMsg/index.tsx b/webapp/packages/chat-sdk/src/components/ChatMsg/index.tsx index bb6583e71..1a048fe58 100644 --- a/webapp/packages/chat-sdk/src/components/ChatMsg/index.tsx +++ b/webapp/packages/chat-sdk/src/components/ChatMsg/index.tsx @@ -205,7 +205,14 @@ const ChatMsg: React.FC = ({ queryId, data, chartIndex, triggerResize }) const existDrillDownDimension = queryMode.includes('METRIC') && !isText && !isEntityMode; - const isMultipleMetric = queryMode.includes('METRIC') && chatContext?.metrics?.length > 1; + const recommendMetrics = chatContext?.metrics?.filter(metric => + queryColumns.every(queryColumn => queryColumn.nameEn !== metric.bizName) + ); + + const isMultipleMetric = + (queryMode.includes('METRIC') || queryMode === 'LLM_S2QL') && + recommendMetrics?.length > 0 && + queryColumns?.filter(column => column.showType === 'NUMBER').length === 1; return (
@@ -222,7 +229,8 @@ const ChatMsg: React.FC = ({ queryId, data, chartIndex, triggerResize }) > {isMultipleMetric && (