From 7909cae76e89ccb3f620d4c51719cb39fc219128 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Thu, 23 Jan 2025 10:24:33 -0500 Subject: [PATCH] dev: check 'invalid_request_error' hint from openai --- src/backend/src/api/APIError.js | 4 ++++ src/backend/src/modules/puterai/AIChatService.js | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/backend/src/api/APIError.js b/src/backend/src/api/APIError.js index 82838fa6d..ec70d088a 100644 --- a/src/backend/src/api/APIError.js +++ b/src/backend/src/api/APIError.js @@ -57,6 +57,10 @@ module.exports = class APIError { return `offering ${quot(name)} was not recognized.`; }, }, + 'error_400_from_delegate': { + status: 400, + message: ({ delegate, message }) => `Error 400 from delegate ${quot(delegate)}: ${message}`, + }, // Things 'disallowed_thing': { status: 400, diff --git a/src/backend/src/modules/puterai/AIChatService.js b/src/backend/src/modules/puterai/AIChatService.js index 137ed4934..6ea8c305a 100644 --- a/src/backend/src/modules/puterai/AIChatService.js +++ b/src/backend/src/modules/puterai/AIChatService.js @@ -385,6 +385,12 @@ class AIChatService extends BaseService { tried.push(model); error = e; + if ( e.type === 'invalid_request_error' ) { + throw APIError.create('error_400_from_delegate', null, { + delegate: intended_service, + message: e.message, + }) + } console.error(e); this.log.error('error calling service', { intended_service,