diff --git a/web/src/assets/svg/baidu.svg b/web/src/assets/svg/baidu.svg
new file mode 100644
index 000000000..9e18c5284
--- /dev/null
+++ b/web/src/assets/svg/baidu.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/web/src/assets/svg/duck.svg b/web/src/assets/svg/duck.svg
new file mode 100644
index 000000000..3e4a07677
--- /dev/null
+++ b/web/src/assets/svg/duck.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/web/src/assets/svg/keyword.svg b/web/src/assets/svg/keyword.svg
new file mode 100644
index 000000000..0ab63a101
--- /dev/null
+++ b/web/src/assets/svg/keyword.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/web/src/pages/flow/constant.tsx b/web/src/pages/flow/constant.tsx
index 68629d4d8..4da80de48 100644
--- a/web/src/pages/flow/constant.tsx
+++ b/web/src/pages/flow/constant.tsx
@@ -1,3 +1,6 @@
+import { ReactComponent as BaiduIcon } from '@/assets/svg/baidu.svg';
+import { ReactComponent as DuckIcon } from '@/assets/svg/duck.svg';
+import { ReactComponent as KeywordIcon } from '@/assets/svg/keyword.svg';
import { variableEnabledFieldMap } from '@/constants/chat';
import {
BranchesOutlined,
@@ -19,6 +22,9 @@ export enum Operator {
Message = 'Message',
Relevant = 'Relevant',
RewriteQuestion = 'RewriteQuestion',
+ KeywordExtract = 'KeywordExtract',
+ Baidu = 'Baidu',
+ DuckDuckGo = 'DuckDuckGo',
}
export const operatorIconMap = {
@@ -30,6 +36,9 @@ export const operatorIconMap = {
[Operator.Message]: MessageOutlined,
[Operator.Relevant]: BranchesOutlined,
[Operator.RewriteQuestion]: FormOutlined,
+ [Operator.KeywordExtract]: KeywordIcon,
+ [Operator.DuckDuckGo]: DuckIcon,
+ [Operator.Baidu]: BaiduIcon,
};
export const operatorMap = {
@@ -116,6 +125,18 @@ export const componentMenuList = [
name: Operator.RewriteQuestion,
description: operatorMap[Operator.RewriteQuestion].description,
},
+ // {
+ // name: Operator.KeywordExtract,
+ // description: operatorMap[Operator.Message].description,
+ // },
+ // {
+ // name: Operator.DuckDuckGo,
+ // description: operatorMap[Operator.Relevant].description,
+ // },
+ // {
+ // name: Operator.Baidu,
+ // description: operatorMap[Operator.RewriteQuestion].description,
+ // },
];
export const initialRetrievalValues = {
@@ -200,11 +221,21 @@ export const CategorizeAnchorPointPositions = [
// key is the source of the edge, value is the target of the edge
// no connection lines are allowed between key and value
export const RestrictedUpstreamMap = {
- [Operator.Begin]: [],
- [Operator.Categorize]: [Operator.Begin, Operator.Categorize, Operator.Answer],
- [Operator.Answer]: [Operator.Begin, Operator.Answer, Operator.Message],
- [Operator.Retrieval]: [Operator.Begin, Operator.Relevant],
- [Operator.Generate]: [Operator.Begin],
+ [Operator.Begin]: [Operator.Relevant],
+ [Operator.Categorize]: [
+ Operator.Begin,
+ Operator.Categorize,
+ Operator.Answer,
+ Operator.Relevant,
+ ],
+ [Operator.Answer]: [
+ Operator.Begin,
+ Operator.Answer,
+ Operator.Message,
+ Operator.Relevant,
+ ],
+ [Operator.Retrieval]: [Operator.Begin, Operator.Retrieval],
+ [Operator.Generate]: [Operator.Begin, Operator.Relevant],
[Operator.Message]: [
Operator.Begin,
Operator.Message,
@@ -212,14 +243,16 @@ export const RestrictedUpstreamMap = {
Operator.Retrieval,
Operator.RewriteQuestion,
Operator.Categorize,
+ Operator.Relevant,
],
- [Operator.Relevant]: [Operator.Begin, Operator.Answer],
+ [Operator.Relevant]: [Operator.Begin, Operator.Answer, Operator.Relevant],
[Operator.RewriteQuestion]: [
Operator.Begin,
Operator.Message,
Operator.Generate,
Operator.RewriteQuestion,
Operator.Categorize,
+ Operator.Relevant,
],
};
diff --git a/web/src/pages/flow/flow-sider/index.tsx b/web/src/pages/flow/flow-sider/index.tsx
index 80731f8d3..d417c9832 100644
--- a/web/src/pages/flow/flow-sider/index.tsx
+++ b/web/src/pages/flow/flow-sider/index.tsx
@@ -1,8 +1,8 @@
import { useTranslate } from '@/hooks/commonHooks';
-import { Card, Flex, Layout, Space, Tooltip } from 'antd';
+import { Card, Divider, Flex, Layout, Tooltip } from 'antd';
import classNames from 'classnames';
import lowerFirst from 'lodash/lowerFirst';
-import { componentMenuList } from '../constant';
+import { Operator, componentMenuList } from '../constant';
import { useHandleDrag } from '../hooks';
import OperatorIcon from '../operator-icon';
import styles from './index.less';
@@ -29,24 +29,35 @@ const FlowSide = ({ setCollapsed, collapsed }: IProps) => {
{componentMenuList.map((x) => {
return (
-
-
-
+ <>
+ {x.name === Operator.DuckDuckGo && (
+
+ )}
+
+
-
-
-
+
+
+ >
);
})}
diff --git a/web/src/pages/flow/operator-icon/index.less b/web/src/pages/flow/operator-icon/index.less
index b6a992b05..a8746c13b 100644
--- a/web/src/pages/flow/operator-icon/index.less
+++ b/web/src/pages/flow/operator-icon/index.less
@@ -1,4 +1,6 @@
.icon {
color: rgb(59, 118, 244);
font-size: 24px;
+ max-width: 24px;
+ max-height: 24px;
}