From f6bfe4d970c930a86e75581e06297afdb6956c31 Mon Sep 17 00:00:00 2001 From: balibabu Date: Thu, 26 Sep 2024 14:47:28 +0800 Subject: [PATCH] feat: Add component Concentrator #1739 (#2604) ### What problem does this PR solve? feat: Add component Concentrator #1739 ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- web/src/assets/svg/concentrator.svg | 7 +++++++ web/src/locales/en.ts | 5 ++++- web/src/locales/zh-traditional.ts | 3 +++ web/src/locales/zh.ts | 3 +++ web/src/pages/flow/concentrator-form/index.tsx | 17 +++++++++++++++++ web/src/pages/flow/constant.tsx | 18 ++++++++++++++++++ web/src/pages/flow/hooks.ts | 2 ++ 7 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 web/src/assets/svg/concentrator.svg create mode 100644 web/src/pages/flow/concentrator-form/index.tsx diff --git a/web/src/assets/svg/concentrator.svg b/web/src/assets/svg/concentrator.svg new file mode 100644 index 000000000..d1ecdfad1 --- /dev/null +++ b/web/src/assets/svg/concentrator.svg @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts index 103c5cec6..20c78f0b2 100644 --- a/web/src/locales/en.ts +++ b/web/src/locales/en.ts @@ -682,7 +682,7 @@ The above is the content you need to summarize.`, createFromTemplates: 'Create from templates', retrieval: 'Retrieval', generate: 'Generate', - answer: 'Answer', + answer: 'Interact', categorize: 'Categorize', relevant: 'Relevant', rewriteQuestion: 'Rewrite', @@ -964,6 +964,9 @@ The above is the content you need to summarize.`, symbols: 'Commodity List', quotes: ' Latest Market Quotes', }, + concentrator: 'Concentrator', + concentratorDescription: + 'This component can be used to connect multiple downstream components. It receives input from the upstream component and passes it to each downstream component.', }, footer: { profile: 'All rights reserved @ React', diff --git a/web/src/locales/zh-traditional.ts b/web/src/locales/zh-traditional.ts index 61dceaff4..698247279 100644 --- a/web/src/locales/zh-traditional.ts +++ b/web/src/locales/zh-traditional.ts @@ -916,6 +916,9 @@ export default { symbols: '品種列表', quotes: '最新行情', }, + concentrator: '集線器', + concentratorDescription: + '此組件可用於連接多個下游組件。它接收來自上游組件的輸入並將其傳遞給每個下游組件。 ', }, footer: { profile: '“保留所有權利 @ react”', diff --git a/web/src/locales/zh.ts b/web/src/locales/zh.ts index 3771c057b..30b06e7a4 100644 --- a/web/src/locales/zh.ts +++ b/web/src/locales/zh.ts @@ -934,6 +934,9 @@ export default { symbols: '品种列表', quotes: '最新行情', }, + concentrator: '集线器', + concentratorDescription: + '该组件可用于连接多个下游组件。它接收来自上游组件的输入并将其传递给每个下游组件。', }, footer: { profile: 'All rights reserved @ React', diff --git a/web/src/pages/flow/concentrator-form/index.tsx b/web/src/pages/flow/concentrator-form/index.tsx new file mode 100644 index 000000000..0e90760ca --- /dev/null +++ b/web/src/pages/flow/concentrator-form/index.tsx @@ -0,0 +1,17 @@ +import { Form } from 'antd'; +import { IOperatorForm } from '../interface'; + +const ConcentratorForm = ({ onValuesChange, form }: IOperatorForm) => { + return ( +
+ ); +}; + +export default ConcentratorForm; diff --git a/web/src/pages/flow/constant.tsx b/web/src/pages/flow/constant.tsx index 5f7cda17f..ecf212925 100644 --- a/web/src/pages/flow/constant.tsx +++ b/web/src/pages/flow/constant.tsx @@ -3,6 +3,7 @@ import { ReactComponent as ArXivIcon } from '@/assets/svg/arxiv.svg'; import { ReactComponent as baiduFanyiIcon } from '@/assets/svg/baidu-fanyi.svg'; import { ReactComponent as BaiduIcon } from '@/assets/svg/baidu.svg'; import { ReactComponent as BingIcon } from '@/assets/svg/bing.svg'; +import { ReactComponent as ConcentratorIcon } from '@/assets/svg/concentrator.svg'; import { ReactComponent as DeepLIcon } from '@/assets/svg/deepl.svg'; import { ReactComponent as DuckIcon } from '@/assets/svg/duck.svg'; import { ReactComponent as ExeSqlIcon } from '@/assets/svg/exesql.svg'; @@ -67,6 +68,7 @@ export enum Operator { AkShare = 'AkShare', YahooFinance = 'YahooFinance', Jin10 = 'Jin10', + Concentrator = 'Concentrator', } export const operatorIconMap = { @@ -97,6 +99,7 @@ export const operatorIconMap = { [Operator.AkShare]: AkShareIcon, [Operator.YahooFinance]: YahooFinanceIcon, [Operator.Jin10]: Jin10Icon, + [Operator.Concentrator]: ConcentratorIcon, }; export const operatorMap: Record< @@ -210,6 +213,14 @@ export const operatorMap: Record< [Operator.AkShare]: { backgroundColor: '#8085f5' }, [Operator.YahooFinance]: { backgroundColor: '#b474ff' }, [Operator.Jin10]: { backgroundColor: '#a0b9f8' }, + [Operator.Concentrator]: { + backgroundColor: '#32d2a3', + color: 'white', + width: 70, + height: 70, + fontSize: 10, + iconFontSize: 16, + }, }; export const componentMenuList = [ @@ -240,6 +251,9 @@ export const componentMenuList = [ { name: Operator.Switch, }, + { + name: Operator.Concentrator, + }, { name: Operator.DuckDuckGo, }, @@ -451,6 +465,8 @@ export const initialJin10Values = { filter: '', }; +export const initialConcentratorValues = {}; + export const CategorizeAnchorPointPositions = [ { top: 1, right: 34 }, { top: 8, right: 18 }, @@ -525,6 +541,7 @@ export const RestrictedUpstreamMap = { [Operator.AkShare]: [Operator.Begin], [Operator.YahooFinance]: [Operator.Begin], [Operator.Jin10]: [Operator.Begin], + [Operator.Concentrator]: [Operator.Begin], }; export const NodeMap = { @@ -551,6 +568,7 @@ export const NodeMap = { [Operator.QWeather]: 'ragNode', [Operator.ExeSQL]: 'ragNode', [Operator.Switch]: 'categorizeNode', + [Operator.Concentrator]: 'logicNode', [Operator.WenCai]: 'ragNode', [Operator.AkShare]: 'ragNode', [Operator.YahooFinance]: 'ragNode', diff --git a/web/src/pages/flow/hooks.ts b/web/src/pages/flow/hooks.ts index 318b7b6a7..41421537d 100644 --- a/web/src/pages/flow/hooks.ts +++ b/web/src/pages/flow/hooks.ts @@ -38,6 +38,7 @@ import { initialBeginValues, initialBingValues, initialCategorizeValues, + initialConcentratorValues, initialDeepLValues, initialDuckValues, initialExeSqlValues, @@ -121,6 +122,7 @@ export const useInitializeOperatorParams = () => { [Operator.AkShare]: initialAkShareValues, [Operator.YahooFinance]: initialYahooFinanceValues, [Operator.Jin10]: initialJin10Values, + [Operator.Concentrator]: initialConcentratorValues, }; }, [llmId]);