Bem -vindo ao Jtokkit, uma biblioteca de tokenizer Java projetada para uso com os modelos 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 );Para começar rapidamente, consulte nossa documentação.
O JTOKKIT pretende ser um tokenizador rápido e eficiente, projetado para uso em tarefas de processamento de linguagem natural usando os modelos OpenAI. Ele fornece uma interface fácil de usar para o texto de entrada de tokenização, por exemplo, para a contagem de tokens necessários na preparação de solicitações para o modelo GPT-3.5. Essa biblioteca resultou da necessidade de ter capacidades semelhantes no ecossistema da JVM, pois a biblioteca que Tiktoken fornece para o Python.
✅ Implementos de codificação e decodificação via r50k_base , p50k_base , p50k_edit , cl100k_base e o200k_base
✅ API fácil de usar
✅ Extensibilidade fácil para algoritmos de codificação personalizada
✅ Dependências zero
✅ suporta Java 8 e acima
✅ Desempenho rápido e eficiente
O JTOKKIT é entre 2-3 vezes mais rápido que um tokenizador comparável.
Para detalhes sobre a referência, consulte o diretório de referência.
Você pode instalar o JTOKKIT adicionando a seguinte dependência ao seu projeto MAVEN:
< dependency >
< groupId >com.knuddels</ groupId >
< artifactId >jtokkit</ artifactId >
< version >1.1.0</ version >
</ dependency >Ou alternativamente usando o gradle:
dependencies {
implementation ' com.knuddels:jtokkit:1.1.0 '
} Para usar o JTOKKIT, basta criar um novo EncodingRegistry e usar getEncoding para recuperar a codificação que você deseja usar. Você pode usar os métodos encode e decode para codificar e decodificar o 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 As classes EncodingRegistry e Encoding são seguras de threads e podem ser compartilhadas gratuitamente entre os componentes.
Você pode estender o JTOKKit para suportar codificações personalizadas. Para fazer isso, você tem duas opções:
Encoding e registre -a no 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 ); Posteriormente, você pode usar as codificações personalizadas juntamente com as padrão e acessá-las usando registry.getEncoding("custom-name") . Veja o Javadoc para obter mais detalhes.
O JTOKKIT está licenciado sob a licença do MIT. Consulte o arquivo de licença para obter mais informações.