SillyTavern/src/constants.js

243 lines
4.6 KiB
JavaScript

const DIRECTORIES = {
worlds: 'public/worlds/',
user: 'public/user',
avatars: 'public/User Avatars',
images: 'public/img/',
userImages: 'public/user/images/',
groups: 'public/groups/',
groupChats: 'public/group chats',
chats: 'public/chats/',
characters: 'public/characters/',
backgrounds: 'public/backgrounds',
novelAI_Settings: 'public/NovelAI Settings',
koboldAI_Settings: 'public/KoboldAI Settings',
openAI_Settings: 'public/OpenAI Settings',
textGen_Settings: 'public/TextGen Settings',
thumbnails: 'thumbnails/',
thumbnailsBg: 'thumbnails/bg/',
thumbnailsAvatar: 'thumbnails/avatar/',
themes: 'public/themes',
movingUI: 'public/movingUI',
extensions: 'public/scripts/extensions',
instruct: 'public/instruct',
context: 'public/context',
backups: 'backups/',
quickreplies: 'public/QuickReplies',
assets: 'public/assets',
comfyWorkflows: 'public/user/workflows',
files: 'public/user/files',
sounds: 'public/sounds',
};
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',
};
const UPLOADS_PATH = './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',
APHRODITE: 'aphrodite',
TABBY: 'tabby',
KOBOLDCPP: 'koboldcpp',
TOGETHERAI: 'togetherai',
LLAMACPP: 'llamacpp',
OLLAMA: 'ollama',
INFERMATICAI: 'infermaticai',
};
const INFERMATICAI_KEYS = [
'model',
'prompt',
'max_tokens',
'temperature',
'top_p',
'top_k',
'repetition_penalty',
'stream',
'stop',
];
// https://docs.together.ai/reference/completions
const TOGETHERAI_KEYS = [
'model',
'prompt',
'max_tokens',
'temperature',
'top_p',
'top_k',
'repetition_penalty',
'stream',
'stop',
];
// https://github.com/jmorganca/ollama/blob/main/docs/api.md#request-with-options
const OLLAMA_KEYS = [
'num_predict',
'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',
];
const AVATAR_WIDTH = 400;
const AVATAR_HEIGHT = 600;
module.exports = {
DIRECTORIES,
UNSAFE_EXTENSIONS,
UPLOADS_PATH,
GEMINI_SAFETY,
BISON_SAFETY,
TEXTGEN_TYPES,
CHAT_COMPLETION_SOURCES,
AVATAR_WIDTH,
AVATAR_HEIGHT,
TOGETHERAI_KEYS,
OLLAMA_KEYS,
INFERMATICAI_KEYS,
};