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.
This commit is contained in:
kangfenmao 2025-03-19 15:04:27 +08:00
parent fd6e4db888
commit ae47d170ca

View File

@ -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