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) {