mis3085/tiktoken-for-laravel

这是 Laravel 对 tiktoken-php (yethee/tiktoken) 的封装

0.1.3 2024-03-26 09:18 UTC

This package is auto-updated.

Last update: 2024-09-08 07:14:41 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

使用 "tiktoken-php" 包来在 Laravel 中编码字符串为标记,将标记解码为字符串,或计算 OpenAI 模型的标记使用情况。

安装

您可以通过 composer 安装此包

composer require mis3085/tiktoken-for-laravel

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="tiktoken-for-laravel-config"

这是发布配置文件的内容

return [
    // Cache folder for vocab files
    'cache_dir' => storage_path('framework/cache/tiktoken'),

    /**
     * The default encoder
     * cl100k_base: gpt-4, gpt-3.5-turbo, text-embedding-ada-002
     * p50k_base: Codex models, text-davinci-002, text-davinci-003
     * r50k_base: text-davinci-001
     */
    'default_encoder' => 'cl100k_base',
];

使用方法

use Mis3085\Tiktoken\Facades\Tiktoken;
// or
use Tiktoken;

// Use the default encoder: cl100k_base
Tiktoken::encode('this is a test');
// [ 576, 374, 264, 1296 ]

Tiktoken::encode('測試');
// [ 35086, 105, 50520, 99 ]

// Count tokens
Tiktoken::count('測試');
// 4

// Truncate a string to the specified length of tokens
Tiktoken::limit('this is a test', 2);
// this is
Tiktoken::limit('測試', 2);
// 測
Tiktoken::limit('測試', 1);
// EMPTY STRING

// Decode
Tiktoken::decode([ 35086, 105, 50520, 99 ]);
// 測試

// Change encoder in runtime
Tiktoken::setEncoder('p50k_base');
Tiktoken::encode('this is a test');
// [ 5661, 318, 257, 1332 ]

Tiktoken::setEncoder('p50k_base')->encode('測試');
// [ 162, 116, 105, 164, 102, 99 ]

Tiktoken::setEncoderForModel('text-davinci-003')->encode('測試');
// [ 162, 116, 105, 164, 102, 99 ]

测试

composer test

致谢

许可证

MIT 许可证 (MIT)。请参阅许可证文件获取更多信息。