mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 06:00:56 +02:00
🚨 feat: Implement INPUT_LENGTH
Error Type (#3866)
* feat: CONTEXT_LENGTH error type * chore: rename error type * chore: import order
This commit is contained in:
parent
6936d0059f
commit
7536e649d4
4 changed files with 26 additions and 4 deletions
|
@ -1,6 +1,12 @@
|
|||
const crypto = require('crypto');
|
||||
const fetch = require('node-fetch');
|
||||
const { supportsBalanceCheck, Constants, CacheKeys, Time } = require('librechat-data-provider');
|
||||
const {
|
||||
supportsBalanceCheck,
|
||||
ErrorTypes,
|
||||
Constants,
|
||||
CacheKeys,
|
||||
Time,
|
||||
} = require('librechat-data-provider');
|
||||
const { getMessages, saveMessage, updateMessage, saveConvo } = require('~/models');
|
||||
const { addSpaceIfNeeded, isEnabled } = require('~/server/utils');
|
||||
const checkBalance = require('~/models/checkBalance');
|
||||
|
@ -383,9 +389,10 @@ class BaseClient {
|
|||
|
||||
const latestMessage = orderedWithInstructions[orderedWithInstructions.length - 1];
|
||||
if (payload.length === 0 && !shouldSummarize && latestMessage) {
|
||||
throw new Error(
|
||||
`Prompt token count of ${latestMessage.tokenCount} exceeds max token count of ${this.maxContextTokens}.`,
|
||||
);
|
||||
const info = `${latestMessage.tokenCount} / ${this.maxContextTokens}`;
|
||||
const errorMessage = `{ "type": "${ErrorTypes.INPUT_LENGTH}", "info": "${info}" }`;
|
||||
logger.warn(`Prompt token count exceeds max token count (${info}).`);
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
if (usePrevSummary) {
|
||||
|
|
|
@ -33,6 +33,10 @@ type TExpiredKey = {
|
|||
endpoint: string;
|
||||
};
|
||||
|
||||
type TInputLength = {
|
||||
info: string;
|
||||
};
|
||||
|
||||
const errorMessages = {
|
||||
[ErrorTypes.MODERATION]: 'com_error_moderation',
|
||||
[ErrorTypes.NO_USER_KEY]: 'com_error_no_user_key',
|
||||
|
@ -42,6 +46,10 @@ const errorMessages = {
|
|||
const { expiredAt, endpoint } = json;
|
||||
return localize('com_error_expired_user_key', endpoint, expiredAt);
|
||||
},
|
||||
[ErrorTypes.INPUT_LENGTH]: (json: TInputLength, localize: LocalizeFunction) => {
|
||||
const { info } = json;
|
||||
return localize('com_error_input_length', info);
|
||||
},
|
||||
[ViolationTypes.BAN]:
|
||||
'Your account has been temporarily banned due to violations of our service.',
|
||||
invalid_api_key:
|
||||
|
|
|
@ -25,6 +25,8 @@ export default {
|
|||
com_error_invalid_user_key: 'Invalid key provided. Please provide a valid key and try again.',
|
||||
com_error_expired_user_key:
|
||||
'Provided key for {0} expired at {1}. Please provide a new key and try again.',
|
||||
com_error_input_length:
|
||||
'The latest message token count is too long, exceeding the token limit ({0} respectively). Please shorten your message, adjust the max context size from the conversation parameters, or fork the conversation to continue.',
|
||||
com_files_no_results: 'No results.',
|
||||
com_files_filter: 'Filter files...',
|
||||
com_files_number_selected: '{0} of {1} file(s) selected',
|
||||
|
|
|
@ -839,6 +839,11 @@ export enum ErrorTypes {
|
|||
* Moderation error
|
||||
*/
|
||||
MODERATION = 'moderation',
|
||||
|
||||
/**
|
||||
* Prompt exceeds max length
|
||||
*/
|
||||
INPUT_LENGTH = 'INPUT_LENGTH',
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue