Bienvenue à Jtokkit, une bibliothèque de tokenzer Java conçue pour une utilisation avec des modèles 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 );
Pour un démarrage rapide, consultez notre documentation.
Jtokkit vise à être un tokenzer rapide et efficace conçu pour une utilisation dans des tâches de traitement du langage naturel à l'aide des modèles OpenAI. Il fournit une interface facile à utiliser pour le texte d'entrée de jetons, par exemple pour compter les jetons requis en préparation des demandes au modèle GPT-3.5. Cette bibliothèque a résulté de la nécessité d'avoir des capacités similaires dans l'écosystème JVM car la bibliothèque TikToken prévoit pour Python.
✅ Implémentez le codage et le décodage via r50k_base
, p50k_base
, p50k_edit
, cl100k_base
et o200k_base
✅ API facile à utiliser
✅ Extensibilité facile pour les algorithmes de codage personnalisés
✅ zéro dépendances
✅ prend en charge Java 8 et plus
✅ Performances rapides et efficaces
Jtokkit est entre 2 et 3 fois plus rapide qu'un tokenizer comparable.
Pour plus de détails sur la référence, consultez le répertoire de référence.
Vous pouvez installer JTOKKIT en ajoutant la dépendance suivante à votre projet Maven:
< dependency >
< groupId >com.knuddels</ groupId >
< artifactId >jtokkit</ artifactId >
< version >1.1.0</ version >
</ dependency >
Ou alternativement en utilisant Gradle:
dependencies {
implementation ' com.knuddels:jtokkit:1.1.0 '
}
Pour utiliser JTOKKIT, créez simplement un nouveau EncodingRegistry
et utilisez getEncoding
pour récupérer le codage que vous souhaitez utiliser. Vous pouvez ensuite utiliser les méthodes encode
et decode
pour coder et décoder du texte.
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
Les classes EncodingRegistry
et Encoding
sont en filetage et peuvent être librement partagées entre les composants.
Vous voudrez peut-être étendre JTOKKIT pour prendre en charge les encodages personnalisés. Pour ce faire, vous avez deux options:
Encoding
et enregistrez-la auprès de l' 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 );
Ensuite, vous pouvez utiliser les encodages personnalisés aux côtés de ceux par défaut et y accéder en utilisant registry.getEncoding("custom-name")
. Voir le Javadoc pour plus de détails.
Jtokkit est autorisé sous la licence du MIT. Voir le fichier de licence pour plus d'informations.