diff --git a/readme.md b/readme.md index c31aae6..d115345 100644 --- a/readme.md +++ b/readme.md @@ -315,7 +315,7 @@ See [demos/demo-reverse-proxy](./demos/demo-reverse-proxy.ts) for a full example npx tsx demos/demo-reverse-proxy.ts ``` -`ChatGPTUnofficialProxyAPI` messages also contain a `conversationid` in addition to `parentMessageId`, since the ChatGPT webapp can't reference messages across +`ChatGPTUnofficialProxyAPI` messages also contain a `conversationid` in addition to `parentMessageId`, since the ChatGPT webapp can't reference messages across different accounts & conversations. #### Reverse Proxy diff --git a/src/chatgpt-api.ts b/src/chatgpt-api.ts index b5a1500..c236745 100644 --- a/src/chatgpt-api.ts +++ b/src/chatgpt-api.ts @@ -210,17 +210,15 @@ export class ChatGPTAPI { if (response?.choices?.length) { const delta = response.choices[0].delta - if (delta?.content) { - result.delta = delta.content - result.text += delta.content - result.detail = response + result.delta = delta.content + if (delta?.content) result.text += delta.content + result.detail = response - if (delta.role) { - result.role = delta.role - } - - onProgress?.(result) + if (delta.role) { + result.role = delta.role } + + onProgress?.(result) } } catch (err) { console.warn('OpenAI stream SEE event unexpected error', err) @@ -333,13 +331,17 @@ export class ChatGPTAPI { } const systemMessageOffset = messages.length - let nextMessages = messages.concat([ - { - role: 'user', - content: text, - name: opts.name - } - ]) + let nextMessages = text + ? messages.concat([ + { + ...{ + role: 'user', + content: text, + name: opts.name + } + } + ]) + : messages let numTokens = 0 do {