rahul900day/tiktoken-php

1.0.0 2024-06-16 15:40 UTC

This package is auto-updated.

Last update: 2024-09-16 16:15:14 UTC


README

这是 OpenAI 的原始 Tiktoken 的最兼容 PHP 实现。Tiktoken

入门

需要 PHP 8.1+

通过 Composer 软件包管理器安装 Tiktoken。

composer require rahul900day/tiktoken-php

支持的模型

用法

基本用法

use Rahul900day\Tiktoken\Tiktoken;

$encoder = Tiktoken::getEncodingForModel('gpt-4');
$encoder->encode("hello world aaaaaaaaaaaa");
$encoder->decode([9906, 4435]);

特殊标记

use Rahul900day\Tiktoken\Tiktoken;

$encoder = Tiktoken::getEncodingForModel('gpt-4');
$encoder->encode('<|endoftext|>', allowedSpecial: 'all');

缓存

Tiktoken 总是在下载时缓存服务器的响应。

默认情况下,它使用系统默认的临时目录来缓存响应,但您仍然可以通过设置 TIKTOKEN_CACHE_DIR 环境变量来覆盖缓存位置。

注册自定义编码

use Rahul900day\Tiktoken\Encodings\OpenAiPublic\Cl100KBaseEncoding;

class Cl100KIm extends Cl100KBaseEncoding 
{
    protected function getName(): string
    {
        return 'cl100k_im';
    }
    
    protected function getSpecialTokens(): array
    {
        return [
            ...parent::getSpecialTokens(),
            "<|im_start|>" => 100264,
            "<|im_end|>" => 100265,
        ];
    }
}

use Rahul900day\Tiktoken\Registry;
use Rahul900day\Tiktoken\Tiktoken;

Registry::registerCustomEncoding('cl100k_im', new Cl100KIm);
$encoding = Tiktoken::getEncoding('cl100k_im');

// Expect: 100264
$encoding->encode("<|im_start|>", allowedSpecial: 'all');

变更日志

有关最近更改的更多信息,请参阅 变更日志

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可

此软件包在 MIT 许可证 下发布。