Apply preset manager for instruct presets

This commit is contained in:
Cohee
2023-08-21 00:56:53 +03:00
parent 8bb59a9e22
commit 897ad28477
17 changed files with 146 additions and 99 deletions

View File

@@ -3679,14 +3679,14 @@ app.post("/save_preset", jsonParser, function (request, response) {
return response.sendStatus(400);
}
const filename = `${name}.settings`;
const directory = getPresetFolderByApiId(request.body.apiId);
const settings = getPresetSettingsByAPI(request.body.apiId);
const filename = name + settings.extension;
if (!directory) {
if (!settings.folder) {
return response.sendStatus(400);
}
const fullpath = path.join(directory, filename);
const fullpath = path.join(settings.folder, filename);
writeFileAtomicSync(fullpath, JSON.stringify(request.body.preset, null, 4), 'utf-8');
return response.send({ name });
});
@@ -3697,16 +3697,16 @@ app.post("/delete_preset", jsonParser, function (request, response) {
return response.sendStatus(400);
}
const filename = `${name}.settings`;
const directory = getPresetFolderByApiId(request.body.apiId);
const settings = getPresetSettingsByAPI(request.body.apiId);
const filename = name + settings.extension;
if (!directory) {
if (!settings.folder) {
return response.sendStatus(400);
}
const fullpath = path.join(directory, filename);
const fullpath = path.join(settings.folder, filename);
if (fs.existsSync) {
if (fs.existsSync(fullpath)) {
fs.unlinkSync(fullpath);
return response.sendStatus(200);
} else {
@@ -3726,17 +3726,19 @@ app.post("/savepreset_openai", jsonParser, function (request, response) {
return response.send({ name });
});
function getPresetFolderByApiId(apiId) {
function getPresetSettingsByAPI(apiId) {
switch (apiId) {
case 'kobold':
case 'koboldhorde':
return directories.koboldAI_Settings;
return { folder: directories.koboldAI_Settings, extension: '.settings' };
case 'novel':
return directories.novelAI_Settings;
return { folder: directories.novelAI_Settings, extension: '.settings' };
case 'textgenerationwebui':
return directories.textGen_Settings;
return { folder: directories.textGen_Settings, extension: '.settings' };
case 'instruct':
return { folder: directories.instruct, extension: '.json' };
default:
return null;
return { folder: null, extension: null };
}
}