From f0434435c4c12ba70bb86437428f82c72bb35bd0 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Mon, 3 Feb 2025 14:03:27 -0500 Subject: [PATCH] dev: option to normalize AI response (non-streaming) --- src/backend/src/modules/puterai/AIChatService.js | 11 +++++++++++ src/backend/src/modules/puterai/AIInterfaceService.js | 1 + src/puter-js/src/modules/AI.js | 8 ++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/backend/src/modules/puterai/AIChatService.js b/src/backend/src/modules/puterai/AIChatService.js index c8abfa5ce..0541c65e1 100644 --- a/src/backend/src/modules/puterai/AIChatService.js +++ b/src/backend/src/modules/puterai/AIChatService.js @@ -547,6 +547,17 @@ class AIChatService extends BaseService { service_used, }); + + if ( parameters.response?.normalize ) { + ret.result.message = + Messages.normalize_single_message(ret.result.message); + ret.result = { + message: ret.result.message, + via_ai_chat_service: true, + normalized: true, + }; + } + return ret.result; } } diff --git a/src/backend/src/modules/puterai/AIInterfaceService.js b/src/backend/src/modules/puterai/AIInterfaceService.js index b1aef5a42..1037af5ce 100644 --- a/src/backend/src/modules/puterai/AIInterfaceService.js +++ b/src/backend/src/modules/puterai/AIInterfaceService.js @@ -78,6 +78,7 @@ class AIInterfaceService extends BaseService { tools: { type: 'json' }, vision: { type: 'flag' }, stream: { type: 'flag' }, + response: { type: 'json' }, model: { type: 'string' }, }, result: { type: 'json' }, diff --git a/src/puter-js/src/modules/AI.js b/src/puter-js/src/modules/AI.js index 4d783e1e4..93afb4be1 100644 --- a/src/puter-js/src/modules/AI.js +++ b/src/puter-js/src/modules/AI.js @@ -285,8 +285,12 @@ class AI{ options.stream = settings.stream; } - if ( settings.tools ) { - options.tools = settings.tools; + // settings to pass + const SETTINGS_TO_PASS = ['tools', 'response']; + for ( const name of SETTINGS_TO_PASS ) { + if ( settings[name] ) { + options[name] = settings[name]; + } } // Call the original chat.complete method