From d0eca6dafb479c4bf4d437f4ccbcf1ce8f756291 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Thu, 30 Jan 2025 12:23:27 -0500 Subject: [PATCH] Revert "dev: remove redundant message adaption from claude" This reverts commit 0c42613ff045975045deacef2ffea7fb927da28b. --- .../src/modules/puterai/ClaudeService.js | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/backend/src/modules/puterai/ClaudeService.js b/src/backend/src/modules/puterai/ClaudeService.js index 1721510e..462fec19 100644 --- a/src/backend/src/modules/puterai/ClaudeService.js +++ b/src/backend/src/modules/puterai/ClaudeService.js @@ -121,10 +121,34 @@ class ClaudeService extends BaseService { tools = FunctionCalling.make_claude_tools(tools); const system_prompts = []; - for ( let i = messages.length - 1; i >= 0; i-- ) { + let previous_was_user = false; + for ( const message of messages ) { + if ( typeof message.content === 'string' ) { + message.content = { + type: 'text', + text: message.content, + }; + } + if ( whatis(message.content) !== 'array' ) { + message.content = [message.content]; + } + if ( ! message.role ) message.role = 'user'; + if ( message.role === 'user' && previous_was_user ) { + const last_msg = adapted_messages[adapted_messages.length-1]; + last_msg.content.push( + ...(Array.isArray ? message.content : [message.content]) + ); + continue; + } if ( message.role === 'system' ) { system_prompts.push(...message.content); - messages.splice(i, 1); + continue; + } + adapted_messages.push(message); + if ( message.role === 'user' ) { + previous_was_user = true; + } else { + previous_was_user = false; } }