From ae47d170ca7267956eed81992379ebc991b7bdb0 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Wed, 19 Mar 2025 15:04:27 +0800 Subject: [PATCH] fix: improve file content extraction logic in OpenAIProvider - Updated the file content extraction method to check for non-empty file arrays, enhancing the handling of messages with files. - Replaced the previous check for `message.files` with a more robust check using `isEmpty` from lodash to ensure proper validation. --- src/renderer/src/providers/OpenAIProvider.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/providers/OpenAIProvider.ts b/src/renderer/src/providers/OpenAIProvider.ts index a34a734e..5516cd02 100644 --- a/src/renderer/src/providers/OpenAIProvider.ts +++ b/src/renderer/src/providers/OpenAIProvider.ts @@ -34,7 +34,7 @@ import { openAIToolsToMcpTool, upsertMCPToolResponse } from '@renderer/utils/mcp-tools' -import { takeRight } from 'lodash' +import { isEmpty, takeRight } from 'lodash' import OpenAI, { AzureOpenAI } from 'openai' import { ChatCompletionAssistantMessageParam, @@ -92,7 +92,7 @@ export default class OpenAIProvider extends BaseProvider { * @returns The file content */ private async extractFileContent(message: Message) { - if (message.files) { + if (message.files && message.files.length > 0) { const textFiles = message.files.filter((file) => [FileTypes.TEXT, FileTypes.DOCUMENT].includes(file.type)) if (textFiles.length > 0) { @@ -126,7 +126,7 @@ export default class OpenAIProvider extends BaseProvider { const content = await this.getMessageContent(message) // If the message does not have files, return the message - if (!message.files) { + if (isEmpty(message.files)) { return { role: message.role, content