-
Notifications
You must be signed in to change notification settings - Fork 179
Closed
Description
This is my code, For openai API.
const abortController = new AbortController();
await fetchEventSource(process.env.OPENAI_ENDPOINT + '/v1/chat/completions', {
signal: abortController.signal,
method: 'POST',
headers: {
Authorization: 'Bearer ' + process.env.OPENAI_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: model,
messages: messagesAI,
stream: true,
temperature: 0,
}),
async onopen(response) {
if (response.ok && response.headers.get('content-type') === EventStreamContentType) {
return; // everything's good
} else if (response.status >= 400 && response.status < 500 && response.status !== 429) {
// client-side errors are usually non-retriable:
throw new FatalError();
} else {
throw new RetriableError();
}
},
onmessage(msg) {
if (msg.data === '[DONE]') {
abortController.abort();
return;
}
},
onerror(err) {
if (err instanceof FatalError) {
console.error('[Request] FatalError', err);
} else if (err instanceof RetriableError) {
console.error('[Request] RetriableError', err);
} else {
console.error('[Request] error', err);
throw err;
}
return;
},
openWhenHidden: true,
});
Each request will print an error message on the console:
Metadata
Metadata
Assignees
Labels
No labels