diff --git a/src/api/controllers/chat.ts b/src/api/controllers/chat.ts index 969b8f9..52f61bc 100644 --- a/src/api/controllers/chat.ts +++ b/src/api/controllers/chat.ts @@ -262,9 +262,8 @@ function messagesPrepare(messages: any[]) { return _content + (v["text"] || ""); }, content); } - return (content += `<|im_start|>${message.role || "user"}\n${ - message.content - }<|im_end|>\n`); + return (content += `<|im_start|>${message.role || "user"}\n${message.content + }<|im_end|>\n`); }, ""); return [ { @@ -327,10 +326,7 @@ async function receiveStream(stream: any): Promise { return str + content; }, ""); const exceptCharIndex = text.indexOf('�'); - let chunk = text.substring( - data.choices[0].message.content.length, - exceptCharIndex == -1 ? text.length : exceptCharIndex - ); + let chunk = text.substring(exceptCharIndex != -1 ? Math.min(data.choices[0].message.content.length, exceptCharIndex) : data.choices[0].message.content.length, exceptCharIndex == -1 ? text.length : exceptCharIndex); if (chunk && result.contentType == "text2image") { chunk = chunk.replace( /https?:\/\/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=\,]*)/gi, @@ -409,7 +405,7 @@ function createTransStream(stream: any, endCallback?: Function) { return str + content; }, ""); const exceptCharIndex = text.indexOf('�'); - let chunk = text.substring(content.length, exceptCharIndex == -1 ? text.length : exceptCharIndex); + let chunk = text.substring(exceptCharIndex != -1 ? Math.min(content.length, exceptCharIndex) : content.length, exceptCharIndex == -1 ? text.length : exceptCharIndex); if (chunk && result.contentType == "text2image") { chunk = chunk.replace( /https?:\/\/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=\,]*)/gi,