Closed ItsSimko closed 1 week ago
New and removed dependencies detected. Learn more about Socket for GitHub ↗︎
Package | New capabilities | Transitives | Size | Publisher |
---|---|---|---|---|
pypi/docker@7.1.0 | environment, filesystem, network, shell | 0 |
511 kB | aiordache, ccrone, dev-tooling-team, ...4 more |
🚮 Removed packages: pypi/docker@2.0.0
This pull request refactors the settings window code, separating the UI and logic components, and introduces new features such as preset configurations and Docker container management. The changes aim to improve code organization, enhance user experience, and provide better control over the application's Docker-based services.
journey
title User Journey for Updated Settings Window
section Open Settings
User -> SettingsWindowUI: Open settings window
section Configure Settings
User -> SettingsWindowUI: Select preset
User -> SettingsWindowUI: Modify basic settings
User -> SettingsWindowUI: Modify advanced settings
User -> SettingsWindowUI: Modify Docker settings
section Save and Apply
User -> SettingsWindowUI: Save settings
User -> SettingsWindowUI: Close settings window
section Docker Management
User -> MainWindowUI: Start/Stop LLM container
User -> MainWindowUI: Start/Stop Whisper container
section Exit Application
User -> Application: Exit application
Application -> ContainerManager: Auto shutdown containers
classDiagram
class SettingsWindow {
+String KOBOLDCPP_IP
+String WHISPERAUDIO_IP
+String KOBOLDCPP_PORT
+String WHISPERAUDIO_PORT
+String OPENAI_API_KEY
+String API_STYLE
+Map editable_settings
+Map advanced_settings
+Map docker_settings
+Map editable_settings_entries
+void load_settings_from_file(String filename)
+void save_settings(String koboldcpp_ip, String whisperaudio_ip, String openai_api_key, String aiscribe_text, String aiscribe2_text, String settings_window, String koboldcpp_port, String whisperaudio_port, Boolean ssl_enable, Boolean ssl_selfcert, String api_style, String preset)
+void get_available_models()
+void update_models_dropdown(ComboBox dropdown)
+void load_settings_preset(String preset_name, SettingsWindowUI settings_class)
+void set_main_window(MainWindow window)
}
class SettingsWindowUI {
+SettingsWindow settings
+MainWindow main_window
+void open_settings_window()
+void create_basic_settings()
+void create_advanced_settings()
+void create_docker_settings()
+void create_editable_settings(Frame frame, List settings_set, int start_row)
+void create_buttons()
+void save_settings(Boolean close_window)
+void reset_to_default()
}
class MainWindow {
+ContainerManager container_manager
+void start_LLM_container(String widget_name, SettingsWindow app_settings)
+void stop_LLM_container(String widget_name, SettingsWindow app_settings)
+void start_whisper_container(String widget_name, SettingsWindow app_settings)
+void stop_whisper_container(String widget_name, SettingsWindow app_settings)
}
class ContainerManager {
+DockerClient client
+Boolean start_container(String container_name)
+Boolean stop_container(String container_name)
+Boolean check_container_status(String container_name)
+void set_status_icon_color(Widget widget, Boolean status)
+void check_docker_status_thread(Widget llm_dot, Widget whisper_dot, SettingsWindow app_settings)
}
SettingsWindow --> SettingsWindowUI
SettingsWindowUI --> MainWindow
MainWindow --> ContainerManager
Change | Details | Files |
---|---|---|
Refactored settings window code into separate UI and logic components |
|
src/FreeScribe.client/UI/SettingsWindow.py src/FreeScribe.client/UI/SettingsWindowUI.py |
Added preset configurations feature |
|
src/FreeScribe.client/UI/SettingsWindowUI.py src/FreeScribe.client/presets/JanAI.json src/FreeScribe.client/presets/ChatGPT.json src/FreeScribe.client/presets/ClinicianFOCUS Toolbox.json |
Implemented Docker container management |
|
src/FreeScribe.client/ContainerManager.py src/FreeScribe.client/UI/MainWindowUI.py |
Enhanced main window functionality |
|
src/FreeScribe.client/UI/MainWindow.py src/FreeScribe.client/UI/MainWindowUI.py src/FreeScribe.client/Tooltip.py |
Updated client.py to use new class structure |
|
src/FreeScribe.client/client.py |
Modified installation and build process |
|
scripts/install.nsi .github/workflows/release.yml |
Note removed leftover API key with BFG repo cleaner, security risk resolved!
Changes Made
Summary by Sourcery
Refactor the settings window by separating logic from UI code and introduce new features including dynamic model loading and presets. Enhance the main window UI with a Docker status bar and update the build and CI configurations to support these changes.
New Features:
Enhancements:
Build:
CI: