handling error messages from the ChatGPT API

This commit is contained in:
mic 2024-07-21 16:49:36 +02:00
parent 113656a257
commit 37ec6ca76a
4 changed files with 42 additions and 8 deletions

View file

@ -55,6 +55,9 @@ worker.onmessage = function(event) {
case 'tokensDone':
messagesArea.handleTokensDone();
break;
case 'error':
messagesArea.appendBotMessage(payload);
break;
default:
console.error('Unknown event type from worker:', type);
}

View file

@ -152,6 +152,26 @@ class MessagesArea extends HTMLElement {
this.accumulatingMessageEl = null;
}
}
appendBotMessage(messageText) {
console.log("appendBotMessage: " + messageText);
const lastMessage = this.messages.lastElementChild;
const isLastMessageFromUser = lastMessage && lastMessage.classList.contains('user');
if (isLastMessageFromUser) {
const header = document.createElement('h2');
header.textContent = "Bot";
this.messages.appendChild(header);
}
const messageElement = document.createElement('div');
messageElement.classList.add('message', 'bot');
messageElement.textContent = messageText;
this.messages.appendChild(messageElement);
this.scrollToBottom();
}
}
customElements.define('messages-area', MessagesArea);

View file

@ -52,6 +52,15 @@ self.onmessage = async function(event) {
// });
const response = await openai.fetchResponse("gpt-4o-mini", conversationHistory); //4096);
postMessage({ type: 'messageSent' });
if (!response.ok) {
const errorJSON = await response.json();
const errorDetail = JSON.stringify(errorJSON);
console.log(">>>>>>>>>>>>> errorJSON.error.message: " + JSON.stringify(errorJSON.error.message));
postMessage({ type: 'error', payload: errorJSON.error.message });
throw new Error("[ThunderAI] OpenAI API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail);
}
const reader = response.body.getReader();
const decoder = new TextDecoder("utf-8");

View file

@ -63,15 +63,17 @@ export class OpenAI {
}),
});
if (!response.ok) {
const errorDetail = await response.text();
let err_msg = "[ThunderAI] OpenAI API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail;
console.log(err_msg);
throw new Error(err_msg);
}
// if (!response.ok) {
// const errorDetail = await response.text();
// let err_msg = "[ThunderAI] OpenAI API request failed: " + response.status + " " + response.statusText + ", Detail: " + errorDetail;
// console.log(err_msg);
// throw new Error(err_msg);
// }
const responseData = await response.json();
return responseData.choices[0].message.content;
// const responseData = await response.json();
// return responseData.choices[0].message.content;
return response;
}
}