diff --git a/.changeset/small-goats-serve.md b/.changeset/small-goats-serve.md new file mode 100644 index 0000000000000000000000000000000000000000..e082e2ccc5441bf64ff8742e964000827ac19122 --- /dev/null +++ b/.changeset/small-goats-serve.md @@ -0,0 +1,5 @@ +--- +"llamaindex": patch +--- + +fix: every Llama Parse job being called "blob" diff --git a/packages/llamaindex/src/readers/LlamaParseReader.ts b/packages/llamaindex/src/readers/LlamaParseReader.ts index 4ccd9e92c928a569c5fd1825c0c123fca6b9d3d0..7aa27a6fa837dab7a244fcfdc3b7266b9ace161f 100644 --- a/packages/llamaindex/src/readers/LlamaParseReader.ts +++ b/packages/llamaindex/src/readers/LlamaParseReader.ts @@ -160,16 +160,17 @@ export class LlamaParseReader extends FileReader { } // Create a job for the LlamaParse API - private async createJob(data: Buffer): Promise<string> { + private async createJob(data: Buffer, fileName?: string): Promise<string> { // Load data, set the mime type const { mimeType, extension } = await this.getMimeType(data); if (this.verbose) { - console.log(`Starting load for ${extension} file`); + const name = fileName ? fileName : extension; + console.log(`Starting load for ${name} file`); } const body = new FormData(); - body.set("file", new Blob([data], { type: mimeType })); + body.set("file", new Blob([data], { type: mimeType }), fileName); const LlamaParseBodyParams = { language: this.language, @@ -272,11 +273,15 @@ export class LlamaParseReader extends FileReader { * To be used with resultType = "text" and "markdown" * * @param {Buffer} fileContent - The content of the file to be loaded. + * @param {string} [fileName] - The optional name of the file to be loaded. * @return {Promise<Document[]>} A Promise object that resolves to an array of Document objects. */ - async loadDataAsContent(fileContent: Buffer): Promise<Document[]> { + async loadDataAsContent( + fileContent: Buffer, + fileName?: string, + ): Promise<Document[]> { // Creates a job for the file - const jobId = await this.createJob(fileContent); + const jobId = await this.createJob(fileContent, fileName); if (this.verbose) { console.log(`Started parsing the file under job id ${jobId}`); } diff --git a/packages/llamaindex/src/readers/type.ts b/packages/llamaindex/src/readers/type.ts index b6e3e9912af1541e96345c72c35b1d6f49fa6bfb..90549f3a7a369d4a670cc397a6afc049151443e0 100644 --- a/packages/llamaindex/src/readers/type.ts +++ b/packages/llamaindex/src/readers/type.ts @@ -12,11 +12,15 @@ export interface BaseReader { * A FileReader takes file paths and imports data into Document objects. */ export abstract class FileReader implements BaseReader { - abstract loadDataAsContent(fileContent: Buffer): Promise<Document[]>; + abstract loadDataAsContent( + fileContent: Buffer, + fileName?: string, + ): Promise<Document[]>; async loadData(filePath: string): Promise<Document[]> { const fileContent = await fs.readFile(filePath); - const docs = await this.loadDataAsContent(fileContent); + const fileName = path.basename(filePath); + const docs = await this.loadDataAsContent(fileContent, fileName); docs.forEach(FileReader.addMetaData(filePath)); return docs; }