error handling improved in all APIs

This commit is contained in:
mic 2024-10-15 17:08:33 +02:00
parent 9fe528d6c8
commit 80eecda550
6 changed files with 118 additions and 79 deletions

View file

@ -57,13 +57,17 @@ self.onmessage = async function(event) {
if(response.is_exception === true){ if(response.is_exception === true){
error_message = response.error; error_message = response.error;
}else{ }else{
try{
const errorJSON = await response.json(); const errorJSON = await response.json();
errorDetail = JSON.stringify(errorJSON); errorDetail = JSON.stringify(errorJSON);
error_message = errorJSON.error; error_message = errorJSON.error.message;
taLog.log("errorJSON.error.message: " + JSON.stringify(errorJSON.error.message)); }catch(e){
error_message = response.statusText;
} }
postMessage({ type: 'error', payload: i18nStrings["ollama_api_request_failed"] + ": " + error_message }); taLog.log("error_message: " + JSON.stringify(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(); const reader = response.body.getReader();

View file

@ -52,13 +52,17 @@ self.onmessage = async function(event) {
if(response.is_exception === true){ if(response.is_exception === true){
error_message = response.error; error_message = response.error;
}else{ }else{
try{
const errorJSON = await response.json(); const errorJSON = await response.json();
errorDetail = JSON.stringify(errorJSON); errorDetail = JSON.stringify(errorJSON);
error_message = errorJSON.error.message; error_message = errorJSON.error.message;
taLog.error("errorJSON.error.message: " + JSON.stringify(errorJSON.error.message)); }catch(e){
error_message = response.statusText;
} }
postMessage({ type: 'error', payload: error_message }); taLog.log("error_message: " + JSON.stringify(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(); const reader = response.body.getReader();

View file

@ -58,13 +58,17 @@ self.onmessage = async function(event) {
if(response.is_exception === true){ if(response.is_exception === true){
error_message = response.error; error_message = response.error;
}else{ }else{
try{
const errorJSON = await response.json(); const errorJSON = await response.json();
errorDetail = JSON.stringify(errorJSON); errorDetail = JSON.stringify(errorJSON);
error_message = errorJSON.error.message; error_message = errorJSON.error.message;
taLog.log("errorJSON.error.message: " + JSON.stringify(errorJSON.error.message)); }catch(e){
error_message = response.statusText;
} }
postMessage({ type: 'error', payload: i18nStrings["OpenAIComp_api_request_failed"] + ": " + error_message }); taLog.log("error_message: " + JSON.stringify(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(); const reader = response.body.getReader();

View file

@ -29,6 +29,7 @@ export class Ollama {
} }
fetchModels = async () => { fetchModels = async () => {
try{
const response = await fetch(this.host + "/api/tags", { const response = await fetch(this.host + "/api/tags", {
method: "GET", method: "GET",
headers: { headers: {
@ -54,6 +55,14 @@ export class Ollama {
//console.log(">>>>>>>>>> output_response: " + JSON.stringify(output_response)); //console.log(">>>>>>>>>> output_response: " + JSON.stringify(output_response));
return output; 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;
}
} }

View file

@ -33,6 +33,7 @@ export class OpenAI {
fetchModels = async () => { fetchModels = async () => {
try{
const response = await fetch("https://api.openai.com/v1/models", { const response = await fetch("https://api.openai.com/v1/models", {
method: "GET", method: "GET",
headers: { headers: {
@ -57,6 +58,14 @@ export class OpenAI {
output.response = output_response.data.filter(item => item.id.startsWith('gpt-')).sort((a, b) => b.id.localeCompare(a.id)); output.response = output_response.data.filter(item => item.id.startsWith('gpt-')).sort((a, b) => b.id.localeCompare(a.id));
return output; 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;
}
} }
fetchResponse = async (messages, maxTokens = 0) => { fetchResponse = async (messages, maxTokens = 0) => {

View file

@ -66,6 +66,7 @@ export class OpenAIComp {
} }
fetchResponse = async (messages, maxTokens = 0) => { fetchResponse = async (messages, maxTokens = 0) => {
try{
const curr_headers = { const curr_headers = {
"Content-Type": "application/json", "Content-Type": "application/json",
}; };
@ -91,6 +92,14 @@ export class OpenAIComp {
output.error = "OpenAI API Comp request failed: " + error; output.error = "OpenAI API Comp request failed: " + error;
return output; return output;
} }
}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;
}
} }
} }