Skip to content

Commit 0345414

Browse files
authored
Adapt Vllm response format (#379)
Signed-off-by: Yue, Wenjiao <wenjiao.yue@intel.com>
1 parent 26d4ff1 commit 0345414

1 file changed

Lines changed: 38 additions & 30 deletions

File tree

ChatQnA/docker/ui/svelte/src/routes/+page.svelte

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@
3232
} from "$lib/shared/Utils";
3333
import { fetchTextStream } from "$lib/network/chat/Network";
3434
import LoadingAnimation from "$lib/shared/components/loading/Loading.svelte";
35-
import { browser } from "$app/environment";
3635
import "driver.js/dist/driver.css";
3736
import "$lib/assets/layout/css/driver.css";
3837
import UploadFile from "$lib/shared/components/upload/uploadFile.svelte";
3938
import PaperAirplane from "$lib/assets/chat/svelte/PaperAirplane.svelte";
40-
import Gallery from "$lib/shared/components/chat/gallery.svelte";
4139
import Scrollbar from "$lib/shared/components/scrollbar/Scrollbar.svelte";
4240
import ChatMessage from "$lib/modules/chat/ChatMessage.svelte";
4341
@@ -90,43 +88,42 @@
9088
const eventSource = await fetchTextStream(query, knowledge_1);
9189
9290
eventSource.addEventListener("message", (e: any) => {
93-
let Msg = e.data;
94-
if (Msg.startsWith("b")) {
95-
let currentMsg = Msg.slice(2, -1);
96-
const containsNewLine = /\\n/.test(currentMsg);
97-
let requiresDecoding = false;
91+
let msg = e.data;
92+
console.log("msg", msg);
9893
99-
currentMsg = currentMsg.replace(/\\n/g, "\n");
94+
const handleDecodedMessage = (decodedMsg: string) => {
95+
if (decodedMsg !== "</s>") {
96+
decodedMsg = decodedMsg.replace(/\\n/g, "\n");
97+
}
98+
99+
if (chatMessages[chatMessages.length - 1].role === MessageRole.User) {
100+
chatMessages.push({
101+
role: MessageRole.Assistant,
102+
type: MessageType.Text,
103+
content: decodedMsg,
104+
time: startSendTime,
105+
});
106+
} else {
107+
chatMessages[chatMessages.length - 1].content += decodedMsg;
108+
}
109+
110+
scrollToBottom(scrollToDiv);
111+
};
112+
113+
if (msg.startsWith("b")) {
114+
let currentMsg = msg.slice(2, -1);
100115
101116
if (/\\x[\dA-Fa-f]{2}/.test(currentMsg)) {
102117
currentMsg = decodeEscapedBytes(currentMsg);
103-
requiresDecoding = true;
104118
} else if (/\\u[\dA-Fa-f]{4}/.test(currentMsg)) {
105119
currentMsg = decodeUnicode(currentMsg);
106-
requiresDecoding = true;
107120
}
108121
109-
if (containsNewLine && requiresDecoding) {
110-
currentMsg += "\n";
111-
}
112-
if (chatMessages[chatMessages.length - 1].role == MessageRole.User) {
113-
chatMessages = [
114-
...chatMessages,
115-
{
116-
role: MessageRole.Assistant,
117-
type: MessageType.Text,
118-
content: currentMsg,
119-
time: startSendTime,
120-
},
121-
];
122-
} else {
123-
let content = chatMessages[chatMessages.length - 1].content as string;
124-
chatMessages[chatMessages.length - 1].content = content + currentMsg;
125-
}
126-
scrollToBottom(scrollToDiv);
127-
} else if (Msg === "[DONE]") {
128-
let startTime = chatMessages[chatMessages.length - 1].time;
122+
handleDecodedMessage(currentMsg);
123+
} else if (msg === "[DONE]") {
124+
console.log("Done");
129125
126+
let startTime = chatMessages[chatMessages.length - 1].time;
130127
loading = false;
131128
let totalTime = parseFloat(
132129
((getCurrentTimeStamp() - startTime) / 1000).toFixed(2)
@@ -137,8 +134,19 @@
137134
}
138135
139136
storeMessages();
137+
} else {
138+
if (/\\x[\dA-Fa-f]{2}/.test(msg)) {
139+
msg = decodeEscapedBytes(msg);
140+
} else if (/\\u[\dA-Fa-f]{4}/.test(msg)) {
141+
msg = decodeUnicode(msg);
142+
}
143+
144+
let currentMsg = msg.replace(/"/g, "").replace(/\\n/g, "\n");
145+
146+
handleDecodedMessage(currentMsg);
140147
}
141148
});
149+
142150
eventSource.stream();
143151
};
144152

0 commit comments

Comments
 (0)