Skip to content

Commit d53b1b6

Browse files
authored
Bugfix/Prevent empty user message when using STT (#4280)
prevent empty user message when using STT
1 parent 5faff52 commit d53b1b6

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

packages/components/src/utils.ts

+9-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import * as path from 'path'
55
import { JSDOM } from 'jsdom'
66
import { z } from 'zod'
77
import { DataSource } from 'typeorm'
8-
import { ICommonObject, IDatabaseEntity, IDocument, IMessage, INodeData, IVariable, MessageContentImageUrl } from './Interface'
8+
import { ICommonObject, IDatabaseEntity, IFileUpload, IMessage, INodeData, IVariable, MessageContentImageUrl } from './Interface'
99
import { AES, enc } from 'crypto-js'
1010
import { omit } from 'lodash'
1111
import { AIMessage, HumanMessage, BaseMessage } from '@langchain/core/messages'
@@ -718,10 +718,10 @@ export const mapChatMessageToBaseMessage = async (chatmessages: any[] = []): Pro
718718
// example: [{"type":"stored-file","name":"0_DiXc4ZklSTo3M8J4.jpg","mime":"image/jpeg"}]
719719
try {
720720
let messageWithFileUploads = ''
721-
const uploads = JSON.parse(message.fileUploads)
721+
const uploads: IFileUpload[] = JSON.parse(message.fileUploads)
722722
const imageContents: MessageContentImageUrl[] = []
723723
for (const upload of uploads) {
724-
if (upload.type === 'stored-file' && upload.mime.startsWith('image')) {
724+
if (upload.type === 'stored-file' && upload.mime.startsWith('image/')) {
725725
const fileData = await getFileFromStorage(upload.name, message.chatflowid, message.chatId)
726726
// as the image is stored in the server, read the file and convert it to base64
727727
const bf = 'data:' + upload.mime + ';base64,' + fileData.toString('base64')
@@ -732,7 +732,7 @@ export const mapChatMessageToBaseMessage = async (chatmessages: any[] = []): Pro
732732
url: bf
733733
}
734734
})
735-
} else if (upload.type === 'url' && upload.mime.startsWith('image')) {
735+
} else if (upload.type === 'url' && upload.mime.startsWith('image') && upload.data) {
736736
imageContents.push({
737737
type: 'image_url',
738738
image_url: {
@@ -748,14 +748,15 @@ export const mapChatMessageToBaseMessage = async (chatmessages: any[] = []): Pro
748748
chatflowid: message.chatflowid,
749749
chatId: message.chatId
750750
}
751+
let fileInputFieldFromMimeType = 'txtFile'
752+
fileInputFieldFromMimeType = mapMimeTypeToInputField(upload.mime)
751753
const nodeData = {
752754
inputs: {
753-
txtFile: `FILE-STORAGE::${JSON.stringify([upload.name])}`
755+
[fileInputFieldFromMimeType]: `FILE-STORAGE::${JSON.stringify([upload.name])}`
754756
}
755757
}
756-
const documents: IDocument[] = await fileLoaderNodeInstance.init(nodeData, '', options)
757-
const pageContents = documents.map((doc) => doc.pageContent).join('\n')
758-
messageWithFileUploads += `<doc name='${upload.name}'>${pageContents}</doc>\n\n`
758+
const documents: string = await fileLoaderNodeInstance.init(nodeData, '', options)
759+
messageWithFileUploads += `<doc name='${upload.name}'>${documents}</doc>\n\n`
759760
}
760761
}
761762
const messageContent = messageWithFileUploads ? `${messageWithFileUploads}\n\n${message.content}` : message.content

packages/server/src/utils/buildChatflow.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ export const executeFlow = async ({
244244
...incomingInput
245245
}
246246

247-
const question = incomingInput.question || '' // Ensure question is never undefined
247+
let question = incomingInput.question || '' // Ensure question is never undefined
248248
let overrideConfig = incomingInput.overrideConfig ?? {}
249249
const uploads = incomingInput.uploads
250250
const prependMessages = incomingInput.history ?? []
@@ -308,6 +308,7 @@ export const executeFlow = async ({
308308
logger.debug(`Speech to text result: ${speechToTextResult}`)
309309
if (speechToTextResult) {
310310
incomingInput.question = speechToTextResult
311+
question = speechToTextResult
311312
}
312313
}
313314
}

0 commit comments

Comments
 (0)