diff --git a/src/api/fetch.ts b/src/api/fetch.ts index 3296fe71c..ab07e15d5 100644 --- a/src/api/fetch.ts +++ b/src/api/fetch.ts @@ -39,15 +39,16 @@ export const streamFetch = ({ url, data, onMessage, abortSignal }: StreamFetchPr return; } - const text = decoder.decode(value).replace(//g, '\n'); - + let text = decoder.decode(value).replace(//g, '\n'); // check system prompt - if (text.startsWith(SYSTEM_PROMPT_PREFIX)) { - systemPrompt = text.replace(SYSTEM_PROMPT_PREFIX, ''); - } else { - responseText += text; - onMessage(text); + if (text.includes(SYSTEM_PROMPT_PREFIX)) { + const arr = text.split(SYSTEM_PROMPT_PREFIX); + systemPrompt = arr.pop() || ''; + + text = arr.join(''); } + responseText += text; + onMessage(text); read(); } catch (err: any) {