From 4f17e69f1bdedfcde71ac12e37bc153530d49d48 Mon Sep 17 00:00:00 2001 From: Danny Avila <110412045+danny-avila@users.noreply.github.com> Date: Fri, 26 May 2023 09:40:08 -0400 Subject: [PATCH] fix(tokenizer): error handle encoding for invalid encoding data (#385) --- api/app/clients/chatgpt-client.js | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/api/app/clients/chatgpt-client.js b/api/app/clients/chatgpt-client.js index a5e9a05e6..dcc56e7ce 100644 --- a/api/app/clients/chatgpt-client.js +++ b/api/app/clients/chatgpt-client.js @@ -68,18 +68,28 @@ const askClient = async ({ ...(parentMessageId && conversationId ? { parentMessageId, conversationId } : {}) }; - const enc = encoding_for_model(tiktokenModels.has(model) ? model : 'gpt-3.5-turbo'); - const usage = { - prompt_tokens: (enc.encode(promptText)).length + (enc.encode(text)).length, + let usage = null; + let enc = null; + try { + enc = encoding_for_model(tiktokenModels.has(model) ? model : 'gpt-3.5-turbo'); + usage = { + prompt_tokens: (enc.encode(promptText)).length + (enc.encode(text)).length, + } + } catch (e) { + console.log('Error encoding prompt text', e); } const res = await client.sendMessage(text, { ...options, userId }); - usage.completion_tokens = (enc.encode(res.response)).length; - usage.total_tokens = usage.prompt_tokens + usage.completion_tokens; - return { - ...res, - usage, + + try { + usage.completion_tokens = (enc.encode(res.response)).length; + usage.total_tokens = usage.prompt_tokens + usage.completion_tokens; + res.usage = usage; + } catch (e) { + console.log('Error encoding response text', e); } + + return res; }; module.exports = { askClient };