rahul900day / tiktoken-php
1.0.0
2024-06-16 15:40 UTC
Requires
- php: ^8.1
- ext-ctype: *
- php-http/discovery: ^1.19
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0.1
- psr/http-factory-implementation: *
- psr/http-message: ^1.1.0|^2.0
- symfony/cache: ^6.1|^7.0
- symfony/filesystem: ^6.1|^7.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.8.1
- guzzlehttp/psr7: ^2.6.1
- laravel/pint: ^1.16
- mockery/mockery: ^1.6.12
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-type-coverage: ^2.8.2
- phpstan/phpstan: ^1.11.3
- rector/rector: ^1.1.0
- symfony/var-dumper: ^6.1|^7.0
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 许可证 下发布。