mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
* wip token fix * fix: complete token count refactor to match OpenAI example * chore: add back sendPayload method (accidentally deleted) * chore: revise JSDoc for getTokenCountForMessage
23 lines
803 B
JavaScript
23 lines
803 B
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const { Tiktoken } = require('tiktoken/lite');
|
|
const { load } = require('tiktoken/load');
|
|
const registry = require('tiktoken/registry.json');
|
|
const models = require('tiktoken/model_to_encoding.json');
|
|
const requireJwtAuth = require('../middleware/requireJwtAuth');
|
|
|
|
router.post('/', requireJwtAuth, async (req, res) => {
|
|
try {
|
|
const { arg } = req.body;
|
|
const model = await load(registry[models['gpt-3.5-turbo']]);
|
|
const encoder = new Tiktoken(model.bpe_ranks, model.special_tokens, model.pat_str);
|
|
const tokens = encoder.encode(arg?.text ?? arg);
|
|
encoder.free();
|
|
res.send({ count: tokens.length });
|
|
} catch (e) {
|
|
console.error(e);
|
|
res.status(500).send(e.message);
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|