yethee / tiktoken
PHP 版本的 tiktoken
0.6.0
2024-08-22 12:57 UTC
Requires
- php: ^8.1
- symfony/service-contracts: ^2.5 || ^3.0
Requires (Dev)
- doctrine/coding-standard: ^12.0
- mikey179/vfsstream: ^1.6.11
- phpbench/phpbench: ^1.2
- phpunit/phpunit: ^10.5.20
- psalm/plugin-phpunit: ^0.19.0
- vimeo/psalm: 5.25.0
README
这是 tiktoken 的移植版本。
安装
$ composer require yethee/tiktoken
使用
use Yethee\Tiktoken\EncoderProvider; $provider = new EncoderProvider(); $encoder = $provider->getForModel('gpt-3.5-turbo-0301'); $tokens = $encoder->encode('Hello world!'); print_r($tokens); // OUT: [9906, 1917, 0] $encoder = $provider->get('p50k_base'); $tokens = $encoder->encode('Hello world!'); print_r($tokens); // OUT: [15496, 995, 0]
缓存
编码器使用外部词汇表,因此默认使用缓存以避免性能问题。
默认情况下,使用 临时文件目录。您可以通过环境变量 TIKTOKEN_CACHE_DIR
覆盖缓存目录或使用 EncoderProvider::setVocabCache()
use Yethee\Tiktoken\EncoderProvider; $encProvider = new EncoderProvider(); $encProvider->setVocabCache('/path/to/cache'); // Using the provider
禁用缓存
如果存在原因,您可以通过以下方式之一禁用缓存:
- 将环境变量
TIKTOKEN_CACHE_DIR
设置为空字符串。 - 程序化
use Yethee\Tiktoken\EncoderProvider; $encProvider = new EncoderProvider(); $encProvider->setVocabCache(null); // disable the cache
限制
- 不支持 GPT-2 的编码。
- 不支持特殊令牌(如
<|endofprompt|>
)。