Bienvenido a JTOKKIT, una biblioteca de tokenizador Java diseñada para usar con modelos Operai.
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 );
Para comenzar rápidamente, vea nuestra documentación.
JTOKKIT tiene como objetivo ser un tokenizador rápido y eficiente diseñado para su uso en tareas de procesamiento del lenguaje natural utilizando los modelos OpenAI. Proporciona una interfaz fácil de usar para la tokenización del texto de entrada, por ejemplo para contar tokens requeridos en preparación de solicitudes al modelo GPT-3.5. Esta biblioteca resultó fuera de la necesidad de tener capacidades similares en el ecosistema JVM como la biblioteca que Tiktoken proporciona Python.
✅ Implementa la codificación y decodificación a través de r50k_base
, p50k_base
, p50k_edit
, cl100k_base
y o200k_base
✅ API fácil de usar
✅ Extensibilidad fácil para algoritmos de codificación personalizados
✅ Dependencias cero
✅ Admite Java 8 y superior
✅ Rendimiento rápido y eficiente
JTOKKIT es entre 2-3 veces más rápido que un tokenizador comparable.
Para obtener detalles sobre el punto de referencia, consulte el directorio de referencia.
Puede instalar JTOKKIT agregando la siguiente dependencia a su proyecto Maven:
< dependency >
< groupId >com.knuddels</ groupId >
< artifactId >jtokkit</ artifactId >
< version >1.1.0</ version >
</ dependency >
O alternativamente usando Gradle:
dependencies {
implementation ' com.knuddels:jtokkit:1.1.0 '
}
Para usar JTOKKIT, simplemente cree un nuevo EncodingRegistry
y use getEncoding
para recuperar la codificación que desea usar. Luego puede usar los métodos encode
y decode
para codificar y decodificar texto.
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
El EncodingRegistry
y las clases Encoding
son seguras de hilo y se pueden compartir libremente entre los componentes.
Es posible que desee extender JTOKKIT para admitir codificaciones personalizadas. Para hacerlo, tienes dos opciones:
Encoding
y registrarla con el 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 );
Luego puede usar las codificaciones personalizadas junto con las predeterminadas y acceder a ellas utilizando registry.getEncoding("custom-name")
. Vea el Javadoc para más detalles.
JTOKKIT tiene licencia bajo la licencia MIT. Consulte el archivo de licencia para obtener más información.