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

如果上下文超过最大Token,删除最早的对话,而不是直接报错重置。并且将上下文最大长度参数作为变量引出。 #247

Merged
merged 8 commits into from
Jun 14, 2023

Conversation

suyunkai
Copy link
Contributor

在提出此拉取请求时,我确认了以下几点(请复选框):

  • 我已阅读并理解贡献者指南
  • 我已检查没有与此请求重复的拉取请求。
  • 我已经考虑过,并确认这份呈件对其他人很有价值。
  • 我接受此提交可能不会被使用,并根据维护人员的意愿关闭拉取请求。

@eryajf
Copy link
Owner

eryajf commented Jun 14, 2023

很棒,有两个点:

  • 如果新增配置,在readme中,docker run的命令也应该加上。还有docker-compose.yaml里边也应该加上。具体参见:https://github.com/ConnectAI-E/Dingtalk-OpenAI/blob/main/CONTRIBUTING.md
  • 关于功能设计上,删除最早的是不是应该对比下,比如最早那天内容是你好两个字,而最新的问题很长,那只删除你好,是不是也没有太大的空余。

@suyunkai
Copy link
Contributor Author

感谢大佬回复,已在readme与docker-compose.yaml中增加相关变量,考虑到这些并非必要配置,我也在config.go中配置了默认值,即使不配置相关变量也可以正常使用。
关于功能逻辑上,目前的逻辑是如果删除最早的对话后,依然超过最大文本数的话,会继续往下删除,直至满足文本数限制要求,或仅剩最后一条对话(保留最后一条对话是为了避免删除所有对话后提问直接不回复也没有任何报错的bug)。这个逻辑是和网页端相同的。
考虑到钉钉端有最大文本输入限制,因此单次输入和回复都不可能超过最大文本数,因此这样调整后,理论上在串聊模式下不会再出现达到最大文本的报错了。

我是编程新手,如还有问题请指出,谢谢

@eryajf eryajf added the feature label Jun 14, 2023
@eryajf eryajf linked an issue Jun 14, 2023 that may be closed by this pull request
@eryajf eryajf removed a link to an issue Jun 14, 2023
@eryajf eryajf merged commit ddb184f into eryajf:main Jun 14, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants