Skip to content

Commit 08a8c5f

Browse files
committed
fix: try to fix quote bad case in sonnet which maybe more fit to real world case.
1 parent 369d691 commit 08a8c5f

2 files changed

Lines changed: 313 additions & 19 deletions

File tree

src/server/model/openai.spec.ts

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,4 +246,94 @@ describe('ensureJSONOutput', () => {
246246
const result = ensureJSONOutput(input);
247247
expect(result).toBeNull();
248248
});
249+
250+
describe('fixJSONQuotes', () => {
251+
test('should fix JSON with unescaped quotes', () => {
252+
const input = '{"name": "test", "value": "Hello"World""}';
253+
const result = ensureJSONOutput(input);
254+
expect(result).not.toBeNull();
255+
expect(result).toEqual({
256+
name: 'test',
257+
value: 'Hello"World"',
258+
});
259+
});
260+
261+
test('real world bad case', () => {
262+
const input = `{"cmbdfamou7qny7b2rrz4t7k4u":"我无法继续故事,它显示从头开始","cmbdgp1jh8ols7b2r31vnjbwi":"我无法从我的角色列表中选择/打开角色。","cmbd4s58ayspq7b2ry7yeoy7c":"为什么现在看起来有过滤器?","cmbczp7tgttyx7b2r8st3eabp":"什么是找不到机器人?我正常地与它聊天,突然出现了这个。\n我甚至尝试重启手机,但没有解决任何问题\n这是否意味着创建者删除了机器人,或类似的事情?","cmbd1zoqmvwfa7b2r8cjafn9b":"机器人消失了","cmbd86nqz1xu47b2r1kau4kxp":"我希望从Macha模型到Peach模型都能很好地与用户扮演角色","cmbd7jmot1d8k7b2rgco8ay6m":"我不知道这是否是一个bug。但是离开应用一秒钟就必须等待它重新加载,这非常烦人。","cmbd2yr1zwyca7b2rumfd2tyr":"1. 写字总是没有空格\n2. 总是健忘,我已经解释我是男生但变成了女生\n3. 总是弄错名字\n4. 打字不清楚","cmbd8zggm2nnk7b2rlwjd3jqc":"你好Emochi团队,\n我在打开应用中的对话时遇到'加载失败!'错误。已尝试检查网络、清除缓存、注销-重新登录和更新应用,但错误仍然发生。希望团队帮忙检查。\n我使用[Android],账户UID/ID是[qlXVR78Gz14OO0-6lt0Kh]。\n\n感谢团队!","cmbd42wjby3067b2r8c3ifn7d":"除了我最近交谈的人外,我的角色列表已经消失了","cmbdaj9gt40pc7b2rqvhy6g3e":"每次我通过应用程序或网站打开emochi并登录我的账户时,我账户的所有数据都会被删除,我失去了一切,请保存账户","cmbdawngx4cnk7b2rpb5t6fns":"当{{user}}有对话时,AI不知道如何在生成文本时重复{{user}}的对话。请修复它。","cmbdflhb47yd87b2rnk7ozw5g":"没有引号来区分对话和解释,所以阅读时不舒服,请修复!","cmbdgjy3g8l7s7b2rvsvr8sj1":"通常为了区分叙述句和对话,对话句之间会有引号,但为什么没有?这非常不舒服,请修复它\n例如:\n*我转向他并微笑*'你好,你好吗?'\n但是有一个令人烦恼和不舒服的bug,bug是这样的:\n*我转向他并微笑你好你好吗*\n现在这很混乱,因为它让我们不知道这是否是对话!\n所以请立即修复!!!!!!","cmbdgqh718pic7b2r02hop8po":"我想报告一个影响此应用程序可用性的关键bug。对话和叙述应该用引号("...")分隔。正确写法示例:\n\n我转向他并微笑"你好,你好吗?"\n\n然而,应用程序中发生的是对话写在没有引号的情况下,像这样:\n\n我转向他并微笑你好,你好吗?\n\n没有引号,句子变得混乱,因为不清楚哪个是叙述,哪个是对话。这非常分散注意力,尤其是在写包含角色之间大量互动的故事时。\n\n请尽快修复这个bug。谢谢!","cmbd72kqn0yt27b2rs407n20g":"我错误地设置了'Vainilla Short'模式,当我尝试更改为'Vainilla'时,显示那是所选模式,但回复仍然很短 :(","cmbdbj9gz4vlq7b2rluj7dw3n":"搜索功能不工作。什么都没有出现,请修复","cmbd4spsnytas7b2ra3i654dt":"简短的回答","cmbddez1y6ca47b2rlseo22fd":"每次我试图进入那个机器人,屏幕变黑大约30-40秒,然后将我踢出应用程序,此外在外面(我用粉色标出的部分)可以看到那条消息,它显示为机器人的介绍,而那不是我停留的地方,因为我已经使用它超过4个月了,每次我尝试进入其他机器人时没有任何问题,除了这个,但这是我想要的,请修复它,已经这样2天了🙏🏻","cmbdic8ff9tcc7b2r3lc4s3i9":"角色/AI有时会说名字或职业,如图所示,在对话中他突然说"矿山",尽管我的名字是Albert","cmbdj3u1tac3w7b2rffhfzw09":"我之前创建了一个对所有用户公开访问的机器人。然而,它最近对其他人不可用,也不再出现在我的账户上。奇怪的是,我自己仍然可以看到并与机器人互动。我不确定是什么导致了这个问题,但如果你能调查并帮助解决这个问题,我将不胜感激。先谢谢了。","cmbdhrqgf9etk7b2rc5okz76e":"即使我固定了很多角色,也没有固定按钮","cmbdrctdo2bsflvhjp2wvvp4z":"不让我玩","cmbdrw4o12vinlvhjq66qu372":"角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色像对待女人一样对待我。","cmbduzksr64udlvhj87nwel9x":"角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色都把我当成女人。","cmbdw66wv7d8xlvhjngm5oahc":"角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色像女人一样对待我,所有角色24小时都像女人一样对待我","cmbe5j6prgwj9lvhj51mira1c":"即使你选择了女性,他们也会把你当作男性。(例如,用"bellissimo"而不是"bellissima")","cmbdk2j4qb06k7b2rn6mkkxpc":"聊天对象的机器人不见了QQ","cmbdj0xb4aa567b2ryi1qbg5t":"机器人对话错误,我昨晚更改了一个角色的对话,但直到今天早上对话仍未改变,继续使用以前的对话","cmbdy00uh98gvlvhjra8rs31y":"我无法打开任何消息来继续它们","cmbe73t6sief1lvhjpdsnora6":"角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色把我当女人对待2个月","cmbea5621l4ivlvhjng6kt0fk":"角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色把我当女性化的女人对待6个月","cmbdpgeld0fvvlvhjzx1qr3zh":"反复显示一个人,我说我,但这个人却接受并执行我给出的句子","cmbdvjpzx6publvhjj2z8n2se":"消息错误","cmbdkcwjzb7e47b2rvw8qy6nk":"Bug报告 - 角色删除\n\n我想报告最近在Emochi应用程序中发生的问题。我的一个角色被删除,没有任何警告,尽管它不包含露骨图像、NSFW内容或任何违反社区准则的内容。\n\n该角色是创意故事的一部分,完全符合平台的可接受标准。删除似乎是自动进行的,没有明显的理由。这对我在应用程序中的体验产生了负面影响,还影响了数小时的创作和叙事发展。\n\n请检查发生的情况,如果可能,恢复被删除的角色。我还建议对自动审核过滤器进行更仔细的分析,以避免将来出现这样的不当删除。","cmbdpc8hi0bvjlvhjd7omwqse":"我不小心删除了角色,有什么方法可以恢复吗?\nID: R3dk7EVoiNJoGgT1G6eQ3\n请帮助我恢复它们,我们非常需要它们","cmbdjdqocainy7b2rqewcvk81":"尊敬的emochi管理员,为什么必须有'糟糕,找不到机器人'这样的提示呢,拜托emochi管理员,我已经创建了很长的情节,请修复它,😭😭,我不想让机器人消失,请回复,不要只是阅读管理员😭😭😭🙏🙏","cmbe2satqe8xtlvhj8a3r9y48":"不让我玩\n\n\n\n\n","cmbdxlubk8thjlvhjwg8f1vpt":"当被提醒它从不好好回应时,机器人无缘无故地回复我,请修复这个问题,这会使按下继续或重新生成时的回应看起来无聊且烦人","cmbe00ht1bb2tlvhjthbrvq4i":"请恢复消息的回复,这样会更好\n"}`;
263+
const expectObj = {
264+
cmbdfamou7qny7b2rrz4t7k4u: '我无法继续故事,它显示从头开始',
265+
cmbdgp1jh8ols7b2r31vnjbwi: '我无法从我的角色列表中选择/打开角色。',
266+
cmbd4s58ayspq7b2ry7yeoy7c: '为什么现在看起来有过滤器?',
267+
cmbczp7tgttyx7b2r8st3eabp:
268+
'什么是找不到机器人?我正常地与它聊天,突然出现了这个。\n我甚至尝试重启手机,但没有解决任何问题\n这是否意味着创建者删除了机器人,或类似的事情?',
269+
cmbd1zoqmvwfa7b2r8cjafn9b: '机器人消失了',
270+
cmbd86nqz1xu47b2r1kau4kxp:
271+
'我希望从Macha模型到Peach模型都能很好地与用户扮演角色',
272+
cmbd7jmot1d8k7b2rgco8ay6m:
273+
'我不知道这是否是一个bug。但是离开应用一秒钟就必须等待它重新加载,这非常烦人。',
274+
cmbd2yr1zwyca7b2rumfd2tyr:
275+
'1. 写字总是没有空格\n2. 总是健忘,我已经解释我是男生但变成了女生\n3. 总是弄错名字\n4. 打字不清楚',
276+
cmbd8zggm2nnk7b2rlwjd3jqc:
277+
"你好Emochi团队,\n我在打开应用中的对话时遇到'加载失败!'错误。已尝试检查网络、清除缓存、注销-重新登录和更新应用,但错误仍然发生。希望团队帮忙检查。\n我使用[Android],账户UID/ID是[qlXVR78Gz14OO0-6lt0Kh]。\n\n感谢团队!",
278+
cmbd42wjby3067b2r8c3ifn7d:
279+
'除了我最近交谈的人外,我的角色列表已经消失了',
280+
cmbdaj9gt40pc7b2rqvhy6g3e:
281+
'每次我通过应用程序或网站打开emochi并登录我的账户时,我账户的所有数据都会被删除,我失去了一切,请保存账户',
282+
cmbdawngx4cnk7b2rpb5t6fns:
283+
'当{{user}}有对话时,AI不知道如何在生成文本时重复{{user}}的对话。请修复它。',
284+
cmbdflhb47yd87b2rnk7ozw5g:
285+
'没有引号来区分对话和解释,所以阅读时不舒服,请修复!',
286+
cmbdgjy3g8l7s7b2rvsvr8sj1:
287+
"通常为了区分叙述句和对话,对话句之间会有引号,但为什么没有?这非常不舒服,请修复它\n例如:\n*我转向他并微笑*'你好,你好吗?'\n但是有一个令人烦恼和不舒服的bug,bug是这样的:\n*我转向他并微笑你好你好吗*\n现在这很混乱,因为它让我们不知道这是否是对话!\n所以请立即修复!!!!!!",
288+
cmbdgqh718pic7b2r02hop8po:
289+
'我想报告一个影响此应用程序可用性的关键bug。对话和叙述应该用引号("...")分隔。正确写法示例:\n\n我转向他并微笑"你好,你好吗?"\n\n然而,应用程序中发生的是对话写在没有引号的情况下,像这样:\n\n我转向他并微笑你好,你好吗?\n\n没有引号,句子变得混乱,因为不清楚哪个是叙述,哪个是对话。这非常分散注意力,尤其是在写包含角色之间大量互动的故事时。\n\n请尽快修复这个bug。谢谢!',
290+
cmbd72kqn0yt27b2rs407n20g:
291+
"我错误地设置了'Vainilla Short'模式,当我尝试更改为'Vainilla'时,显示那是所选模式,但回复仍然很短 :(",
292+
cmbdbj9gz4vlq7b2rluj7dw3n: '搜索功能不工作。什么都没有出现,请修复',
293+
cmbd4spsnytas7b2ra3i654dt: '简短的回答',
294+
cmbddez1y6ca47b2rlseo22fd:
295+
'每次我试图进入那个机器人,屏幕变黑大约30-40秒,然后将我踢出应用程序,此外在外面(我用粉色标出的部分)可以看到那条消息,它显示为机器人的介绍,而那不是我停留的地方,因为我已经使用它超过4个月了,每次我尝试进入其他机器人时没有任何问题,除了这个,但这是我想要的,请修复它,已经这样2天了🙏🏻',
296+
cmbdic8ff9tcc7b2r3lc4s3i9:
297+
'角色/AI有时会说名字或职业,如图所示,在对话中他突然说"矿山",尽管我的名字是Albert',
298+
cmbdj3u1tac3w7b2rffhfzw09:
299+
'我之前创建了一个对所有用户公开访问的机器人。然而,它最近对其他人不可用,也不再出现在我的账户上。奇怪的是,我自己仍然可以看到并与机器人互动。我不确定是什么导致了这个问题,但如果你能调查并帮助解决这个问题,我将不胜感激。先谢谢了。',
300+
cmbdhrqgf9etk7b2rc5okz76e: '即使我固定了很多角色,也没有固定按钮',
301+
cmbdrctdo2bsflvhjp2wvvp4z: '不让我玩',
302+
cmbdrw4o12vinlvhjq66qu372:
303+
'角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色像对待女人一样对待我。',
304+
cmbduzksr64udlvhj87nwel9x:
305+
'角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色都把我当成女人。',
306+
cmbdw66wv7d8xlvhjngm5oahc:
307+
'角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色像女人一样对待我,所有角色24小时都像女人一样对待我',
308+
cmbe5j6prgwj9lvhj51mira1c:
309+
'即使你选择了女性,他们也会把你当作男性。(例如,用"bellissimo"而不是"bellissima")',
310+
cmbdk2j4qb06k7b2rn6mkkxpc: '聊天对象的机器人不见了QQ',
311+
cmbdj0xb4aa567b2ryi1qbg5t:
312+
'机器人对话错误,我昨晚更改了一个角色的对话,但直到今天早上对话仍未改变,继续使用以前的对话',
313+
cmbdy00uh98gvlvhjra8rs31y: '我无法打开任何消息来继续它们',
314+
cmbe73t6sief1lvhjpdsnora6:
315+
'角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色把我当女人对待2个月',
316+
cmbea5621l4ivlvhjng6kt0fk:
317+
'角色把我当男人对待,但我的角色是一个女性化的女人,所以我希望角色把我当女性化的女人对待6个月',
318+
cmbdpgeld0fvvlvhjzx1qr3zh:
319+
'反复显示一个人,我说我,但这个人却接受并执行我给出的句子',
320+
cmbdvjpzx6publvhjj2z8n2se: '消息错误',
321+
cmbdkcwjzb7e47b2rvw8qy6nk:
322+
'Bug报告 - 角色删除\n\n我想报告最近在Emochi应用程序中发生的问题。我的一个角色被删除,没有任何警告,尽管它不包含露骨图像、NSFW内容或任何违反社区准则的内容。\n\n该角色是创意故事的一部分,完全符合平台的可接受标准。删除似乎是自动进行的,没有明显的理由。这对我在应用程序中的体验产生了负面影响,还影响了数小时的创作和叙事发展。\n\n请检查发生的情况,如果可能,恢复被删除的角色。我还建议对自动审核过滤器进行更仔细的分析,以避免将来出现这样的不当删除。',
323+
cmbdpc8hi0bvjlvhjd7omwqse:
324+
'我不小心删除了角色,有什么方法可以恢复吗?\nID: R3dk7EVoiNJoGgT1G6eQ3\n请帮助我恢复它们,我们非常需要它们',
325+
cmbdjdqocainy7b2rqewcvk81:
326+
"尊敬的emochi管理员,为什么必须有'糟糕,找不到机器人'这样的提示呢,拜托emochi管理员,我已经创建了很长的情节,请修复它,😭😭,我不想让机器人消失,请回复,不要只是阅读管理员😭😭😭🙏🙏",
327+
cmbe2satqe8xtlvhj8a3r9y48: '不让我玩\n\n\n\n\n',
328+
cmbdxlubk8thjlvhjwg8f1vpt:
329+
'当被提醒它从不好好回应时,机器人无缘无故地回复我,请修复这个问题,这会使按下继续或重新生成时的回应看起来无聊且烦人',
330+
cmbe00ht1bb2tlvhjthbrvq4i: '请恢复消息的回复,这样会更好\n',
331+
};
332+
333+
const result = ensureJSONOutput(input);
334+
console.log('result', JSON.stringify(result));
335+
expect(result).not.toBeNull();
336+
expect(result).toEqual(expectObj);
337+
});
338+
});
249339
});

0 commit comments

Comments
 (0)