From 9cbb741a8ae8ea6b869b6ccf64cd3152b28c2b8c Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Wed, 22 Jan 2025 19:55:33 -0500 Subject: [PATCH] fix: new edge cases with function calls / tools --- src/backend/src/modules/puterai/AIChatService.js | 4 ++++ src/backend/src/modules/puterai/OpenAICompletionService.js | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/backend/src/modules/puterai/AIChatService.js b/src/backend/src/modules/puterai/AIChatService.js index 1e85851e2..137ed4934 100644 --- a/src/backend/src/modules/puterai/AIChatService.js +++ b/src/backend/src/modules/puterai/AIChatService.js @@ -551,6 +551,10 @@ class AIChatService extends BaseService { async moderate ({ messages }) { for ( const msg of messages ) { const texts = []; + + // Function calls have no content + if ( msg.content === null ) continue; + if ( typeof msg.content === 'string' ) texts.push(msg.content); else if ( typeof msg.content === 'object' ) { if ( Array.isArray(msg.content) ) { diff --git a/src/backend/src/modules/puterai/OpenAICompletionService.js b/src/backend/src/modules/puterai/OpenAICompletionService.js index 7ddfd6595..b71f2ea43 100644 --- a/src/backend/src/modules/puterai/OpenAICompletionService.js +++ b/src/backend/src/modules/puterai/OpenAICompletionService.js @@ -258,6 +258,9 @@ class OpenAICompletionService extends BaseService { throw new Error('each message must be a string or an object'); } if ( ! msg.role ) msg.role = 'user'; + if ( msg.role === 'assistant' && ! msg.content ) { + continue; + } if ( ! msg.content ) { throw new Error('each message must have a `content` property'); }