balibabu commited on
Commit
b25a0c6
·
1 Parent(s): 4c076a1

feat: modify DuckDuckGo's style #918 (#1485)

Browse files

### What problem does this PR solve?

feat: modify DuckDuckGo's style #918
### Type of change


- [x] New Feature (non-breaking change which adds functionality)

web/src/locales/en.ts CHANGED
@@ -598,7 +598,7 @@ The above is the content you need to summarize.`,
598
  addItem: 'Add Item',
599
  nameRequiredMsg: 'Name is required',
600
  nameRepeatedMsg: 'The name cannot be repeated',
601
- keywordExtract: 'KeywordExtract',
602
  keywordExtractDescription: `This component is used to extract keywords from user's question. Top N specifies the number of keywords you need to extract.`,
603
  baidu: 'Baidu',
604
  baiduDescription: `This component is used to get search result from www.baidu.com. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adopt.`,
 
598
  addItem: 'Add Item',
599
  nameRequiredMsg: 'Name is required',
600
  nameRepeatedMsg: 'The name cannot be repeated',
601
+ keywordExtract: 'Keyword',
602
  keywordExtractDescription: `This component is used to extract keywords from user's question. Top N specifies the number of keywords you need to extract.`,
603
  baidu: 'Baidu',
604
  baiduDescription: `This component is used to get search result from www.baidu.com. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adopt.`,
web/src/pages/flow/canvas/node/index.tsx CHANGED
@@ -11,6 +11,8 @@ import NodeDropdown from './dropdown';
11
  import styles from './index.less';
12
  import NodePopover from './popover';
13
 
 
 
