File size: 1,412 Bytes
faf4ba4 c32ec0d 2f7798c c74ff6a 9bfb451 2531bbf 9bfb451 2f7798c c32ec0d 2f7798c c74ff6a 5dd2af5 c985fd8 5dd2af5 2f7798c c32ec0d 2f7798c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
export function dirtyLLMResponseCleaner(input: string): string {
let str = (
`${input || ""}`
// a summary of all the weird hallucinations I saw it make..
.replaceAll(`"\n`, `",\n`) // fix missing commas at the end of a line
.replaceAll(`"]`, `"}]`)
.replaceAll(/"\S*,?\S*\]/gi, `"}]`)
.replaceAll(/"\S*,?\S*\}\S*]/gi, `"}]`)
// this removes the trailing commas (which are valid in JS but not JSON)
.replace(/,(?=\s*?[\}\]])/g, '')
.replaceAll("}}", "}")
.replaceAll("]]", "]")
.replaceAll("[[", "[")
.replaceAll("{{", "{")
.replaceAll(",,", ",")
.replaceAll("[0]", "")
.replaceAll("[1]", "")
.replaceAll("[2]", "")
.replaceAll("[3]", "")
.replaceAll("[4]", "")
.replaceAll("[5]", "")
.replaceAll("[6]", "")
.replaceAll("[7]", "")
.replaceAll("[8]", "")
.replaceAll("[panel 0]", "")
.replaceAll("[panel 1]", "")
.replaceAll("[panel 2]", "")
.replaceAll("[panel 3]", "")
.replaceAll("[panel 4]", "")
.replaceAll("[panel 5]", "")
.replaceAll("[panel 6]", "")
.replaceAll("[panel 7]", "")
.replaceAll("[panel 8]", "")
)
// repair missing end of JSON array
if (str.at(-1) === '}') {
str = str + "]"
}
if (str.at(-1) === '"') {
str = str + "}]"
}
if (str[0] === '{') {
str = "[" + str
}
if (str[0] === '"') {
str = "[{" + str
}
return str
} |