mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 19:51:00 +00:00
(feature)(chat-sdk) add PLAIN_TEXT query mode (#1229)
This commit is contained in:
@@ -9,6 +9,7 @@ import React, { ReactNode, useState } from 'react';
|
|||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
queryId?: number;
|
queryId?: number;
|
||||||
|
queryMode?: string;
|
||||||
executeLoading: boolean;
|
executeLoading: boolean;
|
||||||
entitySwitchLoading: boolean;
|
entitySwitchLoading: boolean;
|
||||||
chartIndex: number;
|
chartIndex: number;
|
||||||
@@ -23,6 +24,7 @@ type Props = {
|
|||||||
|
|
||||||
const ExecuteItem: React.FC<Props> = ({
|
const ExecuteItem: React.FC<Props> = ({
|
||||||
queryId,
|
queryId,
|
||||||
|
queryMode,
|
||||||
executeLoading,
|
executeLoading,
|
||||||
entitySwitchLoading,
|
entitySwitchLoading,
|
||||||
chartIndex,
|
chartIndex,
|
||||||
@@ -54,6 +56,9 @@ const ExecuteItem: React.FC<Props> = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (executeLoading) {
|
if (executeLoading) {
|
||||||
|
if (queryMode === 'PLAIN_TEXT') {
|
||||||
|
return <Loading />;
|
||||||
|
}
|
||||||
return getNodeTip('数据查询中');
|
return getNodeTip('数据查询中');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,6 +78,10 @@ const ExecuteItem: React.FC<Props> = ({
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.queryMode === 'PLAIN_TEXT') {
|
||||||
|
return <>{data.textResult}</>;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={`${prefixCls}-title-bar`}>
|
<div className={`${prefixCls}-title-bar`}>
|
||||||
|
|||||||
@@ -121,7 +121,6 @@ const ParseTip: React.FC<Props> = ({
|
|||||||
|
|
||||||
const getTipNode = () => {
|
const getTipNode = () => {
|
||||||
const dimensionItems = dimensions?.filter(item => item.type === 'DIMENSION');
|
const dimensionItems = dimensions?.filter(item => item.type === 'DIMENSION');
|
||||||
|
|
||||||
const itemValueClass = `${prefixCls}-tip-item-value`;
|
const itemValueClass = `${prefixCls}-tip-item-value`;
|
||||||
const entityId = dimensionFilters?.length > 0 ? dimensionFilters[0].value : undefined;
|
const entityId = dimensionFilters?.length > 0 ? dimensionFilters[0].value : undefined;
|
||||||
const entityAlias = entity?.alias?.[0]?.split('.')?.[0];
|
const entityAlias = entity?.alias?.[0]?.split('.')?.[0];
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ const ChatItem: React.FC<Props> = ({
|
|||||||
const updateData = (res: Result<MsgDataType>) => {
|
const updateData = (res: Result<MsgDataType>) => {
|
||||||
let tip: string = '';
|
let tip: string = '';
|
||||||
let data: MsgDataType | undefined = undefined;
|
let data: MsgDataType | undefined = undefined;
|
||||||
const { queryColumns, queryResults, queryState, queryMode, response, chatContext } =
|
const { queryColumns, queryResults, queryState, queryMode, response, chatContext, textResult } =
|
||||||
res.data || {};
|
res.data || {};
|
||||||
if (res.code === 400 || res.code === 401 || res.code === 412) {
|
if (res.code === 400 || res.code === 401 || res.code === 412) {
|
||||||
tip = res.msg;
|
tip = res.msg;
|
||||||
@@ -94,7 +94,8 @@ const ChatItem: React.FC<Props> = ({
|
|||||||
tip = response && typeof response === 'string' ? response : SEARCH_EXCEPTION_TIP;
|
tip = response && typeof response === 'string' ? response : SEARCH_EXCEPTION_TIP;
|
||||||
} else if (
|
} else if (
|
||||||
(queryColumns && queryColumns.length > 0 && queryResults) ||
|
(queryColumns && queryColumns.length > 0 && queryResults) ||
|
||||||
queryMode === 'WEB_PAGE'
|
queryMode === 'WEB_PAGE' ||
|
||||||
|
queryMode === 'PLAIN_TEXT'
|
||||||
) {
|
) {
|
||||||
data = res.data;
|
data = res.data;
|
||||||
tip = '';
|
tip = '';
|
||||||
@@ -319,44 +320,43 @@ const ChatItem: React.FC<Props> = ({
|
|||||||
)}
|
)}
|
||||||
<div className={isMobile ? `${prefixCls}-mobile-msg-card` : `${prefixCls}-msg-card`}>
|
<div className={isMobile ? `${prefixCls}-mobile-msg-card` : `${prefixCls}-msg-card`}>
|
||||||
<div className={contentClass}>
|
<div className={contentClass}>
|
||||||
<ParseTip
|
{parseInfo?.queryMode !== 'PLAIN_TEXT' && (
|
||||||
isSimpleMode={isSimpleMode}
|
<ParseTip
|
||||||
parseLoading={parseLoading}
|
isSimpleMode={isSimpleMode}
|
||||||
parseInfoOptions={parseInfoOptions}
|
parseLoading={parseLoading}
|
||||||
parseTip={parseTip}
|
parseInfoOptions={parseInfoOptions}
|
||||||
currentParseInfo={parseInfo}
|
parseTip={parseTip}
|
||||||
agentId={agentId}
|
currentParseInfo={parseInfo}
|
||||||
dimensionFilters={dimensionFilters}
|
agentId={agentId}
|
||||||
dateInfo={dateInfo}
|
dimensionFilters={dimensionFilters}
|
||||||
entityInfo={entityInfo}
|
dateInfo={dateInfo}
|
||||||
integrateSystem={integrateSystem}
|
entityInfo={entityInfo}
|
||||||
parseTimeCost={parseTimeCost?.parseTime}
|
integrateSystem={integrateSystem}
|
||||||
isDeveloper={isDeveloper}
|
parseTimeCost={parseTimeCost?.parseTime}
|
||||||
onSelectParseInfo={onSelectParseInfo}
|
isDeveloper={isDeveloper}
|
||||||
onSwitchEntity={onSwitchEntity}
|
onSelectParseInfo={onSelectParseInfo}
|
||||||
onFiltersChange={onFiltersChange}
|
onSwitchEntity={onSwitchEntity}
|
||||||
onDateInfoChange={onDateInfoChange}
|
onFiltersChange={onFiltersChange}
|
||||||
onRefresh={onRefresh}
|
onDateInfoChange={onDateInfoChange}
|
||||||
/>
|
onRefresh={onRefresh}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
{executeMode && (
|
{executeMode && (
|
||||||
<>
|
<>
|
||||||
{!isMobile &&
|
{!isMobile && parseInfo?.sqlInfo && isDeveloper && !isSimpleMode && (
|
||||||
parseInfo?.sqlInfo &&
|
<SqlItem
|
||||||
isDeveloper &&
|
llmReq={llmReq}
|
||||||
integrateSystem !== 'c2' &&
|
llmResp={llmResp}
|
||||||
!isSimpleMode && (
|
integrateSystem={integrateSystem}
|
||||||
<SqlItem
|
queryMode={parseInfo.queryMode}
|
||||||
llmReq={llmReq}
|
sqlInfo={parseInfo.sqlInfo}
|
||||||
llmResp={llmResp}
|
sqlTimeCost={parseTimeCost?.sqlTime}
|
||||||
integrateSystem={integrateSystem}
|
/>
|
||||||
queryMode={parseInfo.queryMode}
|
)}
|
||||||
sqlInfo={parseInfo.sqlInfo}
|
|
||||||
sqlTimeCost={parseTimeCost?.sqlTime}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
<ExecuteItem
|
<ExecuteItem
|
||||||
isSimpleMode={isSimpleMode}
|
isSimpleMode={isSimpleMode}
|
||||||
queryId={parseInfo?.queryId}
|
queryId={parseInfo?.queryId}
|
||||||
|
queryMode={parseInfo?.queryMode}
|
||||||
executeLoading={executeLoading}
|
executeLoading={executeLoading}
|
||||||
entitySwitchLoading={entitySwitchLoading}
|
entitySwitchLoading={entitySwitchLoading}
|
||||||
executeTip={executeTip}
|
executeTip={executeTip}
|
||||||
@@ -370,17 +370,17 @@ const ChatItem: React.FC<Props> = ({
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{(parseTip !== '' || (executeMode && !executeLoading)) &&
|
{(parseTip !== '' || (executeMode && !executeLoading)) &&
|
||||||
integrateSystem !== 'c2' &&
|
!isSimpleMode &&
|
||||||
!isSimpleMode && (
|
parseInfo?.queryMode !== 'PLAIN_TEXT' && (
|
||||||
<SimilarQuestionItem
|
<SimilarQuestionItem
|
||||||
queryId={parseInfo?.queryId}
|
queryId={parseInfo?.queryId}
|
||||||
defaultExpanded={parseTip !== '' || executeTip !== '' || integrateSystem === 'wiki'}
|
defaultExpanded={parseTip !== '' || executeTip !== ''}
|
||||||
similarQueries={data?.similarQueries}
|
similarQueries={data?.similarQueries}
|
||||||
onSelectQuestion={onSelectQuestion}
|
onSelectQuestion={onSelectQuestion}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
{(parseTip !== '' || (executeMode && !executeLoading)) && integrateSystem !== 'c2' && (
|
{(parseTip !== '' || (executeMode && !executeLoading)) && (
|
||||||
<Tools queryId={parseInfo?.queryId || 0} scoreValue={score} />
|
<Tools queryId={parseInfo?.queryId || 0} scoreValue={score} />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user