OpenAI的新嵌入式API使用cl100k_base
分词器。我正在从Node.js客户端调用它,但我没有看到任何简单的方法来切割我的字符串,以便它们不超过OpenAI 8192个标记的限制。
如果我可以先对字符串进行编码,将其切割到限制大小,然后解码并发送到API,那么这将是微不足道的。
OpenAI的新嵌入式API使用cl100k_base
分词器。我正在从Node.js客户端调用它,但我没有看到任何简单的方法来切割我的字符串,以便它们不超过OpenAI 8192个标记的限制。
如果我可以先对字符串进行编码,将其切割到限制大小,然后解码并发送到API,那么这将是微不足道的。
npm install tiktoken
感谢Lars Grammel在下面的回答中发现/更新。
原始临时解决方案(在上述软件包可用之前):
有一个经验法则,即一个标记相当于大约四个普通英文文本字符。这大致相当于一个标记等于3/4个单词。因此,在您的情况下,8,192个标记的限制约等于6,144个单词。因此,您可以切割字符串,使其不超过约6,144个单词(例如,设置6,100个单词的限制。如果失败,请进一步降低限制,直到找到适合的限制为止)。