diff --git a/.changeset/strong-kids-brush.md b/.changeset/strong-kids-brush.md new file mode 100644 index 0000000000000000000000000000000000000000..b4b587a08143f5e7a51d5e34762a2b51982f3a69 --- /dev/null +++ b/.changeset/strong-kids-brush.md @@ -0,0 +1,5 @@ +--- +"create-llama": patch +--- + +fix: keep origin upload filename diff --git a/templates/components/llamaindex/typescript/documents/helper.ts b/templates/components/llamaindex/typescript/documents/helper.ts index 1457303660f1d8b9e457b2a83fddbb7f723860e0..0bbcc47fbaa64611ecddf9bc93cc69829d249719 100644 --- a/templates/components/llamaindex/typescript/documents/helper.ts +++ b/templates/components/llamaindex/typescript/documents/helper.ts @@ -1,5 +1,4 @@ import fs from "fs"; -import crypto from "node:crypto"; import { getExtractors } from "../../engine/loader"; const MIME_TYPE_TO_EXT: Record<string, string> = { @@ -11,9 +10,13 @@ const MIME_TYPE_TO_EXT: Record<string, string> = { const UPLOADED_FOLDER = "output/uploaded"; -export async function storeAndParseFile(fileBuffer: Buffer, mimeType: string) { +export async function storeAndParseFile( + filename: string, + fileBuffer: Buffer, + mimeType: string, +) { const documents = await loadDocuments(fileBuffer, mimeType); - const { filename } = await saveDocument(fileBuffer, mimeType); + await saveDocument(filename, fileBuffer, mimeType); for (const document of documents) { document.metadata = { ...document.metadata, @@ -35,11 +38,14 @@ async function loadDocuments(fileBuffer: Buffer, mimeType: string) { return await reader.loadDataAsContent(fileBuffer); } -async function saveDocument(fileBuffer: Buffer, mimeType: string) { +async function saveDocument( + filename: string, + fileBuffer: Buffer, + mimeType: string, +) { const fileExt = MIME_TYPE_TO_EXT[mimeType]; if (!fileExt) throw new Error(`Unsupported document type: ${mimeType}`); - const filename = `${crypto.randomUUID()}.${fileExt}`; const filepath = `${UPLOADED_FOLDER}/${filename}`; const fileurl = `${process.env.FILESERVER_URL_PREFIX}/${filepath}`; diff --git a/templates/components/llamaindex/typescript/documents/upload.ts b/templates/components/llamaindex/typescript/documents/upload.ts index 9cfb545f88775ada56bde603d22a7200ed9589bc..4f205a60107ca9d166758520ae8e18edb0a311a4 100644 --- a/templates/components/llamaindex/typescript/documents/upload.ts +++ b/templates/components/llamaindex/typescript/documents/upload.ts @@ -27,6 +27,6 @@ export async function uploadDocument( } // run the pipeline for other vector store indexes - const documents = await storeAndParseFile(fileBuffer, mimeType); + const documents = await storeAndParseFile(filename, fileBuffer, mimeType); return runPipeline(index, documents); }