fourkitchens/tiktoken

PHP版本的tiktoken

dev-master 2024-06-12 03:51 UTC

This package is not auto-updated.

Last update: 2024-09-19 03:53:24 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