14
  export function RagNode({
15
  id,
16
  data,
@@ -47,20 +49,29 @@ export function RagNode({
47
  <Flex
48
  vertical
49
  align="center"
50
- justify={'center'}
51
- gap={data.label === Operator.RewriteQuestion ? 0 : 6}
52
  >
53
- <OperatorIcon
54
- name={data.label as Operator}
55
- fontSize={style?.iconFontSize ?? 24}
56
- ></OperatorIcon>
57
- <span
58
- className={styles.type}
59
- style={{ fontSize: style?.fontSize ?? 14 }}
60
- >
61
- {t(lowerFirst(data.label))}
62
- </span>
63
- <NodeDropdown id={id}></NodeDropdown>
 
 
 
 
 
 
 
 
 
64
  </Flex>
65
 
66
  <section className={styles.bottomBox}>
 
11
  import styles from './index.less';
12
  import NodePopover from './popover';
13
 
14
+ const ZeroGapOperators = [Operator.RewriteQuestion, Operator.KeywordExtract];
15
+
16
  export function RagNode({
17
  id,
18
  data,
 
49
  <Flex
50
  vertical
51
  align="center"
52
+ justify={'space-around'}
53
+ gap={ZeroGapOperators.some((x) => x === data.label) ? 0 : 6}
54
  >
55
+ <Flex flex={1} justify="center" align="center">
56
+ <OperatorIcon
57
+ name={data.label as Operator}
58
+ fontSize={style?.iconFontSize ?? 24}
59
+ width={style?.iconWidth}
60
+ ></OperatorIcon>
61
+ </Flex>
62
+
63
+ <Flex flex={1}>
64
+ <span
65
+ className={styles.type}
66
+ style={{ fontSize: style?.fontSize ?? 14 }}
67
+ >
68
+ {t(lowerFirst(data.label))}
69
+ </span>
70
+ </Flex>
71
+ <Flex flex={1}>
72
+ {' '}
73
+ <NodeDropdown id={id}></NodeDropdown>
74
+ </Flex>
75
  </Flex>
76
 
77
  <section className={styles.bottomBox}>
web/src/pages/flow/canvas/node/relevant-node.tsx CHANGED
@@ -47,18 +47,24 @@ export function RelevantNode({ id, data, selected }: NodeProps<NodeData>) {
47
  ></Handle>
48
  <CategorizeHandle top={20} right={6} text={'yes'}></CategorizeHandle>
49
  <CategorizeHandle top={80} right={6} text={'no'}></CategorizeHandle>
50
- <Flex vertical align="center" justify="center">
51
- <OperatorIcon
52
- name={data.label as Operator}
53
- fontSize={style.iconFontSize}
54
- ></OperatorIcon>
55
- <span
56
- className={styles.type}
57
- style={{ fontSize: style.fontSize ?? 14 }}
58
- >
59
- {t(lowerFirst(data.label))}
60
- </span>
61
- <NodeDropdown id={id}></NodeDropdown>
 
 
 
 
 
 
62
  </Flex>
63
  <section className={styles.bottomBox}>
64
  <div className={styles.nodeName}>{data.name}</div>
 
47
  ></Handle>
48
  <CategorizeHandle top={20} right={6} text={'yes'}></CategorizeHandle>
49
  <CategorizeHandle top={80} right={6} text={'no'}></CategorizeHandle>
50
+ <Flex vertical align="center" justify="center" gap={0}>
51
+ <Flex flex={1}>
52
+ <OperatorIcon
53
+ name={data.label as Operator}
54
+ fontSize={style.iconFontSize}
55
+ ></OperatorIcon>
56
+ </Flex>
57
+ <Flex flex={1}>
58
+ <span
59
+ className={styles.type}
60
+ style={{ fontSize: style.fontSize ?? 14 }}
61
+ >
62
+ {t(lowerFirst(data.label))}
63
+ </span>
64
+ </Flex>
65
+ <Flex flex={1}>
66
+ <NodeDropdown id={id}></NodeDropdown>
67
+ </Flex>
68
  </Flex>
69
  <section className={styles.bottomBox}>
70
  <div className={styles.nodeName}>{data.name}</div>
web/src/pages/flow/constant.tsx CHANGED
@@ -43,12 +43,10 @@ export const operatorIconMap = {
43
 
44
  export const operatorMap = {
45
  [Operator.Retrieval]: {
46
- description: 'This is where the flow begin',
47
  backgroundColor: '#cad6e0',
48
  color: '#385974',
49
  },
50
  [Operator.Generate]: {
51
- description: 'Generate description',
52
  backgroundColor: '#ebd6d6',
53
  width: 150,
54
  height: 150,
@@ -57,27 +55,21 @@ export const operatorMap = {
57
  color: '#996464',
58
  },
59
  [Operator.Answer]: {
60
- description:
61
- 'This component is used as an interface between bot and human. It receives input of user and display the result of the computation of the bot.',
62
  backgroundColor: '#f4816d',
63
  color: 'white',
64
  },
65
  [Operator.Begin]: {
66
- description: 'Begin description',
67
  backgroundColor: '#4f51d6',
68
  },
69
  [Operator.Categorize]: {
70
- description: 'Categorize description',
71
  backgroundColor: '#ffebcd',
72
  color: '#cc8a26',
73
  },
74
  [Operator.Message]: {
75
- description: 'Message description',
76
  backgroundColor: '#c5ddc7',
77
  color: 'green',
78
  },
79
  [Operator.Relevant]: {
80
- description: 'BranchesOutlined description',
81
  backgroundColor: '#9fd94d',
82
  color: 'white',
83
  width: 70,
@@ -86,7 +78,6 @@ export const operatorMap = {
86
  iconFontSize: 16,
87
  },
88
  [Operator.RewriteQuestion]: {
89
- description: 'RewriteQuestion description',
90
  backgroundColor: '#f8c7f8',
91
  color: 'white',
92
  width: 70,
@@ -94,48 +85,52 @@ export const operatorMap = {
94
  fontSize: 12,
95
  iconFontSize: 16,
96
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  };
98
 
99
  export const componentMenuList = [
100
  {
101
  name: Operator.Retrieval,
102
- description: operatorMap[Operator.Retrieval].description,
103
  },
104
  {
105
  name: Operator.Generate,
106
- description: operatorMap[Operator.Generate].description,
107
  },
108
  {
109
  name: Operator.Answer,
110
- description: operatorMap[Operator.Answer].description,
111
  },
112
  {
113
  name: Operator.Categorize,
114
- description: operatorMap[Operator.Categorize].description,
115
  },
116
  {
117
  name: Operator.Message,
118
- description: operatorMap[Operator.Message].description,
119
  },
120
  {
121
  name: Operator.Relevant,
122
- description: operatorMap[Operator.Relevant].description,
123
  },
124
  {
125
  name: Operator.RewriteQuestion,
126
- description: operatorMap[Operator.RewriteQuestion].description,
127
  },
128
  {
129
  name: Operator.KeywordExtract,
130
- description: operatorMap[Operator.Message].description,
131
  },
132
  {
133
  name: Operator.DuckDuckGo,
134
- description: operatorMap[Operator.Relevant].description,
135
  },
136
  {
137
  name: Operator.Baidu,
138
- description: operatorMap[Operator.RewriteQuestion].description,
139
  },
140
  ];
141
 
@@ -254,9 +249,13 @@ export const RestrictedUpstreamMap = {
254
  Operator.Categorize,
255
  Operator.Relevant,
256
  ],
257
- [Operator.KeywordExtract]: [Operator.Begin],
258
- [Operator.Baidu]: [Operator.Begin],
259
- [Operator.DuckDuckGo]: [Operator.Begin],
 
 
 
 
260
  };
261
 
262
  export const NodeMap = {
@@ -268,4 +267,7 @@ export const NodeMap = {
268
  [Operator.Message]: 'ragNode',
269
  [Operator.Relevant]: 'relevantNode',
270
  [Operator.RewriteQuestion]: 'ragNode',
 
 
 
271
  };
 
43
 
44
  export const operatorMap = {
45
  [Operator.Retrieval]: {
 
46
  backgroundColor: '#cad6e0',
47
  color: '#385974',
48
  },
49
  [Operator.Generate]: {
 
50
  backgroundColor: '#ebd6d6',
51
  width: 150,
52
  height: 150,
 
55
  color: '#996464',
56
  },
57
  [Operator.Answer]: {
 
 
58
  backgroundColor: '#f4816d',
59
  color: 'white',
60
  },
61
  [Operator.Begin]: {
 
62
  backgroundColor: '#4f51d6',
63
  },
64
  [Operator.Categorize]: {
 
65
  backgroundColor: '#ffebcd',
66
  color: '#cc8a26',
67
  },
68
  [Operator.Message]: {
 
69
  backgroundColor: '#c5ddc7',
70
  color: 'green',
71
  },
72
  [Operator.Relevant]: {
 
73
  backgroundColor: '#9fd94d',
74
  color: 'white',
75
  width: 70,
 
78
  iconFontSize: 16,
79
  },
80
  [Operator.RewriteQuestion]: {
 
81
  backgroundColor: '#f8c7f8',
82
  color: 'white',
83
  width: 70,
 
85
  fontSize: 12,
86
  iconFontSize: 16,
87
  },
88
+ [Operator.KeywordExtract]: {
89
+ width: 70,
90
+ height: 70,
91
+ backgroundColor: '#0f0e0f',
92
+ color: '#e1dcdc',
93
+ fontSize: 12,
94
+ iconWidth: 16,
95
+ // iconFontSize: 16,
96
+ },
97
+ [Operator.DuckDuckGo]: {
98
+ backgroundColor: '#e7e389',
99
+ color: '#aea00c',
100
+ },
101
+ [Operator.Baidu]: {},
102
  };
103
 
104
  export const componentMenuList = [
105
  {
106
  name: Operator.Retrieval,
 
107
  },
108
  {
109
  name: Operator.Generate,
 
110
  },
111
  {
112
  name: Operator.Answer,
 
113
  },
114
  {
115
  name: Operator.Categorize,
 
116
  },
117
  {
118
  name: Operator.Message,
 
119
  },
120
  {
121
  name: Operator.Relevant,
 
122
  },
123
  {
124
  name: Operator.RewriteQuestion,
 
125
  },
126
  {
127
  name: Operator.KeywordExtract,
 
128
  },
129
  {
130
  name: Operator.DuckDuckGo,
 
131
  },
132
  {
133
  name: Operator.Baidu,
 
134
  },
135
  ];
136
 
 
249
  Operator.Categorize,
250
  Operator.Relevant,
251
  ],
252
+ [Operator.KeywordExtract]: [
253
+ Operator.Begin,
254
+ Operator.Message,
255
+ Operator.Relevant,
256
+ ],
257
+ [Operator.Baidu]: [Operator.Begin, Operator.Retrieval],
258
+ [Operator.DuckDuckGo]: [Operator.Begin, Operator.Retrieval],
259
  };
260
 
261
  export const NodeMap = {
 
267
  [Operator.Message]: 'ragNode',
268
  [Operator.Relevant]: 'relevantNode',
269
  [Operator.RewriteQuestion]: 'ragNode',
270
+ [Operator.KeywordExtract]: 'ragNode',
271
+ [Operator.DuckDuckGo]: 'ragNode',
272
+ [Operator.Baidu]: 'ragNode',
273
  };
web/src/pages/flow/operator-icon/index.tsx CHANGED
@@ -6,11 +6,14 @@ import styles from './index.less';
6
  interface IProps {
7
  name: Operator;
8
  fontSize?: number;
 
9
  }
10
 
11
- const OperatorIcon = ({ name, fontSize }: IProps) => {
12
  const Icon = operatorIconMap[name] || React.Fragment;
13
- return <Icon className={styles.icon} style={{ fontSize }}></Icon>;
 
 
14
  };
15
 
16
  export default OperatorIcon;
 
6
  interface IProps {
7
  name: Operator;
8
  fontSize?: number;
9
+ width?: number;
10
  }
11
 
12
+ const OperatorIcon = ({ name, fontSize, width }: IProps) => {
13
  const Icon = operatorIconMap[name] || React.Fragment;
14
+ return (
15
+ <Icon className={styles.icon} style={{ fontSize }} width={width}></Icon>
16
+ );
17
  };
18
 
19
  export default OperatorIcon;