Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Mydong opened this issue May 10, 2023 · 8 comments
Closed

Comments

@Mydong
Copy link

Mydong commented May 10, 2023

遇到问题背景描述

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

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

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

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

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

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

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

@Mydong Mydong changed the title [Feature] [Feature] 希望可以加入”跳过“功能 + 历史摘要手动修改功能 May 10, 2023
@mehaifeng
Copy link

mehaifeng commented May 14, 2023

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

@Yidadaa
Copy link
Collaborator

Yidadaa commented May 14, 2023

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

@Mydong
Copy link
Author

Mydong commented May 15, 2023

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

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

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

@Yidadaa
Copy link
Collaborator

Yidadaa commented May 15, 2023

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

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

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

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

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

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

@yinm0591
Copy link
Contributor

yinm0591 commented May 16, 2023

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

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

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

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

@yinm0591
Copy link
Contributor

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

@sailxjx
Copy link

sailxjx commented May 17, 2023

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

@yinm0591
Copy link
Contributor

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

user

Yidadaa added a commit that referenced this issue May 20, 2023
feat: close #1382 only clear memory btn in chat config
jinker pushed a commit to jinker/ChatGPT-Next-Web that referenced this issue Jun 19, 2023
Jeremy-Hibiki pushed a commit to Jeremy-Hibiki/ChatGPT-Next-Web that referenced this issue Sep 5, 2023
Jeremy-Hibiki pushed a commit to Jeremy-Hibiki/ChatGPT-Next-Web that referenced this issue Sep 5, 2023
gaogao1030 pushed a commit to gaogao1030/ChatGPT-Next-Web that referenced this issue May 16, 2024
gaogao1030 pushed a commit to gaogao1030/ChatGPT-Next-Web that referenced this issue May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants