Spaces:
Runtime error
Runtime error
const PUBLIC_DIRECTORIES = { | |
images: 'public/img/', | |
backups: 'backups/', | |
sounds: 'public/sounds', | |
extensions: 'public/scripts/extensions', | |
}; | |
const DEFAULT_AVATAR = '/img/ai4.png'; | |
const SETTINGS_FILE = 'settings.json'; | |
/** | |
* @type {import('./users').UserDirectoryList} | |
* @readonly | |
* @enum {string} | |
*/ | |
const USER_DIRECTORY_TEMPLATE = Object.freeze({ | |
root: '', | |
thumbnails: 'thumbnails', | |
thumbnailsBg: 'thumbnails/bg', | |
thumbnailsAvatar: 'thumbnails/avatar', | |
worlds: 'worlds', | |
user: 'user', | |
avatars: 'User Avatars', | |
userImages: 'user/images', | |
groups: 'groups', | |
groupChats: 'group chats', | |
chats: 'chats', | |
characters: 'characters', | |
backgrounds: 'backgrounds', | |
novelAI_Settings: 'NovelAI Settings', | |
koboldAI_Settings: 'KoboldAI Settings', | |
openAI_Settings: 'OpenAI Settings', | |
textGen_Settings: 'TextGen Settings', | |
themes: 'themes', | |
movingUI: 'movingUI', | |
extensions: 'extensions', | |
instruct: 'instruct', | |
context: 'context', | |
quickreplies: 'QuickReplies', | |
assets: 'assets', | |
comfyWorkflows: 'user/workflows', | |
files: 'user/files', | |
vectors: 'vectors', | |
backups: 'backups', | |
}); | |
/** | |
* @type {import('./users').User} | |
* @readonly | |
*/ | |
const DEFAULT_USER = Object.freeze({ | |
handle: 'default-user', | |
name: 'User', | |
created: Date.now(), | |
password: '', | |
admin: true, | |
enabled: true, | |
salt: '', | |
}); | |
const UNSAFE_EXTENSIONS = [ | |
'.php', | |
'.exe', | |
'.com', | |
'.dll', | |
'.pif', | |
'.application', | |
'.gadget', | |
'.msi', | |
'.jar', | |
'.cmd', | |
'.bat', | |
'.reg', | |
'.sh', | |
'.py', | |
'.js', | |
'.jse', | |
'.jsp', | |
'.pdf', | |
'.html', | |
'.htm', | |
'.hta', | |
'.vb', | |
'.vbs', | |
'.vbe', | |
'.cpl', | |
'.msc', | |
'.scr', | |
'.sql', | |
'.iso', | |
'.img', | |
'.dmg', | |
'.ps1', | |
'.ps1xml', | |
'.ps2', | |
'.ps2xml', | |
'.psc1', | |
'.psc2', | |
'.msh', | |
'.msh1', | |
'.msh2', | |
'.mshxml', | |
'.msh1xml', | |
'.msh2xml', | |
'.scf', | |
'.lnk', | |
'.inf', | |
'.reg', | |
'.doc', | |
'.docm', | |
'.docx', | |
'.dot', | |
'.dotm', | |
'.dotx', | |
'.xls', | |
'.xlsm', | |
'.xlsx', | |
'.xlt', | |
'.xltm', | |
'.xltx', | |
'.xlam', | |
'.ppt', | |
'.pptm', | |
'.pptx', | |
'.pot', | |
'.potm', | |
'.potx', | |
'.ppam', | |
'.ppsx', | |
'.ppsm', | |
'.pps', | |
'.ppam', | |
'.sldx', | |
'.sldm', | |
'.ws', | |
]; | |
const GEMINI_SAFETY = [ | |
{ | |
category: 'HARM_CATEGORY_HARASSMENT', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_HATE_SPEECH', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_DANGEROUS_CONTENT', | |
threshold: 'BLOCK_NONE', | |
}, | |
]; | |
const BISON_SAFETY = [ | |
{ | |
category: 'HARM_CATEGORY_DEROGATORY', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_TOXICITY', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_VIOLENCE', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_SEXUAL', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_MEDICAL', | |
threshold: 'BLOCK_NONE', | |
}, | |
{ | |
category: 'HARM_CATEGORY_DANGEROUS', | |
threshold: 'BLOCK_NONE', | |
}, | |
]; | |
const CHAT_COMPLETION_SOURCES = { | |
OPENAI: 'openai', | |
WINDOWAI: 'windowai', | |
CLAUDE: 'claude', | |
SCALE: 'scale', | |
OPENROUTER: 'openrouter', | |
AI21: 'ai21', | |
MAKERSUITE: 'makersuite', | |
MISTRALAI: 'mistralai', | |
CUSTOM: 'custom', | |
COHERE: 'cohere', | |
PERPLEXITY: 'perplexity', | |
GROQ: 'groq', | |
ZEROONEAI: '01ai', | |
BLOCKENTROPY: 'blockentropy', | |
}; | |
/** | |
* Path to multer file uploads under the data root. | |
*/ | |
const UPLOADS_DIRECTORY = '_uploads'; | |
// TODO: this is copied from the client code; there should be a way to de-duplicate it eventually | |
const TEXTGEN_TYPES = { | |
OOBA: 'ooba', | |
MANCER: 'mancer', | |
VLLM: 'vllm', | |
APHRODITE: 'aphrodite', | |
TABBY: 'tabby', | |
KOBOLDCPP: 'koboldcpp', | |
TOGETHERAI: 'togetherai', | |
LLAMACPP: 'llamacpp', | |
OLLAMA: 'ollama', | |
INFERMATICAI: 'infermaticai', | |
DREAMGEN: 'dreamgen', | |
OPENROUTER: 'openrouter', | |
FEATHERLESS: 'featherless', | |
HUGGINGFACE: 'huggingface', | |
}; | |
const INFERMATICAI_KEYS = [ | |
'model', | |
'prompt', | |
'max_tokens', | |
'temperature', | |
'top_p', | |
'top_k', | |
'repetition_penalty', | |
'stream', | |
'stop', | |
'presence_penalty', | |
'frequency_penalty', | |
'min_p', | |
'seed', | |
'ignore_eos', | |
'n', | |
'best_of', | |
'min_tokens', | |
'spaces_between_special_tokens', | |
'skip_special_tokens', | |
'logprobs', | |
]; | |
const FEATHERLESS_KEYS = [ | |
'model', | |
'prompt', | |
'best_of', | |
'echo', | |
'frequency_penalty', | |
'logit_bias', | |
'logprobs', | |
'max_tokens', | |
'n', | |
'presence_penalty', | |
'seed', | |
'stop', | |
'stream', | |
'suffix', | |
'temperature', | |
'top_p', | |
'user', | |
'use_beam_search', | |
'top_k', | |
'min_p', | |
'repetition_penalty', | |
'length_penalty', | |
'early_stopping', | |
'stop_token_ids', | |
'ignore_eos', | |
'min_tokens', | |
'skip_special_tokens', | |
'spaces_between_special_tokens', | |
'truncate_prompt_tokens', | |
'include_stop_str_in_output', | |
'response_format', | |
'guided_json', | |
'guided_regex', | |
'guided_choice', | |
'guided_grammar', | |
'guided_decoding_backend', | |
'guided_whitespace_pattern', | |
]; | |
// https://dreamgen.com/docs/api#openai-text | |
const DREAMGEN_KEYS = [ | |
'model', | |
'prompt', | |
'max_tokens', | |
'temperature', | |
'top_p', | |
'top_k', | |
'min_p', | |
'repetition_penalty', | |
'frequency_penalty', | |
'presence_penalty', | |
'stop', | |
'stream', | |
'minimum_message_content_tokens', | |
]; | |
// https://docs.together.ai/reference/completions | |
const TOGETHERAI_KEYS = [ | |
'model', | |
'prompt', | |
'max_tokens', | |
'temperature', | |
'top_p', | |
'top_k', | |
'repetition_penalty', | |
'min_p', | |
'presence_penalty', | |
'frequency_penalty', | |
'stream', | |
'stop', | |
]; | |
// https://github.com/jmorganca/ollama/blob/main/docs/api.md#request-with-options | |
const OLLAMA_KEYS = [ | |
'num_predict', | |
'num_ctx', | |
'stop', | |
'temperature', | |
'repeat_penalty', | |
'presence_penalty', | |
'frequency_penalty', | |
'top_k', | |
'top_p', | |
'tfs_z', | |
'typical_p', | |
'seed', | |
'repeat_last_n', | |
'mirostat', | |
'mirostat_tau', | |
'mirostat_eta', | |
'min_p', | |
]; | |
const AVATAR_WIDTH = 512; | |
const AVATAR_HEIGHT = 768; | |
const OPENROUTER_HEADERS = { | |
'HTTP-Referer': 'https://sillytavern.app', | |
'X-Title': 'SillyTavern', | |
}; | |
const FEATHERLESS_HEADERS = { | |
'HTTP-Referer': 'https://sillytavern.app', | |
'X-Title': 'SillyTavern', | |
}; | |
const OPENROUTER_KEYS = [ | |
'max_tokens', | |
'temperature', | |
'top_k', | |
'top_p', | |
'presence_penalty', | |
'frequency_penalty', | |
'repetition_penalty', | |
'min_p', | |
'top_a', | |
'seed', | |
'logit_bias', | |
'model', | |
'stream', | |
'prompt', | |
'stop', | |
'provider', | |
]; | |
// https://github.com/vllm-project/vllm/blob/0f8a91401c89ac0a8018def3756829611b57727f/vllm/entrypoints/openai/protocol.py#L220 | |
const VLLM_KEYS = [ | |
'model', | |
'prompt', | |
'best_of', | |
'echo', | |
'frequency_penalty', | |
'logit_bias', | |
'logprobs', | |
'max_tokens', | |
'n', | |
'presence_penalty', | |
'seed', | |
'stop', | |
'stream', | |
'suffix', | |
'temperature', | |
'top_p', | |
'user', | |
'use_beam_search', | |
'top_k', | |
'min_p', | |
'repetition_penalty', | |
'length_penalty', | |
'early_stopping', | |
'stop_token_ids', | |
'ignore_eos', | |
'min_tokens', | |
'skip_special_tokens', | |
'spaces_between_special_tokens', | |
'truncate_prompt_tokens', | |
'include_stop_str_in_output', | |
'response_format', | |
'guided_json', | |
'guided_regex', | |
'guided_choice', | |
'guided_grammar', | |
'guided_decoding_backend', | |
'guided_whitespace_pattern', | |
]; | |
module.exports = { | |
DEFAULT_USER, | |
DEFAULT_AVATAR, | |
SETTINGS_FILE, | |
PUBLIC_DIRECTORIES, | |
USER_DIRECTORY_TEMPLATE, | |
UNSAFE_EXTENSIONS, | |
UPLOADS_DIRECTORY, | |
GEMINI_SAFETY, | |
BISON_SAFETY, | |
TEXTGEN_TYPES, | |
CHAT_COMPLETION_SOURCES, | |
AVATAR_WIDTH, | |
AVATAR_HEIGHT, | |
TOGETHERAI_KEYS, | |
OLLAMA_KEYS, | |
INFERMATICAI_KEYS, | |
DREAMGEN_KEYS, | |
OPENROUTER_HEADERS, | |
OPENROUTER_KEYS, | |
VLLM_KEYS, | |
FEATHERLESS_KEYS, | |
FEATHERLESS_HEADERS, | |
}; | |