From e6b4acfe86af380c4e631973b9caa14337954423 Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Wed, 20 May 2026 13:04:01 +0200 Subject: [PATCH] refactor: Move text attachments up before the message content in chat completions payload (#23406) --- tools/ui/src/lib/services/chat.service.ts | 40 +++++++++++------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tools/ui/src/lib/services/chat.service.ts b/tools/ui/src/lib/services/chat.service.ts index 3e405e9e6..82abedcc4 100644 --- a/tools/ui/src/lib/services/chat.service.ts +++ b/tools/ui/src/lib/services/chat.service.ts @@ -824,26 +824,6 @@ export class ChatService { const contentParts: ApiChatMessageContentPart[] = []; - if (message.content) { - contentParts.push({ - type: ContentPartType.TEXT, - text: message.content - }); - } - - // Include images from all messages - const imageFiles = message.extra.filter( - (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraImageFile => - extra.type === AttachmentType.IMAGE - ); - - for (const image of imageFiles) { - contentParts.push({ - type: ContentPartType.IMAGE_URL, - image_url: { url: image.base64Url } - }); - } - const textFiles = message.extra.filter( (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraTextFile => extra.type === AttachmentType.TEXT @@ -869,6 +849,26 @@ export class ChatService { }); } + if (message.content) { + contentParts.push({ + type: ContentPartType.TEXT, + text: message.content + }); + } + + // Include images from all messages + const imageFiles = message.extra.filter( + (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraImageFile => + extra.type === AttachmentType.IMAGE + ); + + for (const image of imageFiles) { + contentParts.push({ + type: ContentPartType.IMAGE_URL, + image_url: { url: image.base64Url } + }); + } + const audioFiles = message.extra.filter( (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraAudioFile => extra.type === AttachmentType.AUDIO