chatgpt-web icon indicating copy to clipboard operation
chatgpt-web copied to clipboard

如何限制会话消息的数量

Open weifeng12x opened this issue 1 year ago • 5 comments

问题

在不清理聊天记录的情况下会把所有的上下文消息提交过去直到达到单会话token的上限,在我发现这个机制前随便发一个简单的问题会导致1000多的token消耗 image

期望

我知道可以清理聊天记录,或者不关联上下文。但是我分享给朋友们体验,他们并不知道这个步骤,或者不会去设置。 所以我希望能有个配置节点能限制关联上下文的数量。

weifeng12x avatar Mar 25 '23 13:03 weifeng12x

image 这一个请求直接3k tokens了,如果用了GPT 4直接破产了 555555555 @Chanzhaoyu

weifeng12x avatar Mar 25 '23 13:03 weifeng12x

聊天框左边的有个绿色的类似钟表的小图标,关了就不会携带之前的聊天记录了

你看我的描述,我知道有个地方可以设置。大多数时候我还是想关联上下文的,但是我只需要3-4条上下文就行了。token的消耗量可以控制在一两百,但是现在token一条消息近3K。

我发现这个事情是因为我用了别人做的客户端,里面就有设置上下文的数量,然后我去查日志才发现这个问题。

weifeng12x avatar Mar 25 '23 13:03 weifeng12x

感觉确实有点必要,或者从前端控制?

renwofei423 avatar Mar 25 '23 17:03 renwofei423

刚刚查了一下,一次请求上万。。。。

04:35 Local time: 2023年3月22日 12:35 gpt-3.5-turbo-0301, 5 requests 11,067 prompt + 4,052 completion = 15,119 tokens

renwofei423 avatar Mar 25 '23 17:03 renwofei423

刚刚查了一下,一次请求上万。。。。

04:35

Local time: 2023年3月22日 12:35

gpt-3.5-turbo-0301, 5 requests

11,067 prompt + 4,052 completion = 15,119 tokens

这是五个请求,平均下来也3k了。应该到了3.5最大tokens的限制了 如果换成4.0 一次6,7毛😂

weifeng12x avatar Mar 26 '23 02:03 weifeng12x

问题

在不清理聊天记录的情况下会把所有的上下文消息提交过去直到达到单会话token的上限,在我发现这个机制前随便发一个简单的问题会导致1000多的token消耗 image

期望

我知道可以清理聊天记录,或者不关联上下文。但是我分享给朋友们体验,他们并不知道这个步骤,或者不会去设置。 所以我希望能有个配置节点能限制关联上下文的数量。

感谢你的问题,要不我还没发现。我不太会Nodejs,研究了半天,发现是引用chatgpt-api导致了,只要带了parentMessageID,就会把所有内容全部提交过去,chatgpt-api把消息是默认保存在服务器内存里的,https://github.com/transitive-bullshit/chatgpt-api,看chatgpt-api源码可以多传递几个参数messageStore 、getMessageById 、upsertMessage 好像可以实现。 可惜我不会写nodejs代码。。。。。会的朋友可以帮帮忙。我是采用了比较恶心的办法,直接改了/service/node_modules/.pnpm/[email protected]/node_modules/chatgpt/build/index.js的代码,在一个do while循环里,把循环次数改了就可以了,代码行大概在390行附近。 想提交三条就 改为循环3次就可以了。祝你成功!

zhangweizi avatar Mar 29 '23 08:03 zhangweizi

谢谢你的详细教程,我已经几年没有写代码了. 看大佬什么时候有空修复吧,我懒得折腾了. 主要搭起来给朋友玩玩的,给他们开的3.5 反正也用不了多少钱.

weifeng12x avatar Mar 29 '23 10:03 weifeng12x