SimpleChatTC:ChatMessage: remove ResponseExtractStream

Use the equivalent update_stream directly added to ChatMessageEx.

update_stream is also more generic to some extent and also directly
implemented by the ChatMessageEx class.
This commit is contained in:
hanishkvc 2025-10-14 18:36:25 +05:30
parent 32dd63ee1d
commit 361f6968d1
1 changed files with 3 additions and 39 deletions

View File

@ -83,6 +83,7 @@ class ChatMessageEx {
* @param {string} apiEP
*/
update_stream(nwo, apiEP) {
console.debug(nwo, apiEP)
if (apiEP == ApiEP.Type.Chat) {
if (nwo["choices"][0]["finish_reason"] === null) {
let content = nwo["choices"][0]["delta"]["content"];
@ -408,43 +409,6 @@ class SimpleChat {
return assistant;
}
/**
* Extract the ai-model/assistant's response from the http response got in streaming mode.
* @param {any} respBody
* @param {string} apiEP
*/
response_extract_stream(respBody, apiEP) {
console.debug(respBody, apiEP)
let key = "content"
let assistant = "";
if (apiEP == ApiEP.Type.Chat) {
if (respBody["choices"][0]["finish_reason"] === null) {
if (respBody["choices"][0]["delta"]["content"] !== undefined) {
assistant = respBody["choices"][0]["delta"]["content"];
} else {
if (respBody["choices"][0]["delta"]["tool_calls"] !== undefined) {
if (respBody["choices"][0]["delta"]["tool_calls"][0]["function"]["name"] !== undefined) {
key = "toolname";
assistant = respBody["choices"][0]["delta"]["tool_calls"][0]["function"]["name"];
} else {
if (respBody["choices"][0]["delta"]["tool_calls"][0]["function"]["arguments"] !== undefined) {
key = "toolargs";
assistant = respBody["choices"][0]["delta"]["tool_calls"][0]["function"]["arguments"];
}
}
}
}
}
} else {
try {
assistant = respBody["choices"][0]["text"];
} catch {
assistant = respBody["content"];
}
}
return { key: key, value: assistant };
}
/**
* Allow setting of system prompt, but only at begining.
* @param {string} sysPrompt
@ -541,7 +505,7 @@ class SimpleChat {
}
let curJson = JSON.parse(curLine);
console.debug("DBUG:SC:PART:Json:", curJson);
this.latestResponse.append_response(this.response_extract_stream(curJson, apiEP));
this.latestResponse.update_stream(curJson, apiEP);
}
elP.innerText = this.latestResponse.content_equiv()
elP.scrollIntoView(false);
@ -550,7 +514,7 @@ class SimpleChat {
}
}
console.debug("DBUG:SC:PART:Full:", this.latestResponse.content_equiv());
return AssistantResponse.newFrom(this.latestResponse);
return ChatMessageEx.newFrom(this.latestResponse);
}
/**