diff --git a/packages/components/nodes/documentloaders/File/File.ts b/packages/components/nodes/documentloaders/File/File.ts
index d3049553f..53f5be5ea 100644
--- a/packages/components/nodes/documentloaders/File/File.ts
+++ b/packages/components/nodes/documentloaders/File/File.ts
@@ -32,7 +32,7 @@ class File_DocumentLoaders implements INode {
this.type = 'Document'
this.icon = 'file.svg'
this.category = 'Document Loaders'
- this.description = `A generic file loader that can load txt, json, csv, docx, pdf, and other files`
+ this.description = `A generic file loader that can load different file types`
this.baseClasses = [this.type]
this.inputs = [
{
@@ -214,6 +214,11 @@ class File_DocumentLoaders implements INode {
json: (blob) => new JSONLoader(blob),
jsonl: (blob) => new JSONLinesLoader(blob, '/' + pointerName.trim()),
txt: (blob) => new TextLoader(blob),
+ html: (blob) => new TextLoader(blob),
+ css: (blob) => new TextLoader(blob),
+ js: (blob) => new TextLoader(blob),
+ xml: (blob) => new TextLoader(blob),
+ md: (blob) => new TextLoader(blob),
csv: (blob) => new CSVLoader(blob),
xls: (blob) => new LoadOfSheet(blob),
xlsx: (blob) => new LoadOfSheet(blob),
@@ -301,6 +306,8 @@ const getOverrideFileInputs = (nodeData: INodeData) => {
const jsonlinesFileBase64 = nodeData.inputs?.jsonlinesFile as string
const docxFileBase64 = nodeData.inputs?.docxFile as string
const yamlFileBase64 = nodeData.inputs?.yamlFile as string
+ const excelFileBase64 = nodeData.inputs?.excelFile as string
+ const powerpointFileBase64 = nodeData.inputs?.powerpointFile as string
const removePrefix = (storageFile: string): string[] => {
const fileName = storageFile.replace('FILE-STORAGE::', '')
@@ -333,6 +340,12 @@ const getOverrideFileInputs = (nodeData: INodeData) => {
if (yamlFileBase64) {
files.push(...removePrefix(yamlFileBase64))
}
+ if (excelFileBase64) {
+ files.push(...removePrefix(excelFileBase64))
+ }
+ if (powerpointFileBase64) {
+ files.push(...removePrefix(powerpointFileBase64))
+ }
return files.length ? `FILE-STORAGE::${JSON.stringify(files)}` : ''
}
diff --git a/packages/components/src/utils.ts b/packages/components/src/utils.ts
index 1f24fb813..5947d4fa1 100644
--- a/packages/components/src/utils.ts
+++ b/packages/components/src/utils.ts
@@ -1070,7 +1070,17 @@ export const mapMimeTypeToInputField = (mimeType: string) => {
case 'text/jsonl':
return 'jsonlinesFile'
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
+ case 'application/msword': {
return 'docxFile'
+ }
+ case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
+ case 'application/vnd.ms-excel': {
+ return 'excelFile'
+ }
+ case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':
+ case 'application/vnd.ms-powerpoint': {
+ return 'powerpointFile'
+ }
case 'application/vnd.yaml':
case 'application/x-yaml':
case 'text/vnd.yaml':
@@ -1091,6 +1101,19 @@ export const mapMimeTypeToExt = (mimeType: string) => {
switch (mimeType) {
case 'text/plain':
return 'txt'
+ case 'text/html':
+ return 'html'
+ case 'text/css':
+ return 'css'
+ case 'text/javascript':
+ case 'application/javascript':
+ return 'js'
+ case 'text/xml':
+ case 'application/xml':
+ return 'xml'
+ case 'text/markdown':
+ case 'text/x-markdown':
+ return 'md'
case 'application/pdf':
return 'pdf'
case 'application/json':
@@ -1109,6 +1132,10 @@ export const mapMimeTypeToExt = (mimeType: string) => {
return 'xls'
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
return 'xlsx'
+ case 'application/vnd.ms-powerpoint':
+ return 'ppt'
+ case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':
+ return 'pptx'
default:
return ''
}
diff --git a/packages/server/src/utils/createAttachment.ts b/packages/server/src/utils/createAttachment.ts
index d1e7ceaaa..1746cf9c6 100644
--- a/packages/server/src/utils/createAttachment.ts
+++ b/packages/server/src/utils/createAttachment.ts
@@ -172,7 +172,7 @@ export const createFileAttachment = async (req: Request) => {
content
})
} catch (error) {
- throw new Error(`Failed operation: createFileAttachment - ${getErrorMessage(error)}`)
+ throw new Error(`Failed createFileAttachment: ${file.originalname} (${file.mimetype} - ${getErrorMessage(error)}`)
}
}
}
diff --git a/packages/ui/src/ui-component/extended/FileUpload.jsx b/packages/ui/src/ui-component/extended/FileUpload.jsx
index 2fdda35c1..2555ee147 100644
--- a/packages/ui/src/ui-component/extended/FileUpload.jsx
+++ b/packages/ui/src/ui-component/extended/FileUpload.jsx
@@ -23,18 +23,20 @@ const message = `Uploaded files will be parsed as strings and sent to the LLM. I
Refer docs for more details.`
const availableFileTypes = [
- { name: 'CSS', ext: 'text/css' },
- { name: 'CSV', ext: 'text/csv' },
- { name: 'HTML', ext: 'text/html' },
- { name: 'JSON', ext: 'application/json' },
- { name: 'YAML', ext: 'application/x-yaml' },
- { name: 'Markdown', ext: 'text/markdown' },
- { name: 'PDF', ext: 'application/pdf' },
- { name: 'SQL', ext: 'application/sql' },
- { name: 'Text File', ext: 'text/plain' },
- { name: 'XML', ext: 'application/xml' },
- { name: 'DOC', ext: 'application/msword' },
- { name: 'DOCX', ext: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }
+ { name: 'CSS', ext: 'text/css', extension: '.css' },
+ { name: 'CSV', ext: 'text/csv', extension: '.csv' },
+ { name: 'HTML', ext: 'text/html', extension: '.html' },
+ { name: 'JSON', ext: 'application/json', extension: '.json' },
+ { name: 'Markdown', ext: 'text/markdown', extension: '.md' },
+ { name: 'YAML', ext: 'application/x-yaml', extension: '.yaml' },
+ { name: 'PDF', ext: 'application/pdf', extension: '.pdf' },
+ { name: 'SQL', ext: 'application/sql', extension: '.sql' },
+ { name: 'Text File', ext: 'text/plain', extension: '.txt' },
+ { name: 'XML', ext: 'application/xml', extension: '.xml' },
+ { name: 'DOC', ext: 'application/msword', extension: '.doc' },
+ { name: 'DOCX', ext: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', extension: '.docx' },
+ { name: 'XLSX', ext: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', extension: '.xlsx' },
+ { name: 'PPTX', ext: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', extension: '.pptx' }
]
const FileUpload = ({ dialogProps }) => {
@@ -222,30 +224,45 @@ const FileUpload = ({ dialogProps }) => {
onChange={handleAllowedFileTypesChange}
/>
))}
-
- PDF Usage
-
-
- } label='One document per page' />
- } label='One document per file' />
-
-
-
+ {allowedFileTypes.includes('application/pdf') && fullFileUpload && (
+
+ PDF Configuration
-
-
-
+
+ PDF Usage
+
+
+ } label='One document per page' />
+ } label='One document per file' />
+
+
+
+
+
+
+
+
+ )}
Save