guttedgarden/tiktoken

tiktoken 的 PHP 7.4 版本

1.0.0 2023-10-13 12:42 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:25:57 UTC


README

为 PHP 7.4 端口的 Yethee 的 tiktoken 库,没有使用 Symfony 包

安装

$ composer require guttedgarden/tiktoken

使用方法

use guttedgarden\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 guttedgarden\Tiktoken\EncoderProvider;

$encProvider = new EncoderProvider();
$encProvider->setVocabCache('/path/to/cache');

// Using the provider

禁用缓存

如果您有理由这样做,可以通过以下方式之一禁用缓存:

  • 将环境变量 TIKTOKEN_CACHE_DIR 设置为空字符串。
  • 程序化方式
use guttedgarden\Tiktoken\EncoderProvider;

$encProvider = new EncoderProvider();
$encProvider->setVocabCache(null); // disable the cache

限制

  • 不支持 GPT-2 的编码。
  • 不支持特殊标记(如 <|endofprompt|>)。

许可证

MIT