yethee/tiktoken

PHP 版本的 tiktoken

0.6.0 2024-08-22 12:57 UTC

This package is auto-updated.

Last update: 2024-09-22 13:10:22 UTC


README

Packagist Version Build status codecov License

这是 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|>)。

许可

MIT