cssxsh / mirai-openai-plugin

Mirai Console OpenAI ChatBot 插件
GNU Affero General Public License v3.0
130 stars 14 forks source link

有没有办法知道openai服务器用的是什么方法计算tokens #9

Closed pilgrim773 closed 1 year ago

pilgrim773 commented 1 year ago

我保持上送很大的max_tokens值来让openai给我返回我的prompt的长度。我试了一下有一些汉字是占俩tokens有一些是占三个tokens,弄得我不知道在正式用的时候怎么设定max_tokens比较好。 image 这个返回:…… 15 in your prompt …… image 这个返回:…… 18 in your prompt …… image image 删掉一个“个”字,返回16了

cssxsh commented 1 year ago

可能和 UTF-8 编码有关

pilgrim773 commented 1 year ago

UTF8固定占三个字节我觉得应该没疑问,可能还是openai对中文语义的分析和英语不同,有点不规律。 本项目的 buffer.length > ChatConfig.maxTokens * 0.6 这个设计是基于何种考虑呢

cssxsh commented 1 year ago

UTF8固定占三个字节我觉得应该没疑问,可能还是openai对中文语义的分析和英语不同,有点不规律。 本项目的 buffer.length > ChatConfig.maxTokens * 0.6 这个设计是基于何种考虑呢

0.6 是魔法数字,主要是从用户角度是无法理解上下文存在上限的,所以我尽可能的给更多的空间