@@ -152,7 +152,7 @@ class OpenAICompletionService extends BaseService {
152
152
* AI Chat completion method.
153
153
* See AIChatService for more details.
154
154
*/
155
- async complete ( { messages, test_mode, stream, model } ) {
155
+ async complete ( { messages, test_mode, stream, model, tools } ) {
156
156
157
157
// for now this code (also in AIChatService.js) needs to be
158
158
// duplicated because this hasn't been moved to be under
@@ -195,6 +195,7 @@ class OpenAICompletionService extends BaseService {
195
195
196
196
return await this . complete ( messages , {
197
197
model : model ,
198
+ tools,
198
199
moderation : true ,
199
200
stream,
200
201
} ) ;
@@ -242,7 +243,7 @@ class OpenAICompletionService extends BaseService {
242
243
* @returns {Promise<Object> } The completion response containing message and usage info
243
244
* @throws {Error } If messages are invalid or content is flagged by moderation
244
245
*/
245
- async complete ( messages , { stream, moderation, model } ) {
246
+ async complete ( messages , { stream, moderation, model, tools } ) {
246
247
// Validate messages
247
248
if ( ! Array . isArray ( messages ) ) {
248
249
throw new Error ( '`messages` must be an array' ) ;
@@ -360,6 +361,7 @@ class OpenAICompletionService extends BaseService {
360
361
user : user_private_uid ,
361
362
messages : messages ,
362
363
model : model ,
364
+ ...( tools ? { tools } : { } ) ,
363
365
// max_tokens,
364
366
stream,
365
367
...( stream ? {
@@ -449,9 +451,9 @@ class OpenAICompletionService extends BaseService {
449
451
}
450
452
451
453
// We need to moderate the completion too
452
- if ( moderation ) {
453
- const text = completion . choices [ 0 ] . message . content ;
454
- const moderation_result = await this . check_moderation ( text ) ;
454
+ const mod_text = completion . choices [ 0 ] . message . content ;
455
+ if ( moderation && mod_text !== null ) {
456
+ const moderation_result = await this . check_moderation ( mod_text ) ;
455
457
if ( moderation_result . flagged ) {
456
458
throw new Error ( 'message is not allowed' ) ;
457
459
}
0 commit comments