From adff605c504da7dc3261ebca16ae152f3304edf0 Mon Sep 17 00:00:00 2001 From: Dustin Healy Date: Sat, 13 Sep 2025 13:02:04 -0700 Subject: [PATCH] feat: add target model to messages so we dont have to peek into child ai message responses every time to know what model the user sent their message to for tokenValue computations --- api/app/clients/BaseClient.js | 1 + api/server/services/Threads/manage.js | 1 + packages/data-provider/src/schemas.ts | 1 + packages/data-schemas/src/schema/message.ts | 4 ++++ packages/data-schemas/src/types/message.ts | 1 + 5 files changed, 8 insertions(+) diff --git a/api/app/clients/BaseClient.js b/api/app/clients/BaseClient.js index 2458dc0ab3..d1158490e8 100644 --- a/api/app/clients/BaseClient.js +++ b/api/app/clients/BaseClient.js @@ -233,6 +233,7 @@ class BaseClient { sender: 'User', text, isCreatedByUser: true, + targetModel: this.modelOptions?.model ?? this.model, }; } diff --git a/api/server/services/Threads/manage.js b/api/server/services/Threads/manage.js index 4cc1e107ed..109b6807ee 100644 --- a/api/server/services/Threads/manage.js +++ b/api/server/services/Threads/manage.js @@ -88,6 +88,7 @@ async function saveUserMessage(req, params) { parentMessageId: params.parentMessageId ?? Constants.NO_PARENT, /* For messages, use the assistant_id instead of model */ model: params.assistant_id, + targetModel: params.model, thread_id: params.thread_id, sender: 'User', text: params.text, diff --git a/packages/data-provider/src/schemas.ts b/packages/data-provider/src/schemas.ts index 966e330620..5b90431983 100644 --- a/packages/data-provider/src/schemas.ts +++ b/packages/data-provider/src/schemas.ts @@ -518,6 +518,7 @@ export const tMessageSchema = z.object({ overrideParentMessageId: z.string().nullable().optional(), bg: z.string().nullable().optional(), model: z.string().nullable().optional(), + targetModel: z.string().nullable().optional(), title: z.string().nullable().or(z.literal('New Chat')).default('New Chat'), sender: z.string().optional(), text: z.string(), diff --git a/packages/data-schemas/src/schema/message.ts b/packages/data-schemas/src/schema/message.ts index 15a80ae80e..39d04f14c5 100644 --- a/packages/data-schemas/src/schema/message.ts +++ b/packages/data-schemas/src/schema/message.ts @@ -26,6 +26,10 @@ const messageSchema: Schema = new Schema( type: String, default: null, }, + targetModel: { + type: String, + default: null, + }, endpoint: { type: String, }, diff --git a/packages/data-schemas/src/types/message.ts b/packages/data-schemas/src/types/message.ts index 2743f7242e..d272340ba3 100644 --- a/packages/data-schemas/src/types/message.ts +++ b/packages/data-schemas/src/types/message.ts @@ -7,6 +7,7 @@ export interface IMessage extends Document { conversationId: string; user: string; model?: string; + targetModel?: string; endpoint?: string; conversationSignature?: string; clientId?: string;