Skip to content

Commit

Permalink
feat: length limiter
Browse files Browse the repository at this point in the history
  • Loading branch information
uzornakovre committed May 14, 2023
1 parent 5242e0b commit d742c46
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
8 changes: 8 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,19 @@ bot.on('message', async (msg) => {
model: 'gpt-3.5-turbo',
messages: messages[chatId],
});

const output = completion.data.choices[0].message.content;

messages[chatId].push({ role: 'assistant', content: output });
history[chatId].push([text, output]);

if (completion.data.choices[0].finish_reason === 'length' || output.length > 4096) {
history[chatId] = [];
messages[chatId] = [];
await bot.deleteMessage(chatId, waitMessageId);
return bot.sendMessage(chatId, errorMessages.TOKEN_LENGTH);
}

await bot.deleteMessage(chatId, waitMessageId);
return bot.sendMessage(chatId, output);
} catch (err) {
Expand Down
4 changes: 2 additions & 2 deletions utils/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ const toolTips = {
/clear в главном меню.
${emoji.exclamationMark} Обратите внимание, что данная модель чата способна держать в истории не более 4097 токенов (фрагментов текста),
соответственно, во избежание ошибок, рекомендуется периодически очищать контекст. По умолчанию, при превышении количества токенов, контекст будет очищен автоматически.
соответственно, во избежание ошибок, рекомендуется периодически очищать контекст. Помимо этого, максимальная длина сообщения Telegram равна 4096 символов. По умолчанию, при превышении количества токенов или допустимой длины сообщения, контекст будет очищен автоматически.
Если у вас возникла проблема с ботом, напишите разработчику: @uzornakovre_official`,
clear: 'Контекст очищен. Можете начать новый диалог.',
Expand All @@ -53,7 +53,7 @@ ${emoji.exclamationMark} Обратите внимание, что данная
const errorMessages = {
DEFAULT: (status, message) => `Ошибка ${status}.\n${message}\n
Что делать в такой ситуации: /help`,
TOKEN_LENGTH: `Лимит токенов был превышен. Контекст очищен.
TOKEN_LENGTH: `Длина текста моего ответа превышает либо лимит токенов, либо допустимый размер сообщения Telegram. Контекст очищен.
Для получения ответа вам необходимо сделать новый запрос
Почему так случилось${emoji.questionMark} - /help `,
TOO_MANY_REQUESTS: (status) => `Ошибка ${status}.\n
Expand Down

0 comments on commit d742c46

Please sign in to comment.