(feature)(chat-sdk) add PLAIN_TEXT query mode (#1229)

This commit is contained in:
williamhliu
2024-06-26 09:42:23 +08:00
committed by GitHub
parent 210163a82a
commit 82b2552d9d
3 changed files with 48 additions and 40 deletions

View File

@@ -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`}>

View File

@@ -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];

View File

@@ -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>