From 2817be14d544c04c5b6e9421447b7fd403b5ae4e Mon Sep 17 00:00:00 2001 From: chanx <1243304602@qq.com> Date: Thu, 25 Dec 2025 15:55:06 +0800 Subject: [PATCH] Fix: Metadata tips info (#12209) ### What problem does this PR solve? Fix: Metadata tips info ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- web/src/components/ui/modal/modal.tsx | 2 +- web/src/layouts/next-header.tsx | 23 ++++++++++++++++++- web/src/locales/en.ts | 4 ++++ web/src/locales/zh.ts | 18 ++++++++------- .../metedata/hooks/use-manage-modal.ts | 16 ++++++++++++- .../metedata/hooks/use-manage-values-modal.ts | 13 ++++++----- .../configuration/common-item.tsx | 4 ++-- web/src/pages/dataset/process-log-modal.tsx | 2 +- web/src/pages/memories/hooks.ts | 12 ++++++++-- web/src/pages/memory/memory-message/hook.ts | 7 +++--- 10 files changed, 76 insertions(+), 25 deletions(-) diff --git a/web/src/components/ui/modal/modal.tsx b/web/src/components/ui/modal/modal.tsx index c856e1dd6..12b7e7f01 100644 --- a/web/src/components/ui/modal/modal.tsx +++ b/web/src/components/ui/modal/modal.tsx @@ -170,7 +170,7 @@ const Modal: ModalType = ({ maskClosable && onOpenChange?.(false)} > { window.open('https://ragflow.io/docs/dev/category/guides', 'target'); }; +const PathMap = { + [Routes.Datasets]: [Routes.Datasets], + [Routes.Chats]: [Routes.Chats], + [Routes.Searches]: [Routes.Searches], + [Routes.Agents]: [Routes.Agents], + [Routes.Memories]: [Routes.Memories, Routes.Memory, Routes.MemoryMessage], + [Routes.Files]: [Routes.Files], +} as const; + export function Header() { const { t } = useTranslation(); const { pathname } = useLocation(); @@ -106,6 +115,18 @@ export function Header() { navigate(Routes.Root); }, [navigate]); + const activePathName = useMemo(() => { + const name = Object.keys(PathMap).find((x: string) => { + const pathList = PathMap[x as keyof typeof PathMap]; + return pathList.some((y: string) => pathname.indexOf(y) > -1); + }); + if (name) { + return name; + } else { + return pathname; + } + }, [pathname]); + return (
@@ -121,7 +142,7 @@ export function Header() { sizeType="xl" buttonSize="xl" options={options} - value={pathname} + value={activePathName} onChange={handleChange} activeClassName="text-bg-base bg-metallic-gradient border-b-[#00BEB4] border-b-2" > diff --git a/web/src/locales/en.ts b/web/src/locales/en.ts index ef0b26a61..c973cf9fe 100644 --- a/web/src/locales/en.ts +++ b/web/src/locales/en.ts @@ -184,6 +184,10 @@ Procedural Memory: Learned skills, habits, and automated procedures.`, 'Value already exists. Confirm to merge duplicates and combine all associated files.', fieldNameExists: 'Field name already exists. Confirm to merge duplicates and combine all associated files.', + valueSingleExists: + 'Value already exists. Confirm to merge duplicates .', + fieldSingleNameExists: + 'Field name already exists. Confirm to merge duplicates .', fieldExists: 'Field already exists.', fieldSetting: 'Field settings', changesAffectNewParses: 'Changes affect new parses only.', diff --git a/web/src/locales/zh.ts b/web/src/locales/zh.ts index cdad54b9a..cefd66fd1 100644 --- a/web/src/locales/zh.ts +++ b/web/src/locales/zh.ts @@ -171,11 +171,16 @@ export default { descriptionTip: '提供描述或示例来指导大语言模型为此字段提取值。如果留空,将依赖字段名称。', restrictTDefinedValuesTip: - '枚举模式:限制大语言模型仅提取预设值。在下方定义值。', + '枚举模式:限制大语言模型提取的值只能匹配预设值。在下方定义值。', + valueExists: '值已存在。确认合并重复项并组合所有关联文件。', + fieldNameExists: '字段名已存在。确认合并重复项并组合所有关联文件。', + valueSingleExists: '值已存在。确认合并重复项。', + fieldSingleNameExists: '字段名已存在。确认合并重复项。', + fieldExists: '字段名已存在。', fieldSetting: '字段设置', - changesAffectNewParses: '更改仅影响新解析。', - editMetadataForDataset: '查看和编辑元数据于 ', - restrictDefinedValues: '限制为已定义值', + changesAffectNewParses: '更改仅影响新的解析。', + editMetadataForDataset: '查看和编辑元数据 ', + restrictDefinedValues: '限制为已定义的值', metadataGenerationSettings: '元数据生成设置', manageMetadataForDataset: '管理此数据集的元数据', manageMetadata: '管理元数据', @@ -185,11 +190,8 @@ export default { action: '操作', field: '字段', description: '描述', - fieldName: '字段名', + fieldName: '字段名称', editMetadata: '编辑元数据', - valueExists: '值已存在。确认合并重复项并组合所有关联文件。', - fieldNameExists: '字段名已存在。确认合并重复项并组合所有关联文件。', - fieldExists: '字段名已存在。', deleteWarn: '此 {{field}} 将从所有关联文件中移除', deleteManageFieldAllWarn: '此字段及其所有对应值将从所有关联的文件中删除。', diff --git a/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts b/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts index 0a8837028..1ad0405ee 100644 --- a/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts +++ b/web/src/pages/dataset/components/metedata/hooks/use-manage-modal.ts @@ -32,28 +32,42 @@ export const MetadataDeleteMap = ( t: TFunction<'translation', undefined>, ): Record< MetadataType, - { title: string; warnFieldText: string; warnValueText: string } + { + title: string; + warnFieldText: string; + warnValueText: string; + warnFieldName: string; + warnValueName: string; + } > => { return { [MetadataType.Manage]: { title: t('common.delete') + ' ' + t('knowledgeDetails.metadata.metadata'), warnFieldText: t('knowledgeDetails.metadata.deleteManageFieldAllWarn'), warnValueText: t('knowledgeDetails.metadata.deleteManageValueAllWarn'), + warnFieldName: t('knowledgeDetails.metadata.fieldNameExists'), + warnValueName: t('knowledgeDetails.metadata.valueExists'), }, [MetadataType.Setting]: { title: t('common.delete') + ' ' + t('knowledgeDetails.metadata.metadata'), warnFieldText: t('knowledgeDetails.metadata.deleteSettingFieldWarn'), warnValueText: t('knowledgeDetails.metadata.deleteSettingValueWarn'), + warnFieldName: t('knowledgeDetails.metadata.fieldExists'), + warnValueName: t('knowledgeDetails.metadata.valueExists'), }, [MetadataType.UpdateSingle]: { title: t('common.delete') + ' ' + t('knowledgeDetails.metadata.metadata'), warnFieldText: t('knowledgeDetails.metadata.deleteManageFieldSingleWarn'), warnValueText: t('knowledgeDetails.metadata.deleteManageValueSingleWarn'), + warnFieldName: t('knowledgeDetails.metadata.fieldSingleNameExists'), + warnValueName: t('knowledgeDetails.metadata.valueSingleExists'), }, [MetadataType.SingleFileSetting]: { title: t('common.delete') + ' ' + t('knowledgeDetails.metadata.metadata'), warnFieldText: t('knowledgeDetails.metadata.deleteSettingFieldWarn'), warnValueText: t('knowledgeDetails.metadata.deleteSettingValueWarn'), + warnFieldName: t('knowledgeDetails.metadata.fieldExists'), + warnValueName: t('knowledgeDetails.metadata.valueSingleExists'), }, }; }; diff --git a/web/src/pages/dataset/components/metedata/hooks/use-manage-values-modal.ts b/web/src/pages/dataset/components/metedata/hooks/use-manage-values-modal.ts index 459077a29..7f6f26c4b 100644 --- a/web/src/pages/dataset/components/metedata/hooks/use-manage-values-modal.ts +++ b/web/src/pages/dataset/components/metedata/hooks/use-manage-values-modal.ts @@ -47,10 +47,10 @@ export const useManageValues = (props: IManageValuesProps) => { setValueError((prev) => { return { ...prev, - field: - type === MetadataType.Setting - ? t('knowledgeDetails.metadata.fieldExists') - : t('knowledgeDetails.metadata.fieldNameExists'), + field: MetadataDeleteMap(t)[type as MetadataType].warnFieldName, + // type === MetadataType.Setting + // ? t('knowledgeDetails.metadata.fieldExists') + // : t('knowledgeDetails.metadata.fieldNameExists'), }; }); } else if (field === 'field' && !existsKeys.includes(value)) { @@ -103,7 +103,8 @@ export const useManageValues = (props: IManageValuesProps) => { setValueError((prev) => { return { ...prev, - values: t('knowledgeDetails.metadata.valueExists'), + values: MetadataDeleteMap(t)[type as MetadataType].warnValueName, + // t('knowledgeDetails.metadata.valueExists'), }; }); } else { @@ -120,7 +121,7 @@ export const useManageValues = (props: IManageValuesProps) => { return newValues; }); }, - [t], + [t, type], ); // Handle blur event, synchronize to main state diff --git a/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx b/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx index 63e500d06..ebafdbbe9 100644 --- a/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx +++ b/web/src/pages/dataset/dataset-setting/configuration/common-item.tsx @@ -485,7 +485,7 @@ export const LLMSelect = ({ export function LLMModelItem({ line = 1, isEdit, label, name }: IProps) { const { t } = useTranslate('knowledgeConfiguration'); const form = useFormContext(); - const disabled = useHasParsedDocument(isEdit); + // const disabled = useHasParsedDocument(isEdit); return ( <>
diff --git a/web/src/pages/dataset/process-log-modal.tsx b/web/src/pages/dataset/process-log-modal.tsx index 15e0d1f1f..2404dcec9 100644 --- a/web/src/pages/dataset/process-log-modal.tsx +++ b/web/src/pages/dataset/process-log-modal.tsx @@ -47,7 +47,7 @@ const InfoItem: React.FC<{ {label} - + {value} diff --git a/web/src/pages/memories/hooks.ts b/web/src/pages/memories/hooks.ts index e024b8787..47b992d5c 100644 --- a/web/src/pages/memories/hooks.ts +++ b/web/src/pages/memories/hooks.ts @@ -3,6 +3,7 @@ import message from '@/components/ui/message'; import { useSetModalState } from '@/hooks/common-hooks'; import { useHandleSearchChange } from '@/hooks/logic-hooks'; +import { useFetchTenantInfo } from '@/hooks/use-user-setting-request'; import memoryService, { updateMemoryById } from '@/services/memory-service'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useDebounce } from 'ahooks'; @@ -216,15 +217,22 @@ export const useRenameMemory = () => { const { updateMemory } = useUpdateMemory(); const { createMemory } = useCreateMemory(); const [loading, setLoading] = useState(false); + const { data: tenantInfo } = useFetchTenantInfo(); const handleShowChatRenameModal = useCallback( (record?: IMemory) => { if (record) { - setMemory(record); + const embd_id = record.embd_id || tenantInfo?.embd_id; + const llm_id = record.llm_id || tenantInfo?.llm_id; + setMemory({ + ...record, + embd_id, + llm_id, + }); } showChatRenameModal(); }, - [showChatRenameModal], + [showChatRenameModal, tenantInfo], ); const handleHideModal = useCallback(() => { diff --git a/web/src/pages/memory/memory-message/hook.ts b/web/src/pages/memory/memory-message/hook.ts index 0fef0087e..01f70a8c2 100644 --- a/web/src/pages/memory/memory-message/hook.ts +++ b/web/src/pages/memory/memory-message/hook.ts @@ -117,12 +117,13 @@ export const useMessageAction = () => { data: messageContent, isPending: fetchMessageContentLoading, mutateAsync: fetchMessageContent, - } = useMutation({ + } = useMutation({ mutationKey: [ MemoryApiAction.FetchMessageContent, selectedMessage.message_id, ], - mutationFn: async () => { + + mutationFn: async (selectedMessage: IMessageInfo) => { setShowMessageContentDialog(true); const res = await memoryService.getMessageContent({ memory_id: memoryId, @@ -140,7 +141,7 @@ export const useMessageAction = () => { const handleClickMessageContentDialog = useCallback( (message: IMessageInfo) => { setSelectedMessage(message); - fetchMessageContent(); + fetchMessageContent(message); }, [fetchMessageContent], );