diff --git a/src/frontend/platform/src/components/bs-icons/file/index.tsx b/src/frontend/platform/src/components/bs-icons/file/index.tsx index 6fd8dc2ea..b173b37ba 100644 --- a/src/frontend/platform/src/components/bs-icons/file/index.tsx +++ b/src/frontend/platform/src/components/bs-icons/file/index.tsx @@ -16,7 +16,7 @@ export type FileType = | 'docx' | 'ppt' | 'pptx' - | 'md' | 'html' | 'txt' + | 'md' | 'html' | 'txt' | 'json' | 'jpg' | 'jpeg' | 'png' @@ -29,6 +29,7 @@ export type FileType = const iconComponents: Record> = { pdf: PdfIcon, txt: TxtIcon, + json: TxtIcon, doc: DocIcon, docx: DocxIcon, ppt: PptIcon, @@ -58,7 +59,7 @@ export const FileIcon = forwardRef< if (!IconComponent) { console.warn(`No icon found for type: ${props.type}`); - return null; + return ; } return ; diff --git a/src/frontend/platform/src/controllers/API/index.ts b/src/frontend/platform/src/controllers/API/index.ts index ad0e0e440..4a1b86a6f 100644 --- a/src/frontend/platform/src/controllers/API/index.ts +++ b/src/frontend/platform/src/controllers/API/index.ts @@ -790,7 +790,7 @@ export async function getSourceChunksApi(chatId: string, messageId: number, keys }); return Object.keys(fileMap).map(fileId => { - const { file_id: id, source: fileName, source_url: fileUrl, original_url: originUrl, ...other } = fileMap[fileId][0] + const { file_id: id, source: fileName, source_url, original_url: originUrl, ...other } = fileMap[fileId][0] const chunks = fileMap[fileId].sort((a, b) => b.score - a.score) .map(chunk => ({ @@ -799,7 +799,20 @@ export async function getSourceChunksApi(chatId: string, messageId: number, keys })) const score = chunks[0].score - return { id, fileName, fileUrl, originUrl, chunks, ...other, score } + // 兼容后端历史逻辑 + let fileUrl = '' + let suffix = fileName.split('.').pop().toLowerCase() + let isNew = false + if (['uns', 'local'].includes(other.parse_type)) { + fileUrl = other.chunk_bboxes ? source_url : originUrl; + if (other.chunk_bboxes) { + suffix = 'pdf' + } + } else if (['etl4lm', 'un_etl4lm'].includes(other.parse_type)) { + fileUrl = source_url || originUrl + isNew = true + } + return { id, fileName, suffix, isNew, fileUrl, originUrl, chunks, ...other, score } }).sort((a, b) => b.score - a.score) } catch (error) { console.error(error);