MaxKB icon indicating copy to clipboard operation
MaxKB copied to clipboard

[BUG]多轮对话以后,出现token过长的提示

Open xuzhouqqq opened this issue 10 months ago • 4 comments

联系方式

[email protected]

MaxKB 版本

v1.0.3 (build at 2024-04-18T17:10, commit: 78cd31ea)

问题描述

创建了一个应用,选择的模型:gpt-3.5-turbo-0613 应用开启多轮对话和问题优化,问过几次之后,报错:异常Error code: 400 - {'error': {'message': "This model's maximum context length is 4097 tokens. However, your messages resulted in 5799 tokens. Please reduce the length of the messages.", 'type': 'invalid_request_error', 'param': 'messages', 'code': 'context_length_exceeded'}}

token过长的问题,但是平台也没有地方可以设置token

重现步骤

择的模型:gpt-3.5-turbo-0613 应用开启多轮对话和问题优化,问过几次之后,报错

期待的正确结果

No response

相关日志输出

No response

附加信息

Snipaste_2024-04-22_09-48-44

xuzhouqqq avatar Apr 22 '24 01:04 xuzhouqqq

感谢反馈,在应用-设置- 关联知识库的参数设置中有最大字符数限制。 image 确认此处限制确实没有包含多轮对话的字符数,后期版本会优化。

baixin513 avatar Apr 22 '24 02:04 baixin513

感谢反馈,在应用设置-关联知识库的参数设置中有最大字符数限制。 确认此处限制确实不包含多轮对话的字符数,后期版本会优化。 图像

还有个疑惑,在应用设置-关联知识库的参数设置里面设置的最大引用字符数,是指每次提问问题引用的关联知识库里面的信息的最大字符数,还是指发送到gpt里面的最大字符数?

xuzhouqqq avatar Apr 22 '24 02:04 xuzhouqqq

感谢反馈,在应用设置-关联知识库的参数设置中有最大字符数限制。 确认此处限制确实不包含多轮对话的字符数,后期版本会优化。 图像

还有个疑惑,在应用设置-关联知识库的参数设置里面设置的最大引用字符数,是指每次提问问题引用的关联知识库里面的信息的最大字符数,还是指发送到gpt里面的最大字符数?

当前是引用知识库的最大字符数

baixin513 avatar Apr 22 '24 05:04 baixin513

感谢反馈,在应用设置-关联知识库的参数设置中有最大字符数限制。 确认此处限制确实不包含多轮对话的字符数,后期版本会优化。 图像

还有个疑惑,在应用设置-关联知识库的参数设置里面设置的最大引用字符数,是指每次提问问题引用的关联知识库里面的信息的最大字符数,还是指发送到gpt里面的最大字符数?

当前是引用知识库的最大字符数

好的,谢谢回复。虽然不知道这个别人提过没有,我还是再提一下。能加上模型的参数配置吗?比如gpt的。maxToken、temperature、topP、frequencyPenalty、presencePenalty 等等一些api调用的参数。

xuzhouqqq avatar Apr 22 '24 09:04 xuzhouqqq

模型参数配置的在 issue #58 中

baixin513 avatar Apr 30 '24 05:04 baixin513

这里提示 tokens 过长正常 是因为引用分段+ 多轮对话的内容及用户问题 超过了模型的最大长度 4097, 你可以适当把引用字符数调小,或者换一个接受字符数 8K 的模型试一下。

这个错误属于正常现象,该 issue先关闭了。

baixin513 avatar Apr 30 '24 05:04 baixin513

这里提示 tokens 过长正常 是因为引用分段+ 多轮对话的内容及用户问题 超过了模型的最大长度 4097, 你可以适当把引用字符数调小,或者换一个接受字符数 8K 的模型试一下。

这个错误属于正常现象,该 issue先关闭了。

是不是应该做个机制,判断下token超过固定长度之后,删除之前的对话。我的理解是知识库的会话应该是连续的,由程序自己来判断token的长度,剔除掉最开始的会话

xuzhouqqq avatar Apr 30 '24 13:04 xuzhouqqq