mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
New tokenizer option.
If you're running an ooba-like api, you can use the token-count endpoint. Exact and fast!
This commit is contained in:
@@ -581,6 +581,8 @@ function getTokenCount(str, padding = undefined) {
|
||||
return countTokensRemote('/tokenize_nerdstash', str, padding);
|
||||
case tokenizers.NERD2:
|
||||
return countTokensRemote('/tokenize_nerdstash_v2', str, padding);
|
||||
case tokenizers.API:
|
||||
return countTokensRemote('/tokenize_via_api', str, padding);
|
||||
default:
|
||||
console.warn("Unknown tokenizer type", tokenizerType);
|
||||
return Math.ceil(str.length / CHARACTERS_PER_TOKEN_RATIO) + padding;
|
||||
|
@@ -75,6 +75,7 @@ const tokenizers = {
|
||||
LLAMA: 3,
|
||||
NERD: 4,
|
||||
NERD2: 5,
|
||||
API: 6,
|
||||
}
|
||||
|
||||
const send_on_enter_options = {
|
||||
|
21
server.js
21
server.js
@@ -3401,6 +3401,27 @@ function createTokenizationHandler(getTokenizerFn) {
|
||||
app.post("/tokenize_llama", jsonParser, createTokenizationHandler(() => spp_llama));
|
||||
app.post("/tokenize_nerdstash", jsonParser, createTokenizationHandler(() => spp_nerd));
|
||||
app.post("/tokenize_nerdstash_v2", jsonParser, createTokenizationHandler(() => spp_nerd_v2));
|
||||
app.post("/tokenize_via_api", jsonParser, async function(request, response) {
|
||||
if (!request.body) {
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
const text = request.body.text || '';
|
||||
|
||||
try {
|
||||
const args = {
|
||||
body: JSON.stringify({"prompt": text}),
|
||||
headers: { "Content-Type": "application/json" }
|
||||
};
|
||||
|
||||
const data = await postAsync(api_server + "/v1/token-count", args);
|
||||
console.log(data);
|
||||
return response.send({ count: data['results'][0]['tokens'] });
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return response.send({ error: true });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// ** REST CLIENT ASYNC WRAPPERS **
|
||||
|
||||
|
Reference in New Issue
Block a user