调kimi的模型的时候,老是报400错误
Error code: 400 - {'error': {'message': 'model max length exceeded, max length:8192', 'type': 'invalid_request_error'}}
messages1=[{'role': 'user', 'content': '问题:我在测试\n是否计算入token'}]
completion = client.chat.completions.create(
model="moonshot-v1-8k",
messages=messages1,
temperature=0.3,
stream=True,
max_tokens=8190
)
但是message1很小,在对同事诉苦时鬼使神差设置 max_tokens=700,正常了。
kimi官方回答是:
max_tokens optional 聊天完成时生成的最大 token 数。如果到生成了最大 token 数个结果仍然没有结束,finish reason 会是 "length", 否则会是 "stop" int 这个值建议按需给个合理的值,如果不给的话,我们会给一个不错的整数比如 1024。特别要注意的是,这个 max_tokens
是指您期待我们返回的 token 长度,而不是输入 + 输出的总长度。比如对一个moonshot-v1-8k
模型,它的最大输入 + 输出总长度是 8192,当输入 messages 总长度为 4096 的时候,您最多只能设置为 4096,否则我们服务会返回不合法的输入参数( invalid_request_error ),并拒绝回答。如果您希望获得“输入的精确 token 数”,可以使用下面的“计算 Token” API 使用我们的计算器获得计数Token
文本生成模型以 Token 为基本单位来处理文本。Token 代表常见的字符序列。例如,单个汉字"夔"可能会被分解为若干 Token 的组合,而像"中国"这样短且常见的短语则可能会使用单个 Token 。大致来说,对于一段通常的中文文本,1 个 Token 大约相当于 1.5-2 个汉字。
需要注意的是,对于我们的文本模型,Input 和 Output 的总和长度不能超过模型的最大上下文长度。
官方都重点标注了,看来有不少人踩坑