From 66ab8c55e13cade2b97607803e8ab9d230fcb6ea Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Wed, 12 Jun 2024 16:41:09 +0800
Subject: [PATCH 1/9] perf: vector generate
---
.../core/dataset/training/rebuildEmbedding.ts | 87 ++++++------
.../app/src/service/events/generateVector.ts | 129 ++++++++----------
2 files changed, 108 insertions(+), 108 deletions(-)
diff --git a/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts b/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts
index f33cea69c922..3e59e087b0a8 100644
--- a/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts
+++ b/projects/app/src/pages/api/core/dataset/training/rebuildEmbedding.ts
@@ -81,50 +81,61 @@ async function handler(
});
// get 10 init dataset.data
- const arr = new Array(10).fill(0);
+ const max = global.systemEnv?.vectorMaxProcess || 10;
+ const arr = new Array(max * 2).fill(0);
+
for await (const _ of arr) {
- await mongoSessionRun(async (session) => {
- const data = await MongoDatasetData.findOneAndUpdate(
- {
- teamId,
- datasetId,
- rebuilding: true
- },
- {
- $unset: {
- rebuilding: null
+ try {
+ const hasNext = await mongoSessionRun(async (session) => {
+ // get next dataset.data
+ const data = await MongoDatasetData.findOneAndUpdate(
+ {
+ rebuilding: true,
+ teamId,
+ datasetId
+ },
+ {
+ $unset: {
+ rebuilding: null
+ },
+ updateTime: new Date()
},
- updateTime: new Date()
- },
- {
- session
- }
- ).select({
- _id: 1,
- collectionId: 1
- });
-
- if (data) {
- await MongoDatasetTraining.create(
- [
- {
- teamId,
- tmbId,
- datasetId,
- collectionId: data.collectionId,
- billId,
- mode: TrainingModeEnum.chunk,
- model: vectorModel,
- q: '1',
- dataId: data._id
- }
- ],
{
session
}
- );
+ ).select({
+ _id: 1,
+ collectionId: 1
+ });
+
+ if (data) {
+ await MongoDatasetTraining.create(
+ [
+ {
+ teamId,
+ tmbId,
+ datasetId,
+ collectionId: data.collectionId,
+ billId,
+ mode: TrainingModeEnum.chunk,
+ model: vectorModel,
+ q: '1',
+ dataId: data._id
+ }
+ ],
+ {
+ session
+ }
+ );
+ }
+
+ return !!data;
+ });
+
+ if (!hasNext) {
+ break;
}
- });
+ } catch (error) {}
}
return {};
diff --git a/projects/app/src/service/events/generateVector.ts b/projects/app/src/service/events/generateVector.ts
index 87ba7994ca59..e72c51e872c8 100644
--- a/projects/app/src/service/events/generateVector.ts
+++ b/projects/app/src/service/events/generateVector.ts
@@ -158,27 +158,69 @@ const rebuildData = async ({
const deleteVectorIdList = mongoData.indexes.map((index) => index.dataId);
- const { tokens } = await mongoSessionRun(async (session) => {
- // update vector, update dataset.data rebuilding status, delete data from training
- const updateResult = await Promise.all(
- mongoData.indexes.map(async (index, i) => {
- const result = await insertDatasetDataVector({
- query: index.text,
- model: getVectorModel(trainingData.model),
- teamId: mongoData.teamId,
- datasetId: mongoData.datasetId,
- collectionId: mongoData.collectionId
- });
- mongoData.indexes[i].dataId = result.insertId;
- return result;
- })
- );
+ // Find next rebuilding data to insert training queue
+ await mongoSessionRun(async (session) => {
+ // get new mongoData insert to training
+ const newRebuildingData = await MongoDatasetData.findOneAndUpdate(
+ {
+ teamId: mongoData.teamId,
+ datasetId: mongoData.datasetId,
+ rebuilding: true
+ },
+ {
+ $unset: {
+ rebuilding: null
+ },
+ updateTime: new Date()
+ },
+ { session }
+ ).select({
+ _id: 1,
+ collectionId: 1
+ });
- // Ensure that the training data is deleted after the Mongo update is successful
+ if (newRebuildingData) {
+ await MongoDatasetTraining.create(
+ [
+ {
+ teamId: mongoData.teamId,
+ tmbId: trainingData.tmbId,
+ datasetId: mongoData.datasetId,
+ collectionId: newRebuildingData.collectionId,
+ billId: trainingData.billId,
+ mode: TrainingModeEnum.chunk,
+ model: trainingData.model,
+ q: '1',
+ dataId: newRebuildingData._id
+ }
+ ],
+ { session }
+ );
+ }
+ });
+
+ // update vector, update dataset_data rebuilding status, delete data from training
+ // 1. Insert new vector to dataset_data
+ const updateResult = await Promise.all(
+ mongoData.indexes.map(async (index, i) => {
+ const result = await insertDatasetDataVector({
+ query: index.text,
+ model: getVectorModel(trainingData.model),
+ teamId: mongoData.teamId,
+ datasetId: mongoData.datasetId,
+ collectionId: mongoData.collectionId
+ });
+ mongoData.indexes[i].dataId = result.insertId;
+ return result;
+ })
+ );
+ const { tokens } = await mongoSessionRun(async (session) => {
+ // 2. Ensure that the training data is deleted after the Mongo update is successful
await mongoData.save({ session });
+ // 3. Delete the training data
await trainingData.deleteOne({ session });
- // delete old vector
+ // 4. Delete old vector
await deleteDatasetDataVector({
teamId: mongoData.teamId,
idList: deleteVectorIdList
@@ -189,59 +231,6 @@ const rebuildData = async ({
};
});
- // find next data insert to training queue
- const arr = new Array(5).fill(0);
-
- for await (const _ of arr) {
- try {
- const hasNextData = await mongoSessionRun(async (session) => {
- // get new mongoData insert to training
- const newRebuildingData = await MongoDatasetData.findOneAndUpdate(
- {
- teamId: mongoData.teamId,
- datasetId: mongoData.datasetId,
- rebuilding: true
- },
- {
- $unset: {
- rebuilding: null
- },
- updateTime: new Date()
- },
- { session }
- ).select({
- _id: 1,
- collectionId: 1
- });
-
- if (newRebuildingData) {
- await MongoDatasetTraining.create(
- [
- {
- teamId: mongoData.teamId,
- tmbId: trainingData.tmbId,
- datasetId: mongoData.datasetId,
- collectionId: newRebuildingData.collectionId,
- billId: trainingData.billId,
- mode: TrainingModeEnum.chunk,
- model: trainingData.model,
- q: '1',
- dataId: newRebuildingData._id
- }
- ],
- { session }
- );
- }
-
- return !!newRebuildingData;
- });
-
- if (!hasNextData) {
- break;
- }
- } catch (error) {}
- }
-
return { tokens };
};
From 2ed3e68dbbe93bde9884f04e7565d6807fe534be Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Wed, 12 Jun 2024 20:03:43 +0800
Subject: [PATCH 2/9] perf: app ui
---
.../web/components/common/Icon/constants.ts | 2 ++
.../Icon/icons/core/app/type/simple.svg | 15 ++++++++
.../Icon/icons/core/app/type/workflow.svg | 18 ++++++++++
.../common/MyModal/EditFolderModal.tsx | 2 +-
.../web/components/common/MyTooltip/index.tsx | 4 ++-
.../common/Textarea/CodeEditor/index.tsx | 2 +-
.../common/Textarea/PromptEditor/index.tsx | 2 +-
packages/web/hooks/useConfirm.tsx | 4 ++-
packages/web/hooks/useEditTextarea.tsx | 4 ++-
projects/app/i18n/en/app.json | 4 +++
projects/app/i18n/zh/app.json | 4 +++
.../common/Modal/EditResourceModal.tsx | 2 +-
.../app/src/components/core/app/TypeTag.tsx | 35 +++++++++++++++++++
.../MemberManager/MemberListCard.tsx | 4 ++-
.../components/PermissionManage/index.tsx | 18 +++++-----
.../pages/app/list/component/CreateModal.tsx | 2 +-
.../app/src/pages/app/list/component/List.tsx | 6 +++-
17 files changed, 110 insertions(+), 18 deletions(-)
create mode 100644 packages/web/components/common/Icon/icons/core/app/type/simple.svg
create mode 100644 packages/web/components/common/Icon/icons/core/app/type/workflow.svg
create mode 100644 projects/app/src/components/core/app/TypeTag.tsx
diff --git a/packages/web/components/common/Icon/constants.ts b/packages/web/components/common/Icon/constants.ts
index 2f7a09872bd2..10414578e463 100644
--- a/packages/web/components/common/Icon/constants.ts
+++ b/packages/web/components/common/Icon/constants.ts
@@ -82,6 +82,8 @@ export const iconPaths = {
'core/app/simpleMode/whisper': () => import('./icons/core/app/simpleMode/whisper.svg'),
'core/app/toolCall': () => import('./icons/core/app/toolCall.svg'),
'core/app/ttsFill': () => import('./icons/core/app/ttsFill.svg'),
+ 'core/app/type/simple': () => import('./icons/core/app/type/simple.svg'),
+ 'core/app/type/workflow': () => import('./icons/core/app/type/workflow.svg'),
'core/app/variable/external': () => import('./icons/core/app/variable/external.svg'),
'core/app/variable/input': () => import('./icons/core/app/variable/input.svg'),
'core/app/variable/select': () => import('./icons/core/app/variable/select.svg'),
diff --git a/packages/web/components/common/Icon/icons/core/app/type/simple.svg b/packages/web/components/common/Icon/icons/core/app/type/simple.svg
new file mode 100644
index 000000000000..9d86e0d6aefe
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/core/app/type/simple.svg
@@ -0,0 +1,15 @@
+
\ No newline at end of file
diff --git a/packages/web/components/common/Icon/icons/core/app/type/workflow.svg b/packages/web/components/common/Icon/icons/core/app/type/workflow.svg
new file mode 100644
index 000000000000..af1483ae4101
--- /dev/null
+++ b/packages/web/components/common/Icon/icons/core/app/type/workflow.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/packages/web/components/common/MyModal/EditFolderModal.tsx b/packages/web/components/common/MyModal/EditFolderModal.tsx
index 8b461ace6da9..c368761284ed 100644
--- a/packages/web/components/common/MyModal/EditFolderModal.tsx
+++ b/packages/web/components/common/MyModal/EditFolderModal.tsx
@@ -81,7 +81,7 @@ const EditFolderModal = ({
-
diff --git a/packages/web/components/common/MyTooltip/index.tsx b/packages/web/components/common/MyTooltip/index.tsx
index a33e57639167..9df8451ace23 100644
--- a/packages/web/components/common/MyTooltip/index.tsx
+++ b/packages/web/components/common/MyTooltip/index.tsx
@@ -10,9 +10,11 @@ const MyTooltip = ({ children, forceShow = false, shouldWrapChildren = true, ...
return isPc || forceShow ? (
diff --git a/packages/web/components/common/Textarea/CodeEditor/index.tsx b/packages/web/components/common/Textarea/CodeEditor/index.tsx
index 5ab6a3d8c2bf..f9491f686d91 100644
--- a/packages/web/components/common/Textarea/CodeEditor/index.tsx
+++ b/packages/web/components/common/Textarea/CodeEditor/index.tsx
@@ -24,7 +24,7 @@ const CodeEditor = (props: Props) => {
-
+
{t('common.Confirm')}
diff --git a/packages/web/components/common/Textarea/PromptEditor/index.tsx b/packages/web/components/common/Textarea/PromptEditor/index.tsx
index 8d9125dc7c02..cd98d37690ca 100644
--- a/packages/web/components/common/Textarea/PromptEditor/index.tsx
+++ b/packages/web/components/common/Textarea/PromptEditor/index.tsx
@@ -78,7 +78,7 @@ const PromptEditor = ({
/>
-
+
{t('common.Confirm')}
diff --git a/packages/web/hooks/useConfirm.tsx b/packages/web/hooks/useConfirm.tsx
index fd169a0d25f2..9a0d6983064b 100644
--- a/packages/web/hooks/useConfirm.tsx
+++ b/packages/web/hooks/useConfirm.tsx
@@ -100,6 +100,7 @@ export const useConfirm = (props?: {
onClose();
typeof cancelCb.current === 'function' && cancelCb.current();
}}
+ px={5}
>
{closeText}
@@ -109,8 +110,9 @@ export const useConfirm = (props?: {
size={'sm'}
bg={bg ? bg : map.bg}
isDisabled={countDownAmount > 0}
- ml={4}
+ ml={3}
isLoading={isLoading || requesting}
+ px={5}
onClick={async () => {
setRequesting(true);
try {
diff --git a/packages/web/hooks/useEditTextarea.tsx b/packages/web/hooks/useEditTextarea.tsx
index 8d8adb503588..3056d9e279a8 100644
--- a/packages/web/hooks/useEditTextarea.tsx
+++ b/packages/web/hooks/useEditTextarea.tsx
@@ -115,7 +115,9 @@ export const useEditTextarea = ({
{closeBtnText}
)}
- {t('common.Confirm')}
+
+ {t('common.Confirm')}
+
),
diff --git a/projects/app/i18n/en/app.json b/projects/app/i18n/en/app.json
index 8353164932f5..b155db44fe67 100644
--- a/projects/app/i18n/en/app.json
+++ b/projects/app/i18n/en/app.json
@@ -54,5 +54,9 @@
},
"modules": {
"Title is required": "Module name cannot be empty"
+ },
+ "type": {
+ "Simple bot": "Simple bot",
+ "Workflow bot": "Workflow"
}
}
diff --git a/projects/app/i18n/zh/app.json b/projects/app/i18n/zh/app.json
index ae7eb64e667e..b12c0a676e56 100644
--- a/projects/app/i18n/zh/app.json
+++ b/projects/app/i18n/zh/app.json
@@ -53,5 +53,9 @@
},
"modules": {
"Title is required": "模块名不能为空"
+ },
+ "type": {
+ "Simple bot": "简易应用",
+ "Workflow bot": "工作流"
}
}
diff --git a/projects/app/src/components/common/Modal/EditResourceModal.tsx b/projects/app/src/components/common/Modal/EditResourceModal.tsx
index fe90bd82ad72..e70094fa87e3 100644
--- a/projects/app/src/components/common/Modal/EditResourceModal.tsx
+++ b/projects/app/src/components/common/Modal/EditResourceModal.tsx
@@ -103,7 +103,7 @@ const EditResourceModal = ({
-
+
{t('common.Confirm')}
diff --git a/projects/app/src/components/core/app/TypeTag.tsx b/projects/app/src/components/core/app/TypeTag.tsx
new file mode 100644
index 000000000000..288c978318e6
--- /dev/null
+++ b/projects/app/src/components/core/app/TypeTag.tsx
@@ -0,0 +1,35 @@
+import React, { useRef } from 'react';
+import { AppTypeEnum } from '@fastgpt/global/core/app/constants';
+import MyTag from '@fastgpt/web/components/common/Tag/index';
+import { useI18n } from '@/web/context/I18n';
+import MyIcon from '@fastgpt/web/components/common/Icon';
+import { Box } from '@chakra-ui/react';
+
+const AppTypeTag = ({ type }: { type: AppTypeEnum }) => {
+ const { appT } = useI18n();
+
+ const map = useRef({
+ [AppTypeEnum.simple]: {
+ label: appT('type.Simple bot'),
+ icon: 'core/app/type/simple'
+ },
+ [AppTypeEnum.advanced]: {
+ label: appT('type.Workflow bot'),
+ icon: 'core/app/type/workflow'
+ },
+ [AppTypeEnum.folder]: undefined
+ });
+
+ const data = map.current[type];
+
+ return data ? (
+
+
+
+ {data.label}
+
+
+ ) : null;
+};
+
+export default AppTypeTag;
diff --git a/projects/app/src/components/support/permission/MemberManager/MemberListCard.tsx b/projects/app/src/components/support/permission/MemberManager/MemberListCard.tsx
index 0e7e75ef6471..642431569abd 100644
--- a/projects/app/src/components/support/permission/MemberManager/MemberListCard.tsx
+++ b/projects/app/src/components/support/permission/MemberManager/MemberListCard.tsx
@@ -29,7 +29,9 @@ const MemberListCard = ({ tagStyle, ...props }: MemberListCardProps) => {
return (
- {member.name}
+
+ {member.name}
+
);
})}
diff --git a/projects/app/src/components/support/user/team/TeamManageModal/components/PermissionManage/index.tsx b/projects/app/src/components/support/user/team/TeamManageModal/components/PermissionManage/index.tsx
index 7f41fa25e4f8..bd74b02feaca 100644
--- a/projects/app/src/components/support/user/team/TeamManageModal/components/PermissionManage/index.tsx
+++ b/projects/app/src/components/support/user/team/TeamManageModal/components/PermissionManage/index.tsx
@@ -12,6 +12,7 @@ import { TeamModalContext } from '../../context';
import { TeamPermissionList } from '@fastgpt/global/support/permission/user/constant';
import dynamic from 'next/dynamic';
import MyBox from '@fastgpt/web/components/common/MyBox';
+import MyTag from '@fastgpt/web/components/common/Tag/index';
const AddManagerModal = dynamic(() => import('./AddManager'));
@@ -56,8 +57,8 @@ function PermissionManage() {
bgColor={'myGray.100'}
alignItems={'center'}
alignContent={'center'}
- mx={'6'}
px={'3'}
+ ml={3}
borderRadius={'sm'}
>
{TeamPermissionList['manage'].description}
@@ -78,19 +79,20 @@ function PermissionManage() {
)}
-
+
{members.map((member) => {
if (member.permission.hasManagePer && !member.permission.isOwner) {
return (
-
-
-
+
+
+
{member.memberName}
-
+
{userInfo?.team.role === 'owner' && (
)}
-
+
);
}
})}
diff --git a/projects/app/src/pages/app/list/component/CreateModal.tsx b/projects/app/src/pages/app/list/component/CreateModal.tsx
index fa8e22e64bb0..644c061dc62d 100644
--- a/projects/app/src/pages/app/list/component/CreateModal.tsx
+++ b/projects/app/src/pages/app/list/component/CreateModal.tsx
@@ -186,7 +186,7 @@ const CreateModal = ({ onClose }: { onClose: () => void }) => {
{t('common.Close')}
- onclickCreate(data))}>
+ onclickCreate(data))}>
{t('common.Confirm Create')}
diff --git a/projects/app/src/pages/app/list/component/List.tsx b/projects/app/src/pages/app/list/component/List.tsx
index 539d78fa7801..7e1179ae8c85 100644
--- a/projects/app/src/pages/app/list/component/List.tsx
+++ b/projects/app/src/pages/app/list/component/List.tsx
@@ -28,6 +28,7 @@ import {
postUpdateAppCollaborators
} from '@/web/core/app/api/collaborator';
import MyTooltip from '@fastgpt/web/components/common/MyTooltip';
+import AppTypeTag from '@/components/core/app/TypeTag';
const EditResourceModal = dynamic(() => import('@/components/common/Modal/EditResourceModal'));
const ConfigPerModal = dynamic(() => import('@/components/support/permission/ConfigPerModal'));
@@ -90,10 +91,12 @@ const ListItem = () => {
py={[4, 6]}
gridTemplateColumns={['1fr', 'repeat(2,1fr)', 'repeat(3,1fr)', 'repeat(4,1fr)']}
gridGap={5}
+ alignItems={'stretch'}
>
{myApps.map((app, index) => (
{
{
color={'myGray.600'}
/>
+
From eb6e65fabd443ef99823c8db0ec54e045f4b3e16 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Wed, 12 Jun 2024 20:07:35 +0800
Subject: [PATCH 3/9] perf: app ui
---
.../web/components/common/MyTooltip/index.tsx | 44 +++++++------------
1 file changed, 17 insertions(+), 27 deletions(-)
diff --git a/packages/web/components/common/MyTooltip/index.tsx b/packages/web/components/common/MyTooltip/index.tsx
index 9df8451ace23..059f1e4449e4 100644
--- a/packages/web/components/common/MyTooltip/index.tsx
+++ b/packages/web/components/common/MyTooltip/index.tsx
@@ -9,34 +9,24 @@ const MyTooltip = ({ children, forceShow = false, shouldWrapChildren = true, ...
const [isPc] = useMediaQuery('(min-width: 900px)');
return isPc || forceShow ? (
-
-
- {children}
-
-
+ {children}
+
) : (
<>{children}>
);
From fe6fcfac00b7c5b57b29038561c7103d6e5f4e57 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Wed, 12 Jun 2024 20:20:37 +0800
Subject: [PATCH 4/9] feat: abort session tip
---
packages/service/common/mongo/sessionRun.ts | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/packages/service/common/mongo/sessionRun.ts b/packages/service/common/mongo/sessionRun.ts
index 7c8d73de11f4..0a1d9fdfe95a 100644
--- a/packages/service/common/mongo/sessionRun.ts
+++ b/packages/service/common/mongo/sessionRun.ts
@@ -1,17 +1,24 @@
+import { addLog } from '../system/log';
import { connectionMongo, ClientSession } from './index';
export const mongoSessionRun = async (fn: (session: ClientSession) => Promise) => {
const session = await connectionMongo.startSession();
+ let committed = false;
try {
session.startTransaction();
const result = await fn(session);
await session.commitTransaction();
+ committed = true;
return result as T;
} catch (error) {
- await session.abortTransaction();
+ if (!committed) {
+ await session.abortTransaction();
+ } else {
+ addLog.warn('Un catch mongo session error', { error });
+ }
return Promise.reject(error);
} finally {
await session.endSession();
From 6a82b9182ba455bcb54c0e6983e7aa16ff93f416 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Wed, 12 Jun 2024 22:17:23 +0800
Subject: [PATCH 5/9] fix: parse node id error
---
.../zh-cn/docs/development/upgrading/484.md | 3 +-
.../core/workflow/Flow/hooks/useKeyboard.tsx | 29 ++++++++++---------
.../RenderInput/templates/Reference.tsx | 2 +-
3 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/docSite/content/zh-cn/docs/development/upgrading/484.md b/docSite/content/zh-cn/docs/development/upgrading/484.md
index 9a2592bd14da..0804968619b6 100644
--- a/docSite/content/zh-cn/docs/development/upgrading/484.md
+++ b/docSite/content/zh-cn/docs/development/upgrading/484.md
@@ -33,4 +33,5 @@ curl --location --request POST 'https://{{host}}/api/admin/init/484' \
4. 修复 - Debug 模式下,相同 source 和 target 内容,导致连线显示异常。
5. 修复 - 定时执行初始化错误。
6. 修复 - 应用调用传参异常。
-7. 调整组件库全局theme。
\ No newline at end of file
+7. 修复 - ctrl + cv 复杂节点时,nodeId错误。
+8. 调整组件库全局theme。
\ No newline at end of file
diff --git a/projects/app/src/components/core/workflow/Flow/hooks/useKeyboard.tsx b/projects/app/src/components/core/workflow/Flow/hooks/useKeyboard.tsx
index cf8038a82345..2ae1f9cf0907 100644
--- a/projects/app/src/components/core/workflow/Flow/hooks/useKeyboard.tsx
+++ b/projects/app/src/components/core/workflow/Flow/hooks/useKeyboard.tsx
@@ -48,19 +48,22 @@ export const useKeyboard = () => {
// filter workflow data
const newNodes = parseData
.filter((item) => !!item.type && item.data?.unique !== true)
- .map((item) => ({
- // reset id
- ...item,
- id: getNanoid(),
- data: {
- ...item.data,
- nodeId: getNanoid()
- },
- position: {
- x: item.position.x + 100,
- y: item.position.y + 100
- }
- }));
+ .map((item) => {
+ const nodeId = getNanoid();
+ return {
+ // reset id
+ ...item,
+ id: nodeId,
+ data: {
+ ...item.data,
+ nodeId
+ },
+ position: {
+ x: item.position.x + 100,
+ y: item.position.y + 100
+ }
+ };
+ });
setNodes((prev) =>
prev
diff --git a/projects/app/src/components/core/workflow/Flow/nodes/render/RenderInput/templates/Reference.tsx b/projects/app/src/components/core/workflow/Flow/nodes/render/RenderInput/templates/Reference.tsx
index e947e866df52..fd1114c6d19a 100644
--- a/projects/app/src/components/core/workflow/Flow/nodes/render/RenderInput/templates/Reference.tsx
+++ b/projects/app/src/components/core/workflow/Flow/nodes/render/RenderInput/templates/Reference.tsx
@@ -144,7 +144,7 @@ export const useReference = ({
.filter((item) => item.children.length > 0);
return list;
- }, [edges, nodeId, nodeList, t, valueType]);
+ }, [appDetail.chatConfig, edges, nodeId, nodeList, t, valueType]);
const formatValue = useMemo(() => {
if (
From 7b9dbb039491a1432428d36f74a5572494e43a2c Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Wed, 12 Jun 2024 22:22:49 +0800
Subject: [PATCH 6/9] log level
---
packages/service/core/workflow/dispatch/index.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/service/core/workflow/dispatch/index.ts b/packages/service/core/workflow/dispatch/index.ts
index 7ce1f4c2af8b..e3f82236f54b 100644
--- a/packages/service/core/workflow/dispatch/index.ts
+++ b/packages/service/core/workflow/dispatch/index.ts
@@ -217,16 +217,16 @@ export async function dispatchWorkFlow(data: Props): Promise
Date: Thu, 13 Jun 2024 10:32:20 +0800
Subject: [PATCH 7/9] perf: doc
---
docSite/content/zh-cn/docs/development/intro.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/docSite/content/zh-cn/docs/development/intro.md b/docSite/content/zh-cn/docs/development/intro.md
index 2ea32adf046d..c7dc5825727e 100644
--- a/docSite/content/zh-cn/docs/development/intro.md
+++ b/docSite/content/zh-cn/docs/development/intro.md
@@ -79,6 +79,7 @@ Mongo 数据库需要注意,需要注意在连接地址中增加 `directConnec
# 给自动化脚本代码执行权限(非 linux 系统, 可以手动执行里面的 postinstall.sh 文件内容)
chmod -R +x ./scripts/
# 代码根目录下执行,会安装根 package、projects 和 packages 内所有依赖
+# 如果提示 isolate-vm 安装失败,可以参考:https://github.com/laverdet/isolated-vm?tab=readme-ov-file#requirements
pnpm i
# 非 Make 运行
@@ -103,6 +104,8 @@ docker build -f ./projects/app/Dockerfile -t registry.cn-hangzhou.aliyuncs.com/f
make build name=app image=registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1 proxy=taobao
```
+如果不使用`docker`打包,需要手动把`docker file`里 run 阶段的内容全部手动执行一遍(非常不推荐)。
+
## 提交代码至开源仓库
1. 确保你的代码是 Fork [FastGPT](https://github.com/labring/FastGPT) 仓库
From f780df60c05ed632b4c672fc698667e9e4077fe0 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Thu, 13 Jun 2024 12:20:12 +0800
Subject: [PATCH 8/9] update doc
---
docSite/content/zh-cn/docs/development/intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docSite/content/zh-cn/docs/development/intro.md b/docSite/content/zh-cn/docs/development/intro.md
index c7dc5825727e..142fd6f4ac9f 100644
--- a/docSite/content/zh-cn/docs/development/intro.md
+++ b/docSite/content/zh-cn/docs/development/intro.md
@@ -104,7 +104,7 @@ docker build -f ./projects/app/Dockerfile -t registry.cn-hangzhou.aliyuncs.com/f
make build name=app image=registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1 proxy=taobao
```
-如果不使用`docker`打包,需要手动把`docker file`里 run 阶段的内容全部手动执行一遍(非常不推荐)。
+如果不使用`docker`打包,需要手动把`Dockerfile`里 run 阶段的内容全部手动执行一遍(非常不推荐)。
## 提交代码至开源仓库
From 9ee79c432581b670d34afe7813f66c6d8c2253ff Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Thu, 13 Jun 2024 12:23:04 +0800
Subject: [PATCH 9/9] update doc
---
docSite/content/zh-cn/docs/development/intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docSite/content/zh-cn/docs/development/intro.md b/docSite/content/zh-cn/docs/development/intro.md
index 142fd6f4ac9f..38522f5dccfa 100644
--- a/docSite/content/zh-cn/docs/development/intro.md
+++ b/docSite/content/zh-cn/docs/development/intro.md
@@ -104,7 +104,7 @@ docker build -f ./projects/app/Dockerfile -t registry.cn-hangzhou.aliyuncs.com/f
make build name=app image=registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1 proxy=taobao
```
-如果不使用`docker`打包,需要手动把`Dockerfile`里 run 阶段的内容全部手动执行一遍(非常不推荐)。
+如果不使用 `docker` 打包,需要手动把 `Dockerfile` 里 run 阶段的内容全部手动执行一遍(非常不推荐)。
## 提交代码至开源仓库