diff --git a/js/api/openai.js b/js/api/openai.js index b39e5e28..71616ba6 100644 --- a/js/api/openai.js +++ b/js/api/openai.js @@ -45,12 +45,18 @@ export class OpenAI { const errorDetail = await response.text(); let err_msg = "[ThunderAI] OpenAI API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail; console.error(err_msg); - return false; + let output = {}; + output.ok = false; + output.error = errorDetail; + return output; } - let output = await response.json(); + let output = {}; + output.ok = true; + let output_response = await response.json(); + output.response = output_response.data.filter(item => item.id.startsWith('gpt-')).sort((a, b) => b.id.localeCompare(a.id)); - return output.data.filter(item => item.id.startsWith('gpt-')).sort((a, b) => b.id.localeCompare(a.id)); + return output; } fetchResponse = async (messages, maxTokens = 0) => { diff --git a/options/mzta-options.js b/options/mzta-options.js index 875dc23e..19417639 100644 --- a/options/mzta-options.js +++ b/options/mzta-options.js @@ -171,14 +171,15 @@ document.addEventListener('DOMContentLoaded', async () => { document.getElementById('model_fetch_loading').style.display = 'inline'; let openai = new OpenAI(document.getElementById("chatgpt_api_key").value, true); openai.fetchModels().then((data) => { - if(!data){ + if(!data.ok){ + let errorDetail = JSON.parse(data.error); document.getElementById('model_fetch_loading').style.display = 'none'; console.error("[ThunderAI] " + browser.i18n.getMessage("ChatGPT_Models_Error_fetching")); - alert(browser.i18n.getMessage("ChatGPT_Models_Error_fetching")); + alert(browser.i18n.getMessage("ChatGPT_Models_Error_fetching")+": " + errorDetail.error.message); return; } //console.log(">>>>>>>>> ChatGPT models: " + JSON.stringify(data)); - data.forEach(model => { + data.response.forEach(model => { if (!Array.from(select_chatgpt_model.options).some(option => option.value === model.id)) { const option = document.createElement('option'); option.value = model.id;