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'); }