Bugfix/Upsert files extension to input field (#3288)

get upsert files extension to input field
This commit is contained in:
Henry Heng
2024-09-30 22:52:02 +01:00
committed by GitHub
parent 01ae2ac7c4
commit 04e8d02a99
3 changed files with 89 additions and 6 deletions
+31 -2
View File
@@ -1,4 +1,5 @@
import { Request } from 'express'
import * as path from 'path'
import {
IFileUpload,
convertSpeechToText,
@@ -6,6 +7,7 @@ import {
addSingleFileToStorage,
addArrayFilesToStorage,
mapMimeTypeToInputField,
mapExtToInputField,
IServerSideEventStreamer
} from 'flowise-components'
import { StatusCodes } from 'http-status-codes'
@@ -151,9 +153,33 @@ export const utilBuildChatflow = async (req: Request, isInternal: boolean = fals
const storagePath = await addArrayFilesToStorage(file.mimetype, fileBuffer, file.originalname, fileNames, chatflowid)
const fileInputField = mapMimeTypeToInputField(file.mimetype)
const fileInputFieldFromMimeType = mapMimeTypeToInputField(file.mimetype)
overrideConfig[fileInputField] = storagePath
const fileExtension = path.extname(file.originalname)
const fileInputFieldFromExt = mapExtToInputField(fileExtension)
let fileInputField = 'txtFile'
if (fileInputFieldFromExt !== 'txtFile') {
fileInputField = fileInputFieldFromExt
} else if (fileInputFieldFromMimeType !== 'txtFile') {
fileInputField = fileInputFieldFromExt
}
if (overrideConfig[fileInputField]) {
const existingFileInputField = overrideConfig[fileInputField].replace('FILE-STORAGE::', '')
const existingFileInputFieldArray = JSON.parse(existingFileInputField)
const newFileInputField = storagePath.replace('FILE-STORAGE::', '')
const newFileInputFieldArray = JSON.parse(newFileInputField)
const updatedFieldArray = existingFileInputFieldArray.concat(newFileInputFieldArray)
overrideConfig[fileInputField] = `FILE-STORAGE::${JSON.stringify(updatedFieldArray)}`
} else {
overrideConfig[fileInputField] = storagePath
}
fs.unlinkSync(file.path)
}
@@ -161,6 +187,9 @@ export const utilBuildChatflow = async (req: Request, isInternal: boolean = fals
question: req.body.question ?? 'hello',
overrideConfig
}
if (req.body.chatId) {
incomingInput.chatId = req.body.chatId
}
}
/*** Get chatflows and prepare data ***/