mirror of
https://github.com/oobabooga/text-generation-webui.git
synced 2025-12-06 07:12:10 +01:00
Only save extensions settings on manual save
This commit is contained in:
parent
cc757f6226
commit
bc2b0f54e9
|
|
@ -6,6 +6,7 @@ import gradio as gr
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import extensions
|
import extensions
|
||||||
|
import modules.extensions as extensions_module
|
||||||
from modules import shared
|
from modules import shared
|
||||||
from modules.chat import load_history
|
from modules.chat import load_history
|
||||||
from modules.utils import gradio
|
from modules.utils import gradio
|
||||||
|
|
@ -334,35 +335,41 @@ def save_settings(state, preset, extensions_list, show_controls, theme_state, ma
|
||||||
output.pop('instruction_template_str')
|
output.pop('instruction_template_str')
|
||||||
output.pop('truncation_length')
|
output.pop('truncation_length')
|
||||||
|
|
||||||
# Only save extensions on manual save
|
# Handle extensions and extension parameters
|
||||||
if manual_save:
|
if manual_save:
|
||||||
|
# Save current extensions and their parameter values
|
||||||
output['default_extensions'] = extensions_list
|
output['default_extensions'] = extensions_list
|
||||||
|
|
||||||
|
for extension_name in extensions_list:
|
||||||
|
extension = getattr(extensions, extension_name, None)
|
||||||
|
if extension:
|
||||||
|
extension = extension.script
|
||||||
|
if hasattr(extension, 'params'):
|
||||||
|
params = getattr(extension, 'params')
|
||||||
|
for param in params:
|
||||||
|
_id = f"{extension_name}-{param}"
|
||||||
|
# Only save if different from default value
|
||||||
|
if param not in shared.default_settings or params[param] != shared.default_settings[param]:
|
||||||
|
output[_id] = params[param]
|
||||||
else:
|
else:
|
||||||
# Preserve existing extensions from settings file during autosave
|
# Preserve existing extensions and extension parameters during autosave
|
||||||
settings_path = Path('user_data') / 'settings.yaml'
|
settings_path = Path('user_data') / 'settings.yaml'
|
||||||
if settings_path.exists():
|
if settings_path.exists():
|
||||||
try:
|
try:
|
||||||
with open(settings_path, 'r', encoding='utf-8') as f:
|
with open(settings_path, 'r', encoding='utf-8') as f:
|
||||||
existing_settings = yaml.safe_load(f.read()) or {}
|
existing_settings = yaml.safe_load(f.read()) or {}
|
||||||
|
|
||||||
|
# Preserve default_extensions
|
||||||
if 'default_extensions' in existing_settings:
|
if 'default_extensions' in existing_settings:
|
||||||
output['default_extensions'] = existing_settings['default_extensions']
|
output['default_extensions'] = existing_settings['default_extensions']
|
||||||
|
|
||||||
|
# Preserve extension parameter values
|
||||||
|
for key, value in existing_settings.items():
|
||||||
|
if any(key.startswith(f"{ext_name}-") for ext_name in extensions_module.available_extensions):
|
||||||
|
output[key] = value
|
||||||
except Exception:
|
except Exception:
|
||||||
pass # If we can't read the file, just don't modify extensions
|
pass # If we can't read the file, just don't modify extensions
|
||||||
|
|
||||||
# Save extension values in the UI
|
|
||||||
for extension_name in extensions_list:
|
|
||||||
extension = getattr(extensions, extension_name, None)
|
|
||||||
if extension:
|
|
||||||
extension = extension.script
|
|
||||||
if hasattr(extension, 'params'):
|
|
||||||
params = getattr(extension, 'params')
|
|
||||||
for param in params:
|
|
||||||
_id = f"{extension_name}-{param}"
|
|
||||||
# Only save if different from default value
|
|
||||||
if param not in shared.default_settings or params[param] != shared.default_settings[param]:
|
|
||||||
output[_id] = params[param]
|
|
||||||
|
|
||||||
# Do not save unchanged settings
|
# Do not save unchanged settings
|
||||||
for key in list(output.keys()):
|
for key in list(output.keys()):
|
||||||
if key in shared.default_settings and output[key] == shared.default_settings[key]:
|
if key in shared.default_settings and output[key] == shared.default_settings[key]:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue