diff --git a/web/src/assets/svg/switch.svg b/web/src/assets/svg/switch.svg new file mode 100644 index 000000000..df962f3ec --- /dev/null +++ b/web/src/assets/svg/switch.svg @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts index 0bd4aa914..a7b5970f5 100644 --- a/web/src/locales/en.ts +++ b/web/src/locales/en.ts @@ -806,6 +806,7 @@ The above is the content you need to summarize.`, host: 'Host', port: 'Port', password: 'Password', + switch: 'Switch', }, footer: { profile: 'All rights reserved @ React', diff --git a/web/src/locales/zh-traditional.ts b/web/src/locales/zh-traditional.ts index 8df77f654..dc264817a 100644 --- a/web/src/locales/zh-traditional.ts +++ b/web/src/locales/zh-traditional.ts @@ -764,6 +764,7 @@ export default { host: '主機', port: '端口', password: '密碼', + switch: '條件', }, footer: { profile: '“保留所有權利 @ react”', diff --git a/web/src/locales/zh.ts b/web/src/locales/zh.ts index 698ef1d8a..245006e47 100644 --- a/web/src/locales/zh.ts +++ b/web/src/locales/zh.ts @@ -782,6 +782,7 @@ export default { host: '主机', port: '端口', password: '密码', + switch: '条件', }, footer: { profile: 'All rights reserved @ React', diff --git a/web/src/pages/flow/constant.tsx b/web/src/pages/flow/constant.tsx index 29bd0dc4c..91cb89098 100644 --- a/web/src/pages/flow/constant.tsx +++ b/web/src/pages/flow/constant.tsx @@ -11,6 +11,7 @@ import { ReactComponent as GoogleIcon } from '@/assets/svg/google.svg'; import { ReactComponent as KeywordIcon } from '@/assets/svg/keyword.svg'; import { ReactComponent as PubMedIcon } from '@/assets/svg/pubmed.svg'; import { ReactComponent as QWeatherIcon } from '@/assets/svg/qweather.svg'; +import { ReactComponent as SwitchIcon } from '@/assets/svg/switch.svg'; import { ReactComponent as WikipediaIcon } from '@/assets/svg/wikipedia.svg'; import { variableEnabledFieldMap } from '@/constants/chat'; @@ -57,6 +58,7 @@ export enum Operator { BaiduFanyi = 'BaiduFanyi', QWeather = 'QWeather', ExeSQL = 'ExeSQL', + Switch = 'Switch', } export const operatorIconMap = { @@ -82,6 +84,7 @@ export const operatorIconMap = { [Operator.BaiduFanyi]: baiduFanyiIcon, [Operator.QWeather]: QWeatherIcon, [Operator.ExeSQL]: ExeSqlIcon, + [Operator.Switch]: SwitchIcon, }; export const operatorMap = { @@ -178,6 +181,7 @@ export const operatorMap = { [Operator.BaiduFanyi]: { backgroundColor: '#e5f2d3' }, [Operator.QWeather]: { backgroundColor: '#a4bbf3' }, [Operator.ExeSQL]: { backgroundColor: '#b9efe8' }, + [Operator.Switch]: { backgroundColor: '#dbaff6' }, }; export const componentMenuList = [ @@ -205,6 +209,9 @@ export const componentMenuList = [ { name: Operator.KeywordExtract, }, + { + name: Operator.Switch, + }, { name: Operator.DuckDuckGo, }, @@ -381,6 +388,8 @@ export const initialExeSqlValues = { top_n: 30, }; +export const initialSwitchValues = {}; + export const CategorizeAnchorPointPositions = [ { top: 1, right: 34 }, { top: 8, right: 18 }, @@ -450,6 +459,7 @@ export const RestrictedUpstreamMap = { [Operator.BaiduFanyi]: [Operator.Begin, Operator.Retrieval], [Operator.QWeather]: [Operator.Begin, Operator.Retrieval], [Operator.ExeSQL]: [Operator.Begin], + [Operator.Switch]: [Operator.Begin, Operator.Answer, Operator.Relevant], }; export const NodeMap = { @@ -475,6 +485,7 @@ export const NodeMap = { [Operator.BaiduFanyi]: 'ragNode', [Operator.QWeather]: 'ragNode', [Operator.ExeSQL]: 'ragNode', + [Operator.Switch]: 'logicNode', }; export const LanguageOptions = [ diff --git a/web/src/pages/flow/flow-drawer/index.tsx b/web/src/pages/flow/flow-drawer/index.tsx index cf90877ff..cf9da06d8 100644 --- a/web/src/pages/flow/flow-drawer/index.tsx +++ b/web/src/pages/flow/flow-drawer/index.tsx @@ -27,7 +27,9 @@ import QWeatherForm from '../qweather-form'; import RelevantForm from '../relevant-form'; import RetrievalForm from '../retrieval-form'; import RewriteQuestionForm from '../rewrite-question-form'; +import SwitchForm from '../switch-form'; import WikipediaForm from '../wikipedia-form'; + import styles from './index.less'; interface IProps { @@ -57,6 +59,7 @@ const FormMap = { [Operator.BaiduFanyi]: BaiduFanyiForm, [Operator.QWeather]: QWeatherForm, [Operator.ExeSQL]: ExeSQLForm, + [Operator.Switch]: SwitchForm, }; const EmptyContent = () =>