From f0ce92559e8f6ea9ff2035f832163dfabc00f849 Mon Sep 17 00:00:00 2001 From: Jay Fong Date: Mon, 20 Feb 2023 16:51:20 +0000 Subject: [PATCH] fix(ChatGPTUnofficialProxyAPI): pass fetch --- src/chatgpt-unofficial-proxy-api.ts | 66 +++++++++++++++-------------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/src/chatgpt-unofficial-proxy-api.ts b/src/chatgpt-unofficial-proxy-api.ts index d73a0d9..6fe2fa6 100644 --- a/src/chatgpt-unofficial-proxy-api.ts +++ b/src/chatgpt-unofficial-proxy-api.ts @@ -155,47 +155,51 @@ export class ChatGPTUnofficialProxyAPI { console.log('POST', url, { body, headers }) } - fetchSSE(url, { - method: 'POST', - headers, - body: JSON.stringify(body), - signal: abortSignal, - onMessage: (data: string) => { - if (data === '[DONE]') { - return resolve(result) - } - - try { - const convoResponseEvent: types.ConversationResponseEvent = - JSON.parse(data) - if (convoResponseEvent.conversation_id) { - result.conversationId = convoResponseEvent.conversation_id + fetchSSE( + url, + { + method: 'POST', + headers, + body: JSON.stringify(body), + signal: abortSignal, + onMessage: (data: string) => { + if (data === '[DONE]') { + return resolve(result) } - if (convoResponseEvent.message?.id) { - result.id = convoResponseEvent.message.id - } + try { + const convoResponseEvent: types.ConversationResponseEvent = + JSON.parse(data) + if (convoResponseEvent.conversation_id) { + result.conversationId = convoResponseEvent.conversation_id + } - const message = convoResponseEvent.message - // console.log('event', JSON.stringify(convoResponseEvent, null, 2)) + if (convoResponseEvent.message?.id) { + result.id = convoResponseEvent.message.id + } - if (message) { - let text = message?.content?.parts?.[0] + const message = convoResponseEvent.message + // console.log('event', JSON.stringify(convoResponseEvent, null, 2)) - if (text) { - result.text = text + if (message) { + let text = message?.content?.parts?.[0] - if (onProgress) { - onProgress(result) + if (text) { + result.text = text + + if (onProgress) { + onProgress(result) + } } } + } catch (err) { + // ignore for now; there seem to be some non-json messages + // console.warn('fetchSSE onMessage unexpected error', err) } - } catch (err) { - // ignore for now; there seem to be some non-json messages - // console.warn('fetchSSE onMessage unexpected error', err) } - } - }).catch((err) => { + }, + this._fetch + ).catch((err) => { const errMessageL = err.toString().toLowerCase() if (