有没有 JavaScript 实现的 cl100k_base 分词器?

3

OpenAI的新嵌入式API使用cl100k_base分词器。我正在从Node.js客户端调用它,但我没有看到任何简单的方法来切割我的字符串,以便它们不超过OpenAI 8192个标记的限制。

如果我可以先对字符串进行编码,将其切割到限制大小,然后解码并发送到API,那么这将是微不足道的。

2个回答

4
更新: David Duong使用JS/WASM绑定创建了openai/tiktoken的JavaScript端口。该软件包可通过npm安装:
npm install tiktoken

感谢Lars Grammel在下面的回答中发现/更新。


原始临时解决方案(在上述软件包可用之前):

有一个经验法则,即一个标记相当于大约四个普通英文文本字符。这大致相当于一个标记等于3/4个单词。因此,在您的情况下,8,192个标记的限制约等于6,144个单词。因此,您可以切割字符串,使其不超过约6,144个单词(例如,设置6,100个单词的限制。如果失败,请进一步降低限制,直到找到适合的限制为止)。


2

哇喔!感谢 @dqbd! - Daniel Patrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接