Willkommen bei Jtokkit, einer Java -Tokenizer -Bibliothek, die für die Verwendung mit OpenAI -Modellen entwickelt wurde.
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 );
Für einen schnellen Einstieg finden Sie in unserer Dokumentation.
Jtokkit ist ein schneller und effizienter Tokenizer für die Verwendung in Aufgaben mit natürlicher Sprache mit den OpenAI -Modellen. Es bietet eine benutzerfreundliche Schnittstelle zum Tokenisierungseingabetxt, beispielsweise zum Zählen der erforderlichen Token zur Erstellung von Anforderungen an das GPT-3.5-Modell. Diese Bibliothek ergab sich aus der Notwendigkeit, ähnliche Kapazitäten im JVM -Ökosystem zu haben, wie die Bibliothek Tiktoken für Python vorsieht.
✅ implementiert Codierung und Dekodierung über r50k_base
, p50k_base
, p50k_edit
, cl100k_base
und o200k_base
✅ einfach zu bedienende API
✅ Einfache Erweiterbarkeit für benutzerdefinierte Codierungsalgorithmen
✅ Zero -Abhängigkeiten
✅ Unterstützt Java 8 und höher
✅ schnelle und effiziente Leistung
Jtokkit ist zwischen 2 und 3-mal schneller als ein vergleichbarer Tokenizer.
Einzelheiten zum Benchmark finden Sie im Benchmark -Verzeichnis.
Sie können JTokkit installieren, indem Sie Ihrem Maven -Projekt die folgende Abhängigkeit hinzufügen:
< dependency >
< groupId >com.knuddels</ groupId >
< artifactId >jtokkit</ artifactId >
< version >1.1.0</ version >
</ dependency >
Oder alternativ mit Gradle:
dependencies {
implementation ' com.knuddels:jtokkit:1.1.0 '
}
Um JTokkit zu verwenden, erstellen Sie einfach eine neue EncodingRegistry
und verwenden Sie getEncoding
, um die von Ihnen gewünschte Codierung abzurufen. Sie können dann die Verfahrensmethoden verwenden und encode
decode
um Text zu codieren und zu dekodieren.
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
Die EncodingRegistry
und Encoding
sind threadssicher und können unter den Komponenten frei geteilt werden.
Möglicherweise möchten Sie JTokkit erweitern, um benutzerdefinierte Encodings zu unterstützen. Dazu haben Sie zwei Optionen:
Encoding
und registrieren Sie sie bei der 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 );
Anschließend können Sie die benutzerdefinierten Encodings neben den Standards verwenden und registry.getEncoding("custom-name")
sie zugreifen. Weitere Informationen finden Sie im Javadoc.
Jtokkit ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.