Closed Lukangkang123 closed 1 year ago
我也有些疑惑了,再看看文档去(
首先可以确认的是,completion花费的未必比prompt少, 回答的内容也正常占用token
程序默认会保留前一轮对话,我起初以为有个参数可以设置tokens的使用限制(max_tokens),然而并不是...
另见 https://openai.com/api/pricing/#faq-completions-pricing
标准计算公式应该是 发送的消息占用的tokens * max(n, best_of) + max_tokens,
max(n, best_of) 在程序中为 1,这个是默认的
max_tokens是动态计算的,这里只是规定上限,程序中默认是256,具体多少取决于回复消息占用的token,把completion平均一下不会有超过这个限制的,实际上大多数回答都很难超过这个限制
所以这样算的话,按程序实现,token占用算法应该是 本轮对话+上轮对话的占用的tokens + 回复内容占用的tokens
再减少的话,再往下节省应该很难了,最占用token的地方是对话记录,默认是保留一轮的,如果设置不跟踪会话整体体验就会不好。。
当前版本可以通过配置 officialAPI.maxTrackCount
来控制保留几轮对话,可以尝试设置为0
再减少的话,再往下节省应该很难了,最占用token的地方是对话记录,默认是保留一轮的,如果设置不跟踪会话整体体验就会不好。。
当前版本可以通过配置
officialAPI.maxTrackCount
来控制保留几轮对话,可以尝试设置为0
感谢回复!我看了保留对话的代码,想问下这行代码,是不是有错误?[chatgpt-official.ts#L59] (https://github.com/easydu2002/chat_gpt_oicq/blob/060e9d5c4d72e2b5bf6213369db1dadff4124a56/src/handler/chatgpt-official.ts#L59) 感觉应该是保留问题和回答,这里保留了两次回答。所以就会出现这样的情况
另外,我想问下能不能实现个通过命令设置api key的功能?就类似设置token那样设置api key
想问下这行代码,是不是有错
确实有问题,更新了下,没测试环境,不确定是否可行,有问题晚上再改了~
另外,我想问下能不能实现个通过命令设置api key的功能?就类似设置token那样设置api key
周末会加,也欢迎提pr~
我刚才也在看代码,确实重复了。看起来我之前统计的数据可能会更短一点,也许一次对话平均需要的token更少?
(这个是 #3 里面我给的600token的猫娘问答消费,还没修这个问题的版本)
再减少的话,再往下节省应该很难了,最占用token的地方是对话记录,默认是保留一轮的,如果设置不跟踪会话整体体验就会不好。。 当前版本可以通过配置
officialAPI.maxTrackCount
来控制保留几轮对话,可以尝试设置为0感谢回复!我看了保留对话的代码,想问下这行代码,是不是有错误?[chatgpt-official.ts#L59] (
) 感觉应该是保留问题和回答,这里保留了两次回答。所以就会出现这样的情况 另外,我想问下能不能实现个通过命令设置api key的功能?就类似设置token那样设置api key
想问下这行代码,是不是有错
会话记录已修复 8bed0eb
另外,我想问下能不能实现个通过命令设置api key的功能?就类似设置token那样设置api key
/token setkey [key] 即可 05224c1
我刚才也在看代码,确实重复了。看起来我之前统计的数据可能会更短一点,也许一次对话平均需要的token更少?
(这个是 #3 里面我给的600token的猫娘问答消费,还没修这个问题的版本)
确实重复了,记录的会话全是机器人的,已经修复了 8bed0eb
再减少的话,再往下节省应该很难了,最占用token的地方是对话记录,默认是保留一轮的,如果设置不跟踪会话整体体验就会不好。。 当前版本可以通过配置
officialAPI.maxTrackCount
来控制保留几轮对话,可以尝试设置为0感谢回复!我看了保留对话的代码,想问下这行代码,是不是有错误?[chatgpt-official.ts#L59] ( https://github.com/easydu2002/chat_gpt_oicq/blob/060e9d5c4d72e2b5bf6213369db1dadff4124a56/src/handler/chatgpt-official.ts#L59
) 感觉应该是保留问题和回答,这里保留了两次回答。所以就会出现这样的情况 另外,我想问下能不能实现个通过命令设置api key的功能?就类似设置token那样设置api key
想问下这行代码,是不是有错
会话记录已修复 8bed0eb
另外,我想问下能不能实现个通过命令设置api key的功能?就类似设置token那样设置api key
/token setkey [key] 即可 05224c1
多谢! 我刚刚提交了一个支持多用户不同会话功能的pull request,你有空看一下吧~
因为问的问题一般比回答短,按理说completion花费的token应该比prompt少,但是我这边prompt花费的token几乎全比completion多。目前我猜测它是把前文也当做一部分prompt输入到模型了。不过我不知道它到底会保留前文的几轮对话呢?有没有超参数可以改一下以节省token呢?