Improved error handling

This commit is contained in:
Achiya Elyasaf
2023-12-06 08:33:41 +02:00
parent 082afd778f
commit 8fe42a658a
2 changed files with 22 additions and 14 deletions

View File

@@ -18,15 +18,26 @@ class OpenAIAPI {
xhr.open('POST', url, true)
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.setRequestHeader('Authorization', `Bearer ${this.apiKey}`)
xhr.onreadystatechange = function () {
if (xhr.readyState !== 4) return
if (xhr.status !== 200) return reject('Failed to query OpenAI API.')
const jsonResponse = JSON.parse(xhr.responseText)
if (!jsonResponse.choices) return reject('Failed to query OpenAI API.')
return resolve(jsonResponse.choices)
xhr.onerror = function () {
reject('Failed to query OpenAI API: network error.')
}
xhr.onload = function () {
if (xhr.status === 200) {
let jsonResponse
try {
jsonResponse = JSON.parse(xhr.responseText)
} catch (e) {
reject('Failed to query OpenAI API, cannot parse response:\n' + e + '\n' + xhr.responseText)
return
}
if (jsonResponse.hasOwnProperty('choices')) {
resolve(jsonResponse.choices)
} else {
reject('Failed to query OpenAI API: invalid response: ' + jsonResponse)
}
} else {
reject('Failed to query OpenAI API: invalid status: ' + xhr.status + ' - ' + xhr.responseText)
}
}
xhr.send(JSON.stringify(data))
@@ -156,10 +167,7 @@ function handleCommand(command) {
function error(msg, error) {
if(error) {
msg += ` Error message: ${error.message}`
if(error.cause) {
console.error(`\nCause: ${JSON.stringify(error.cause)}`)
}
msg += ` Error message: ${JSON.stringify(error)}`
}
customAlert(msg)
console.error(`LeafLLM: ${msg}`)