ChatGPT-Next-Web icon indicating copy to clipboard operation
ChatGPT-Next-Web copied to clipboard

[Feature] 希望可以加入”跳过“功能 + 历史摘要手动修改功能

Open Mydong opened this issue 1 year ago • 8 comments

遇到问题背景描述

在使用过程中,发现一些较长且喂养的对话,GPT在回复的过程中,容易丢失或者忘记或者回复错误(忘记了最开始或者中间的一些内容)。

因此,希望可以有这样一些功能。

1、可以自定义修改编辑历史摘要。 image

这里的历史摘要,不知道我理解的对不对,这是GPT根据设定的【附带历史消息数+自动压缩】总结出的历史摘要。 中间如果出现一些回复不满意的选项,哪怕是已经删除了,摘要里面可能也会含有这些内容。从而导致,再次生成的结果不是很满意。

2、希望可以加入”跳过“功能: 跳过 (跳过其中部分问题/回答,即让模型丢失部分知识)

需求的背景是: 1、有些回复虽然不满意,但是不想直接删除,想要保留一下现有的内容。 2、不满意的内容虽然保留,但是不希望它作为上下文历史内容,去影响实际需要的上下文生成的新内容,这时候,跳过的功能就比较有用,而且可以防止1提到历史摘要涵盖不需要的内容。

参考项目:https://github.com/zmlix/chatgpt-web/tree/main/ChatGPT image image

Mydong avatar May 10 '23 07:05 Mydong

历史摘要手动修改功能确实很有必要,因为GPT会始终遵循它的那一套价值观进行总结,而前面设置的prompt只影响对话内容的生成,并不会影响历史摘要的内容生成,打个比方:你的对话前置prompt让你的GPT变得像个地地道道的北京人,但说了几句之后,历史摘要开始生成,并充当上下文,而历史摘要是没有prompt进行控制的,基本就是将你的所有上下文喂给一个干净的GPT,然后我的GPT从一个地地道道的北京人变成了一个时刻把规则、道德、礼仪挂在嘴边的机器人。导致我的对话角色突然变得机械、非常不接地气,体验十分断层。 综上,我的建议就是 1.历史摘要手动修改; 2.也为历史摘要添加prompt,(可选的system、user、assistent)来控制摘要的生成内容符合预期。

mehaifeng avatar May 14 '23 03:05 mehaifeng

@mehaifeng 历史摘要 prompt 开放修改或许不是一个好的选择,或许我们应该做一些提示词工程,研究一下如何在保留历史会话信息的情况下,不会改变 bot 的情感倾向?

Yidadaa avatar May 14 '23 15:05 Yidadaa

@mehaifeng 历史摘要 prompt 开放修改或许不是一个好的选择,或许我们应该做一些提示词工程,研究一下如何在保留历史会话信息的情况下,不会改变 bot 的情感倾向?

如果是保留历史会话情况下,不会改变BOT的情感倾向,或许就是需要类似上面的“跳过”功能,去筛选会话信息。

周末看到这个项目也有点类似,只不过他是反过来“锁定”有用的信息。上面提到的是“跳过”不想要的信息喂养。 https://github.com/ourongxing/chatgpt-vercel image

Mydong avatar May 15 '23 01:05 Mydong

这里会涉及到历史总结更新的问题,如果一条消息已经被历史总结归档了,那么如果用户 skip 掉这个消息,显然是应该需要重新总结这条消息的,但是目前的历史总结功能是无法针对细粒度 range 做撤销的,也就是说我只能知道某条消息是否被历史总结了,而至于这条消息具体位于历史总结的哪一句,我们是无从得知的。

在这种情况下,如果某条历史消息被跳过了,只能一次性发送所有的历史消息重新总结一次,这样非常容易碰到 4k token 上限。所以我认为跳过消息并不是一个很好的交互,会让聊天的状态难以维护。

至于锁定消息的功能,可以通过手动复制消息添加到当面对话的预设对话来达到,加一个“快捷添加当前消息到预设消息”的功能也不是不可以,只是 prompt 工程的预制对话基本都是精挑细选出来的,随意 pin 上去一个对话的效果可能还不让不 pin,所以这个功能到底有没有用还有待考量。

我认为值得做的两个功能是:

  • 历史摘要修改,用户可以手动删掉某些不符合预期的历史摘要,来保证历史记忆质量
  • 在不清空消息的情况下清除上下文,见 #1415

此外,如果担心历史记忆影响对话质量,可以在对话设置中手动关闭历史记忆,并把历史消息携带数设置为 0,这样可以完全避免历史对话影响对话,而完全通过预设对话来引导 bot 回复。

Yidadaa avatar May 15 '23 02:05 Yidadaa

我认为值得做的两个功能是:

历史摘要修改,用户可以手动删掉某些不符合预期的历史摘要,来保证历史记忆质量
在不清空消息的情况下清除上下文,见 https://github.com/Yidadaa/ChatGPT-Next-Web/issues/1415

消息锁定功能也许也是一个好主意,能把某个重要的对话一直保留在连续对话中,那就完美了。”只能锁定1条消息“应该就能满足90%的用户需求。锁定消息是额外的,锁定数量可以不计入“附带历史消息数”。

例如:我让gpt分析一篇文章,问题提多了,原文成了压缩摘要,gpt就没法正确回答后续问题了。如果有锁定功能,我把原文锁定住,就能一直提问GPT了。

yinm0591 avatar May 16 '23 04:05 yinm0591

SKIP功能对研究PROMPT的专业人士有用。对于普通人,说错了删了即可。 加不加“SKIP功能“与产品定位相关,优秀的产品并非功能越多越好,对于大多数人,上手容易、喜欢用,是王道吧。

yinm0591 avatar May 16 '23 04:05 yinm0591

需要分析的原文如果加到 prompt 中,应该用 system 还是 user?

sailxjx avatar May 17 '23 08:05 sailxjx

需要分析的原文如果加到 prompt 中,应该用 system 还是 user?

user

yinm0591 avatar May 17 '23 14:05 yinm0591