forked from XiaoMo/ChatGPT-Next-Web
parent
a402f646fe
commit
30676d118f
@ -71,9 +71,13 @@ export class ChatGPTApi implements LLMApi {
|
||||
|
||||
if (shouldStream) {
|
||||
let responseText = "";
|
||||
let finished = false;
|
||||
|
||||
const finish = () => {
|
||||
options.onFinish(responseText);
|
||||
if (!finished) {
|
||||
options.onFinish(responseText);
|
||||
finished = true;
|
||||
}
|
||||
};
|
||||
|
||||
controller.signal.onabort = finish;
|
||||
@ -83,19 +87,21 @@ export class ChatGPTApi implements LLMApi {
|
||||
async onopen(res) {
|
||||
clearTimeout(requestTimeoutId);
|
||||
if (
|
||||
res.ok &&
|
||||
res.headers.get("content-type") !== EventStreamContentType
|
||||
!res.ok ||
|
||||
res.headers.get("content-type") !== EventStreamContentType ||
|
||||
res.status !== 200
|
||||
) {
|
||||
responseText += await res.clone().json();
|
||||
return finish();
|
||||
}
|
||||
if (res.status === 401) {
|
||||
let extraInfo = { error: undefined };
|
||||
try {
|
||||
extraInfo = await res.clone().json();
|
||||
} catch {}
|
||||
|
||||
responseText += "\n\n" + Locale.Error.Unauthorized;
|
||||
if (res.status === 401) {
|
||||
if (responseText.length > 0) {
|
||||
responseText += "\n\n";
|
||||
}
|
||||
responseText += Locale.Error.Unauthorized;
|
||||
}
|
||||
|
||||
if (extraInfo.error) {
|
||||
responseText += "\n\n" + prettyObject(extraInfo);
|
||||
|
Loading…
Reference in New Issue
Block a user