From 56b919390d1430ae212130fd609fc8e8a6d6ddee Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 27 May 2025 22:25:23 +0800 Subject: [PATCH] . --- .../sidebar/items/all/sidebar-create-item.tsx | 2 +- chatdesk-ui/db/files.ts | 37 ++++++++++++++----- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/chatdesk-ui/components/sidebar/items/all/sidebar-create-item.tsx b/chatdesk-ui/components/sidebar/items/all/sidebar-create-item.tsx index e089826..0da75a3 100644 --- a/chatdesk-ui/components/sidebar/items/all/sidebar-create-item.tsx +++ b/chatdesk-ui/components/sidebar/items/all/sidebar-create-item.tsx @@ -84,7 +84,7 @@ export const SidebarCreateItem: FC = ({ file, rest, workspaceId, - selectedWorkspace.embeddings_provider as "openai" | "local" + selectedWorkspace.embeddings_provider as "openai" | "local" | "bge-m3" ) return createdFile diff --git a/chatdesk-ui/db/files.ts b/chatdesk-ui/db/files.ts index 61c80e8..e61bea1 100644 --- a/chatdesk-ui/db/files.ts +++ b/chatdesk-ui/db/files.ts @@ -62,7 +62,7 @@ export const createFileBasedOnExtension = async ( file: File, fileRecord: TablesInsert<"files">, workspace_id: string, - embeddingsProvider: "openai" | "local" + embeddingsProvider: "openai" | "local" | "bge-m3" ) => { const fileExtension = file.name.split(".").pop() @@ -91,16 +91,32 @@ export const createFile = async ( workspace_id: string, embeddingsProvider: "openai" | "local" | "bge-m3" ) => { - let validFilename = fileRecord.name.replace(/[^a-z0-9.]/gi, "_").toLowerCase() - const extension = file.name.split(".").pop() + // let validFilename = fileRecord.name.replace(/[^a-z0-9.]/gi, "_").toLowerCase() + // const extension = file.name.split(".").pop() + // const extensionIndex = validFilename.lastIndexOf(".") + // const baseName = validFilename.substring(0, (extensionIndex < 0) ? undefined : extensionIndex) + // const maxBaseNameLength = 100 - (extension?.length || 0) - 1 + // if (baseName.length > maxBaseNameLength) { + // fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension + // } else { + // fileRecord.name = baseName + "." + extension + // } + + // 保留原始文件名用于数据库插入 + const originalFileName = file.name + fileRecord.name = originalFileName // ✅ 用原始文件名插入数据库 + + // 为上传路径等其他用途生成格式化文件名 + let validFilename = originalFileName.replace(/[^a-z0-9.]/gi, "_").toLowerCase() + const extension = originalFileName.split(".").pop() const extensionIndex = validFilename.lastIndexOf(".") - const baseName = validFilename.substring(0, (extensionIndex < 0) ? undefined : extensionIndex) + const baseName = validFilename.substring(0, extensionIndex < 0 ? undefined : extensionIndex) const maxBaseNameLength = 100 - (extension?.length || 0) - 1 - if (baseName.length > maxBaseNameLength) { - fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension - } else { - fileRecord.name = baseName + "." + extension - } + const adjustedName = + baseName.length > maxBaseNameLength + ? baseName.substring(0, maxBaseNameLength) + "." + extension + : baseName + "." + extension + const { data: createdFile, error } = await supabase .from("files") .insert([fileRecord]) @@ -118,7 +134,8 @@ export const createFile = async ( }) const filePath = await uploadFile(file, { - name: createdFile.name, + // name: createdFile.name, + name: adjustedName, user_id: createdFile.user_id, file_id: createdFile.name })