Selamat datang di Jtokkit, perpustakaan Java Tokenizer yang dirancang untuk digunakan dengan model OpenAI.
EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
Encoding enc = registry . getEncoding ( EncodingType . CL100K_BASE );
assertEquals ( "hello world" , enc . decode ( enc . encode ( "hello world" )));
// Or get the tokenizer corresponding to a specific OpenAI model
enc = registry . getEncodingForModel ( ModelType . TEXT_EMBEDDING_ADA_002 );
Untuk memulai dengan cepat, lihat dokumentasi kami.
Jtokkit bertujuan untuk menjadi tokenizer yang cepat dan efisien yang dirancang untuk digunakan dalam tugas pemrosesan bahasa alami menggunakan model OpenAI. Ini menyediakan antarmuka yang mudah digunakan untuk teks input tokenisasi, misalnya untuk menghitung token yang diperlukan dalam persiapan permintaan ke model GPT-3.5. Perpustakaan ini menghasilkan kebutuhan untuk memiliki kapasitas yang sama di ekosistem JVM seperti yang disediakan perpustakaan Tiktoken untuk Python.
✅ Menerapkan penyandian dan decoding melalui r50k_base
, p50k_base
, p50k_edit
, cl100k_base
dan o200k_base
✅ API yang mudah digunakan
✅ Ekstensibilitas Mudah untuk Algoritma Pengkodean Kustom
✅ Ketergantungan nol
✅ mendukung Java 8 dan di atas
✅ kinerja yang cepat dan efisien
Jtokkit antara 2-3 kali lebih cepat daripada tokenizer yang sebanding.
Untuk detail tentang tolok ukur, lihat direktori benchmark.
Anda dapat menginstal jtokkit dengan menambahkan ketergantungan berikut ke proyek Maven Anda:
< dependency >
< groupId >com.knuddels</ groupId >
< artifactId >jtokkit</ artifactId >
< version >1.1.0</ version >
</ dependency >
Atau sebagai alternatif menggunakan Gradle:
dependencies {
implementation ' com.knuddels:jtokkit:1.1.0 '
}
Untuk menggunakan jtokkit, cukup buat EncodingRegistry
baru dan gunakan getEncoding
untuk mengambil pengkodean yang ingin Anda gunakan. Anda kemudian dapat menggunakan metode encode
dan decode
untuk menyandikan dan mendekode teks.
EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
Encoding enc = registry . getEncoding ( EncodingType . CL100K_BASE );
IntArrayList encoded = enc . encode ( "This is a sample sentence." );
// encoded = [2028, 374, 264, 6205, 11914, 13]
String decoded = enc . decode ( encoded );
// decoded = "This is a sample sentence."
// Or get the tokenizer based on the model type
Encoding secondEnc = registry . getEncodingForModel ( ModelType . TEXT_EMBEDDING_ADA_002 );
// enc == secondEnc
Kelas EncodingRegistry
dan Encoding
aman dan dapat dibagikan secara bebas di antara komponen.
Anda mungkin ingin memperluas jtokkit untuk mendukung pengkodean khusus. Untuk melakukannya, Anda memiliki dua opsi:
Encoding
dan daftarkannya dengan EncodingRegistry
EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
Encoding customEncoding = new CustomEncoding ();
registry . registerEncoding ( customEncoding );
EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
GptBytePairEncodingParams params = new GptBytePairEncodingParams (
"custom-name" ,
Pattern . compile ( "some custom pattern" ),
encodingMap ,
specialTokenEncodingMap
);
registry . registerGptBytePairEncoding ( params );
Setelah itu, Anda dapat menggunakan pengkodean khusus di samping yang default dan mengaksesnya dengan menggunakan registry.getEncoding("custom-name")
. Lihat Javadoc untuk lebih jelasnya.
Jtokkit dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk informasi lebih lanjut.