diff --git a/api_webchat/model-worker-ollama.js b/api_webchat/model-worker-ollama.js index 9b4485ed..98354fae 100644 --- a/api_webchat/model-worker-ollama.js +++ b/api_webchat/model-worker-ollama.js @@ -57,13 +57,17 @@ self.onmessage = async function(event) { if(response.is_exception === true){ error_message = response.error; }else{ - const errorJSON = await response.json(); - errorDetail = JSON.stringify(errorJSON); - error_message = errorJSON.error; - taLog.log("errorJSON.error.message: " + JSON.stringify(errorJSON.error.message)); + try{ + const errorJSON = await response.json(); + errorDetail = JSON.stringify(errorJSON); + error_message = errorJSON.error.message; + }catch(e){ + error_message = response.statusText; + } + taLog.log("error_message: " + JSON.stringify(error_message)); } - postMessage({ type: 'error', payload: i18nStrings["ollama_api_request_failed"] + ": " + error_message }); - throw new Error("[ThunderAI] Ollama API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail); + postMessage({ type: 'error', payload: i18nStrings["ollama_api_request_failed"] + ": " + response.status + " " + response.statusText + ", Detail: " + error_message + " " + errorDetail }); + throw new Error("[ThunderAI] Ollama API request failed: " + response.status + " " + response.statusText + ", Detail: " + error_message + " " + errorDetail); } const reader = response.body.getReader(); diff --git a/api_webchat/model-worker-openai.js b/api_webchat/model-worker-openai.js index c23c0436..173a3499 100644 --- a/api_webchat/model-worker-openai.js +++ b/api_webchat/model-worker-openai.js @@ -52,13 +52,17 @@ self.onmessage = async function(event) { if(response.is_exception === true){ error_message = response.error; }else{ - const errorJSON = await response.json(); - errorDetail = JSON.stringify(errorJSON); - error_message = errorJSON.error.message; - taLog.error("errorJSON.error.message: " + JSON.stringify(errorJSON.error.message)); + try{ + const errorJSON = await response.json(); + errorDetail = JSON.stringify(errorJSON); + error_message = errorJSON.error.message; + }catch(e){ + error_message = response.statusText; + } + taLog.log("error_message: " + JSON.stringify(error_message)); } - postMessage({ type: 'error', payload: error_message }); - throw new Error("[ThunderAI] OpenAI API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail); + postMessage({ type: 'error', payload: i18nStrings["chatgpt_api_request_failed"] + ": " + response.status + " " + response.statusText + ", Detail: " + error_message + " " + errorDetail }); + throw new Error("[ThunderAI] OpenAI ChatGPT API request failed: " + response.status + " " + response.statusText + ", Detail: " + error_message + " " + errorDetail); } const reader = response.body.getReader(); diff --git a/api_webchat/model-worker-openai_comp.js b/api_webchat/model-worker-openai_comp.js index 20b1bf10..b63de5d7 100644 --- a/api_webchat/model-worker-openai_comp.js +++ b/api_webchat/model-worker-openai_comp.js @@ -58,13 +58,17 @@ self.onmessage = async function(event) { if(response.is_exception === true){ error_message = response.error; }else{ - const errorJSON = await response.json(); - errorDetail = JSON.stringify(errorJSON); - error_message = errorJSON.error.message; - taLog.log("errorJSON.error.message: " + JSON.stringify(errorJSON.error.message)); + try{ + const errorJSON = await response.json(); + errorDetail = JSON.stringify(errorJSON); + error_message = errorJSON.error.message; + }catch(e){ + error_message = response.statusText; + } + taLog.log("error_message: " + JSON.stringify(error_message)); } - postMessage({ type: 'error', payload: i18nStrings["OpenAIComp_api_request_failed"] + ": " + error_message }); - throw new Error("[ThunderAI] OpenAI Comp API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail); + postMessage({ type: 'error', payload: i18nStrings["OpenAIComp_api_request_failed"] + ": " + response.status + " " + response.statusText + ", Detail: " + error_message + " " + errorDetail }); + throw new Error("[ThunderAI] OpenAI Comp API request failed: " + response.status + " " + response.statusText + ", Detail: " + error_message + " " + errorDetail); } const reader = response.body.getReader(); diff --git a/js/api/ollama.js b/js/api/ollama.js index 2ad59032..68506afd 100644 --- a/js/api/ollama.js +++ b/js/api/ollama.js @@ -29,31 +29,40 @@ export class Ollama { } fetchModels = async () => { - const response = await fetch(this.host + "/api/tags", { - method: "GET", - headers: { - "Content-Type": "application/json" - }, - }); + try{ + const response = await fetch(this.host + "/api/tags", { + method: "GET", + headers: { + "Content-Type": "application/json" + }, + }); - if (!response.ok) { - const errorDetail = await response.text(); - let err_msg = "[ThunderAI] Ollama API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail; - console.error(err_msg); - let output = {}; - output.ok = false; - output.error = errorDetail; - return output; + if (!response.ok) { + const errorDetail = await response.text(); + let err_msg = "[ThunderAI] Ollama API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail; + console.error(err_msg); + let output = {}; + output.ok = false; + output.error = errorDetail; + return output; + } + + let output = {}; + output.ok = true; + let output_response = await response.json(); + output.response = output_response; + + //console.log(">>>>>>>>>> output_response: " + JSON.stringify(output_response)); + + return output; + }catch (error) { + console.error("[ThunderAI] Ollama API request failed: " + error); + let output = {}; + output.is_exception = true; + output.ok = false; + output.error = "Ollama API request failed: " + error; + return output; } - - let output = {}; - output.ok = true; - let output_response = await response.json(); - output.response = output_response; - - //console.log(">>>>>>>>>> output_response: " + JSON.stringify(output_response)); - - return output; } diff --git a/js/api/openai.js b/js/api/openai.js index 9eb21fda..11d4398d 100644 --- a/js/api/openai.js +++ b/js/api/openai.js @@ -33,30 +33,39 @@ export class OpenAI { fetchModels = async () => { - const response = await fetch("https://api.openai.com/v1/models", { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: "Bearer "+ this.apiKey - }, - }); + try{ + const response = await fetch("https://api.openai.com/v1/models", { + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: "Bearer "+ this.apiKey + }, + }); - if (!response.ok) { - const errorDetail = await response.text(); - let err_msg = "[ThunderAI] OpenAI API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail; - console.error(err_msg); - let output = {}; - output.ok = false; - output.error = errorDetail; - return output; + if (!response.ok) { + const errorDetail = await response.text(); + let err_msg = "[ThunderAI] OpenAI API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail; + console.error(err_msg); + let output = {}; + output.ok = false; + output.error = errorDetail; + return output; + } + + 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; + }catch (error) { + console.error("[ThunderAI] OpenAI API request failed: " + error); + let output = {}; + output.is_exception = true; + output.ok = false; + output.error = "OpenAI API request failed: " + error; + return output; } - - 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; } fetchResponse = async (messages, maxTokens = 0) => { diff --git a/js/api/openai_comp.js b/js/api/openai_comp.js index fe80caaa..fd901cbc 100644 --- a/js/api/openai_comp.js +++ b/js/api/openai_comp.js @@ -66,23 +66,32 @@ export class OpenAIComp { } fetchResponse = async (messages, maxTokens = 0) => { - const curr_headers = { - "Content-Type": "application/json", - }; - if(this.apiKey !== '') curr_headers["Authorization"] = "Bearer "+ this.apiKey; + try{ + const curr_headers = { + "Content-Type": "application/json", + }; + if(this.apiKey !== '') curr_headers["Authorization"] = "Bearer "+ this.apiKey; - try { - const response = await fetch(this.host + (this.use_v1 ? "/v1" : "") + "/chat/completions", { - method: "POST", - headers: curr_headers, - body: JSON.stringify({ - model: this.model, - messages: messages, - stream: this.stream, - ...(maxTokens > 0 ? { 'max_tokens': parseInt(maxTokens) } : {}) - }), - }); - return response; + try { + const response = await fetch(this.host + (this.use_v1 ? "/v1" : "") + "/chat/completions", { + method: "POST", + headers: curr_headers, + body: JSON.stringify({ + model: this.model, + messages: messages, + stream: this.stream, + ...(maxTokens > 0 ? { 'max_tokens': parseInt(maxTokens) } : {}) + }), + }); + return response; + }catch (error) { + console.error("[ThunderAI] OpenAI API Comp request failed: " + error); + let output = {}; + output.is_exception = true; + output.ok = false; + output.error = "OpenAI API Comp request failed: " + error; + return output; + } }catch (error) { console.error("[ThunderAI] OpenAI API Comp request failed: " + error); let output = {};