mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-28 09:03:53 +00:00
@@ -27,9 +27,6 @@ FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开
|
|||||||
<a href="/#-%E7%9B%B8%E5%85%B3%E9%A1%B9%E7%9B%AE">
|
<a href="/#-%E7%9B%B8%E5%85%B3%E9%A1%B9%E7%9B%AE">
|
||||||
<img height="21" src="https://img.shields.io/badge/相关项目-7d09f1?style=flat-square" alt="project">
|
<img height="21" src="https://img.shields.io/badge/相关项目-7d09f1?style=flat-square" alt="project">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/labring/FastGPT/blob/main/LICENSE">
|
|
||||||
<img height="21" src="https://img.shields.io/badge/License-Apache--2.0-ffffff?style=flat-square&labelColor=d4eaf7&color=7d09f1" alt="license">
|
|
||||||
</a>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409bd33f6d4
|
https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409bd33f6d4
|
||||||
|
@@ -32,9 +32,10 @@ export const useI18nLng = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const currentLng = i18n?.language;
|
const currentLng = i18n?.language;
|
||||||
await i18n?.changeLanguage?.(lang);
|
if (!currentLng) return;
|
||||||
|
|
||||||
if (currentLng !== lang && currentLng) {
|
await i18n?.changeLanguage?.(lang);
|
||||||
|
if (currentLng !== lang) {
|
||||||
window?.location?.reload?.();
|
window?.location?.reload?.();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@@ -672,7 +672,7 @@ export const useWorkflow = () => {
|
|||||||
export const useLoopNode = () => {
|
export const useLoopNode = () => {
|
||||||
const nodes = useContextSelector(WorkflowInitContext, (state) => state.nodes);
|
const nodes = useContextSelector(WorkflowInitContext, (state) => state.nodes);
|
||||||
const onNodesChange = useContextSelector(WorkflowNodeEdgeContext, (state) => state.onNodesChange);
|
const onNodesChange = useContextSelector(WorkflowNodeEdgeContext, (state) => state.onNodesChange);
|
||||||
const { onChangeNode } = useContextSelector(WorkflowContext, (v) => v);
|
const onChangeNode = useContextSelector(WorkflowContext, (v) => v.onChangeNode);
|
||||||
|
|
||||||
const resetParentNodeSizeAndPosition = useMemoizedFn((parentId: string) => {
|
const resetParentNodeSizeAndPosition = useMemoizedFn((parentId: string) => {
|
||||||
const { childNodes, loopNode } = nodes.reduce(
|
const { childNodes, loopNode } = nodes.reduce(
|
||||||
|
@@ -831,7 +831,7 @@ const WorkflowContextProvider = ({
|
|||||||
const undo = useMemoizedFn(() => {
|
const undo = useMemoizedFn(() => {
|
||||||
if (past.length > 1) {
|
if (past.length > 1) {
|
||||||
forbiddenSaveSnapshot.current = true;
|
forbiddenSaveSnapshot.current = true;
|
||||||
|
// Current version is the first one, so we need to reset the second one
|
||||||
const firstPast = past[1];
|
const firstPast = past[1];
|
||||||
resetSnapshot(firstPast);
|
resetSnapshot(firstPast);
|
||||||
|
|
||||||
|
@@ -634,7 +634,7 @@ export const compareSnapshot = (
|
|||||||
selectedTypeIndex: input.selectedTypeIndex ?? 0,
|
selectedTypeIndex: input.selectedTypeIndex ?? 0,
|
||||||
renderTypeLis: input.renderTypeList,
|
renderTypeLis: input.renderTypeList,
|
||||||
// set to arrayAny for loopInputArray to skip valueType comparison
|
// set to arrayAny for loopInputArray to skip valueType comparison
|
||||||
valueType: input.key === NodeInputKeyEnum.loopInputArray ? 'arrayAny' : input.valueType,
|
// valueType: input.key === NodeInputKeyEnum.loopInputArray ? 'arrayAny' : input.valueType,
|
||||||
value: input.value ?? undefined
|
value: input.value ?? undefined
|
||||||
})),
|
})),
|
||||||
outputs: node.data.outputs.map((item: FlowNodeOutputItemType) => ({
|
outputs: node.data.outputs.map((item: FlowNodeOutputItemType) => ({
|
||||||
|
Reference in New Issue
Block a user