SimpleChat:DU: Add trim garbage at end in loop helper
This commit is contained in:
parent
c83c19ad4c
commit
54802dc184
2 changed files with 26 additions and 8 deletions
|
@ -6,12 +6,12 @@
|
|||
|
||||
/**
|
||||
* Simple minded logic to help remove repeating garbage at end of the string.
|
||||
* TODO: Initial skeleton
|
||||
* @param {string} sIn
|
||||
* @param {number} maxSubL
|
||||
* @param {number} maxMatchLenThreshold
|
||||
*/
|
||||
export function trim_repeat_garbage_at_end(sIn, maxSubL=10) {
|
||||
export function trim_repeat_garbage_at_end(sIn, maxSubL=10, maxMatchLenThreshold=40) {
|
||||
let rCnt = [0];
|
||||
const MaxMatchLenThreshold = maxSubL*4;
|
||||
let maxMatchLen = maxSubL;
|
||||
let iMML = -1;
|
||||
for(let subL=1; subL < maxSubL; subL++) {
|
||||
|
@ -32,9 +32,27 @@ export function trim_repeat_garbage_at_end(sIn, maxSubL=10) {
|
|||
}
|
||||
}
|
||||
console.log("DBUG:DU:TrimRepeatGarbage:", rCnt);
|
||||
if ((iMML == -1) || (maxMatchLen < MaxMatchLenThreshold)) {
|
||||
return sIn;
|
||||
if ((iMML == -1) || (maxMatchLen < maxMatchLenThreshold)) {
|
||||
return {trimmed: false, data: sIn};
|
||||
}
|
||||
let iEnd = sIn.length - maxMatchLen;
|
||||
return { trimmed: true, data: sIn.substring(0, iEnd) };
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Simple minded logic to help remove repeating garbage at end of the string, till it cant.
|
||||
* @param {string} sIn
|
||||
* @param {number} maxSubL
|
||||
* @param {number | undefined} [maxMatchLenThreshold]
|
||||
*/
|
||||
export function trim_repeat_garbage_at_end_loop(sIn, maxSubL, maxMatchLenThreshold) {
|
||||
let sCur = sIn;
|
||||
while(true) {
|
||||
let got = trim_repeat_garbage_at_end(sCur, maxSubL, maxMatchLenThreshold);
|
||||
if (got.trimmed != true) {
|
||||
return got.data;
|
||||
}
|
||||
sCur = got.data;
|
||||
}
|
||||
let iEnd = sIn.length - maxMatchLen + iMML;
|
||||
return sIn.substring(0,iEnd)
|
||||
}
|
||||
|
|
|
@ -481,7 +481,7 @@ class MultiChatUI {
|
|||
assistantMsg = respBody["content"];
|
||||
}
|
||||
}
|
||||
assistantMsg = du.trim_repeat_garbage_at_end(assistantMsg, 32);
|
||||
assistantMsg = du.trim_repeat_garbage_at_end_loop(assistantMsg, 32, 72);
|
||||
chat.add(Roles.Assistant, assistantMsg);
|
||||
if (chatId == this.curChatId) {
|
||||
chat.show(this.elDivChat);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue