mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	#746 Add preset manager for ooba/kobold
This commit is contained in:
		
							
								
								
									
										55
									
								
								server.js
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								server.js
									
									
									
									
									
								
							@@ -3341,6 +3341,47 @@ app.post("/tokenize_openai", jsonParser, function (request, response_tokenize_op
 | 
			
		||||
    response_tokenize_openai.send({ "token_count": num_tokens });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
app.post("/save_preset", jsonParser, function (request, response) {
 | 
			
		||||
    const name = sanitize(request.body.name);
 | 
			
		||||
    if (!request.body.preset || !name) {
 | 
			
		||||
        return response.sendStatus(400);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const filename = `${name}.settings`;
 | 
			
		||||
    const directory = getPresetFolderByApiId(request.body.apiId);
 | 
			
		||||
 | 
			
		||||
    if (!directory) {
 | 
			
		||||
        return response.sendStatus(400);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const fullpath = path.join(directory, filename);
 | 
			
		||||
    fs.writeFileSync(fullpath, JSON.stringify(request.body.preset, null, 4), 'utf-8');
 | 
			
		||||
    return response.send({ name });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
app.post("/delete_preset", jsonParser, function (request, response) {
 | 
			
		||||
    const name = sanitize(request.body.name);
 | 
			
		||||
    if (!name) {
 | 
			
		||||
        return response.sendStatus(400);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const filename = `${name}.settings`;
 | 
			
		||||
    const directory = getPresetFolderByApiId(request.body.apiId);
 | 
			
		||||
 | 
			
		||||
    if (!directory) {
 | 
			
		||||
        return response.sendStatus(400);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const fullpath = path.join(directory, filename);
 | 
			
		||||
 | 
			
		||||
    if (fs.existsSync) {
 | 
			
		||||
        fs.unlinkSync(fullpath);
 | 
			
		||||
        return response.sendStatus(200);
 | 
			
		||||
    } else {
 | 
			
		||||
        return response.sendStatus(404);
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
app.post("/savepreset_openai", jsonParser, function (request, response) {
 | 
			
		||||
    const name = sanitize(request.query.name);
 | 
			
		||||
    if (!request.body || !name) {
 | 
			
		||||
@@ -3353,6 +3394,20 @@ app.post("/savepreset_openai", jsonParser, function (request, response) {
 | 
			
		||||
    return response.send({ name });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
function getPresetFolderByApiId(apiId) {
 | 
			
		||||
    switch (apiId) {
 | 
			
		||||
        case 'kobold':
 | 
			
		||||
        case 'koboldhorde':
 | 
			
		||||
            return directories.koboldAI_Settings;
 | 
			
		||||
        case 'novel':
 | 
			
		||||
            return directories.novelAI_Settings;
 | 
			
		||||
        case 'textgenerationwebui':
 | 
			
		||||
            return directories.textGen_Settings;
 | 
			
		||||
        default:
 | 
			
		||||
            return null;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function createTokenizationHandler(getTokenizerFn) {
 | 
			
		||||
    return async function (request, response) {
 | 
			
		||||
        if (!request.body) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user