llamaTokenize method
(Pointer<llama_token> , int)
llamaTokenize({
- required Pointer<
llama_model> model, - required String text,
- required bool addBos,
- bool special = false,
Tokenize the given text
.
Implementation
(Pointer<llama_token>, int) llamaTokenize({
required Pointer<llama_model> model,
required String text,
required bool addBos,
bool special = false,
}) {
// upper limit for the number of tokens
final maxTokens = text.length + (addBos ? 1 : 0) + 1;
final tokens =
malloc.allocate<llama_token>(maxTokens * sizeOf<llama_token>());
final nTokens = llama_tokenize(
model,
text.toNativeUtf8().cast(),
maxTokens,
tokens,
maxTokens,
addBos,
special,
);
final result =
malloc.allocate<llama_token>(nTokens * sizeOf<llama_token>());
if (nTokens < 0) {
malloc.free(tokens);
throw Exception('Tokenization failed');
}
for (var i = 0; i < nTokens; ++i) {
result[i] = tokens[i];
}
malloc.free(tokens);
return (result, nTokens);
}