diff --git a/web/src/hooks/logicHooks.ts b/web/src/hooks/logicHooks.ts
index c692a5fd97..36c5e79845 100644
--- a/web/src/hooks/logicHooks.ts
+++ b/web/src/hooks/logicHooks.ts
@@ -1,6 +1,7 @@
import { Authorization } from '@/constants/authorization';
import { LanguageTranslationMap } from '@/constants/common';
import { Pagination } from '@/interfaces/common';
+import { ResponseType } from '@/interfaces/database/base';
import { IAnswer } from '@/interfaces/database/chat';
import { IKnowledgeFile } from '@/interfaces/database/knowledge';
import { IChangeParserConfigRequestBody } from '@/interfaces/request/document';
@@ -153,7 +154,9 @@ export const useSendMessageWithSse = (
const [done, setDone] = useState(true);
const send = useCallback(
- async (body: any) => {
+ async (
+ body: any,
+ ): Promise<{ response: Response; data: ResponseType } | undefined> => {
try {
setDone(false);
const response = await fetch(url, {
@@ -165,6 +168,8 @@ export const useSendMessageWithSse = (
body: JSON.stringify(body),
});
+ const res = response.clone().json();
+
const reader = response?.body
?.pipeThrough(new TextDecoderStream())
.pipeThrough(new EventSourceParserStream())
@@ -192,7 +197,7 @@ export const useSendMessageWithSse = (
}
console.info('done?');
setDone(true);
- return response;
+ return { data: await res, response };
} catch (e) {
setDone(true);
console.warn(e);
diff --git a/web/src/interfaces/database/base.ts b/web/src/interfaces/database/base.ts
new file mode 100644
index 0000000000..f4df723796
--- /dev/null
+++ b/web/src/interfaces/database/base.ts
@@ -0,0 +1,6 @@
+export interface ResponseType {
+ retcode: number;
+ data: any;
+ retmsg: string;
+ status: number;
+}
diff --git a/web/src/pages/flow/canvas/index.tsx b/web/src/pages/flow/canvas/index.tsx
index 0d11aa8b9a..c6be931780 100644
--- a/web/src/pages/flow/canvas/index.tsx
+++ b/web/src/pages/flow/canvas/index.tsx
@@ -19,6 +19,7 @@ import {
} from '../hooks';
import { TextUpdaterNode } from './node';
+import ChatDrawer from '../chat/drawer';
import styles from './index.less';
const nodeTypes = { textUpdater: TextUpdaterNode };
@@ -29,9 +30,11 @@ const edgeTypes = {
interface IProps {
sideWidth: number;
+ chatDrawerVisible: boolean;
+ hideChatDrawer(): void;
}
-function FlowCanvas({ sideWidth }: IProps) {
+function FlowCanvas({ sideWidth, chatDrawerVisible, hideChatDrawer }: IProps) {
const {
nodes,
edges,
@@ -99,6 +102,10 @@ function FlowCanvas({ sideWidth }: IProps) {
visible={drawerVisible}
hideModal={hideDrawer}
>
+
);
}
diff --git a/web/src/pages/flow/chat/box.tsx b/web/src/pages/flow/chat/box.tsx
index cc3ed401b2..89c3933033 100644
--- a/web/src/pages/flow/chat/box.tsx
+++ b/web/src/pages/flow/chat/box.tsx
@@ -82,6 +82,7 @@ const FlowChatBox = () => {
onClose={hideModal}
open={visible}
width={'50vw'}
+ mask={false}
>
) => {
open={visible}
getContainer={false}
width={470}
+ mask={false}
// zIndex={10000}
>
diff --git a/web/src/pages/flow/chat/hooks.ts b/web/src/pages/flow/chat/hooks.ts
index 07c1344cfd..49027b5670 100644
--- a/web/src/pages/flow/chat/hooks.ts
+++ b/web/src/pages/flow/chat/hooks.ts
@@ -8,10 +8,13 @@ import {
import { IAnswer } from '@/interfaces/database/chat';
import { IMessage } from '@/pages/chat/interface';
import api from '@/utils/api';
+import { message } from 'antd';
import { useCallback, useEffect, useState } from 'react';
import { useParams } from 'umi';
import { v4 as uuid } from 'uuid';
+const antMessage = message;
+
export const useSelectCurrentMessages = () => {
const { id: id } = useParams();
const [currentMessages, setCurrentMessages] = useState([]);
@@ -107,9 +110,11 @@ export const useSendMessage = (
if (message) {
params.message = message;
}
- const res: Response | undefined = await send(params);
+ const res = await send(params);
+
+ if (res?.response.status !== 200 || res?.data?.retcode !== 0) {
+ antMessage.error(res?.data?.retmsg);
- if (res?.status !== 200) {
// cancel loading
setValue(message);
removeLatestMessage();
diff --git a/web/src/pages/flow/header/index.tsx b/web/src/pages/flow/header/index.tsx
index 835bca4b4c..40b55b213e 100644
--- a/web/src/pages/flow/header/index.tsx
+++ b/web/src/pages/flow/header/index.tsx
@@ -1,21 +1,19 @@
import { Button, Flex, Space } from 'antd';
-import { useSetModalState } from '@/hooks/commonHooks';
import { useFetchFlow } from '@/hooks/flow-hooks';
import { ArrowLeftOutlined } from '@ant-design/icons';
import { Link } from 'umi';
-import ChatDrawer from '../chat/drawer';
-import { useRunGraph, useSaveGraph } from '../hooks';
+import { useSaveGraph } from '../hooks';
+
import styles from './index.less';
-const FlowHeader = () => {
+interface IProps {
+ showChatDrawer(): void;
+}
+
+const FlowHeader = ({ showChatDrawer }: IProps) => {
const { saveGraph } = useSaveGraph();
- const { runGraph } = useRunGraph();
- const {
- visible: chatDrawerVisible,
- hideModal: hideChatDrawer,
- showModal: showChatDrawer,
- } = useSetModalState();
+
const { data } = useFetchFlow();
return (
@@ -41,10 +39,6 @@ const FlowHeader = () => {
-
>
);
};
diff --git a/web/src/pages/flow/hooks.ts b/web/src/pages/flow/hooks.ts
index 5cf023ca8b..a0f79d087d 100644
--- a/web/src/pages/flow/hooks.ts
+++ b/web/src/pages/flow/hooks.ts
@@ -2,7 +2,6 @@ import { useSetModalState } from '@/hooks/commonHooks';
import {
useFetchFlow,
useFetchFlowTemplates,
- useRunFlow,
useSetFlow,
} from '@/hooks/flow-hooks';
import { useFetchLlmList } from '@/hooks/llmHooks';
@@ -216,19 +215,3 @@ export const useFetchDataOnMount = () => {
export const useFlowIsFetching = () => {
return useIsFetching({ queryKey: ['flowDetail'] }) > 0;
};
-
-export const useRunGraph = () => {
- const { data } = useFetchFlow();
- const { runFlow } = useRunFlow();
- const { id } = useParams();
- const { nodes, edges } = useGraphStore((state) => state);
- const runGraph = useCallback(() => {
- const dslComponents = buildDslComponentsByGraph(nodes, edges);
- runFlow({
- id: id!!,
- dsl: { ...data.dsl, components: dslComponents },
- });
- }, [nodes, edges, runFlow, id, data]);
-
- return { runGraph };
-};
diff --git a/web/src/pages/flow/index.tsx b/web/src/pages/flow/index.tsx
index 9bd1a1b052..86295b570c 100644
--- a/web/src/pages/flow/index.tsx
+++ b/web/src/pages/flow/index.tsx
@@ -1,3 +1,4 @@
+import { useSetModalState } from '@/hooks/commonHooks';
import { Layout } from 'antd';
import { useState } from 'react';
import { ReactFlowProvider } from 'reactflow';
@@ -10,6 +11,11 @@ const { Content } = Layout;
function RagFlow() {
const [collapsed, setCollapsed] = useState(false);
+ const {
+ visible: chatDrawerVisible,
+ hideModal: hideChatDrawer,
+ showModal: showChatDrawer,
+ } = useSetModalState();
useFetchDataOnMount();
@@ -18,9 +24,13 @@ function RagFlow() {
-
+
-
+
diff --git a/web/src/utils/request.ts b/web/src/utils/request.ts
index 2653b65809..89a3b505ca 100644
--- a/web/src/utils/request.ts
+++ b/web/src/utils/request.ts
@@ -1,4 +1,5 @@
import { Authorization } from '@/constants/authorization';
+import { ResponseType } from '@/interfaces/database/base';
import i18n from '@/locales/config';
import authorizationUtil, { getAuthorization } from '@/utils/authorizationUtil';
import { message, notification } from 'antd';
@@ -42,12 +43,6 @@ type ResultCode =
| 503
| 504;
-interface ResponseType {
- retcode: number;
- data: any;
- retmsg: string;
- status: number;
-}
const errorHandler = (error: {
response: Response;
message: string;