From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
import json |
|
|
|
|
|
class SettingsHandler: |
|
def __init__(self, json_filename): |
|
self.json_filename = json_filename |
|
self.advanced_settings = self.load_current_settings() |
|
|
|
def load_current_settings(self) -> dict: |
|
with open(self.json_filename, "r") as file: |
|
settings_dict = json.load(file) |
|
|
|
advanced_settings = settings_dict["Advanced Settings"] |
|
|
|
return advanced_settings |
|
|
|
def update_advanced_settings(self, updated_advanced_settings: dict): |
|
new_dict = { |
|
"Advanced Settings": updated_advanced_settings |
|
} |
|
|
|
print(new_dict) |
|
|
|
with open(self.json_filename, "w") as file: |
|
json.dump(new_dict, file) |
|
|
|
self.advanced_settings = updated_advanced_settings |
|
|
|
def update_advanced_settings_param(self, key: str, new_val): |
|
if self.get_advanced_setting_param(key) is not None: |
|
update_advanced_settings_dict = self.advanced_settings |
|
update_advanced_settings_dict[key] = new_val |
|
self.update_advanced_settings(update_advanced_settings_dict) |
|
|
|
def get_advanced_settings(self): |
|
return self.advanced_settings |
|
|
|
def get_advanced_setting_param(self, key: str): |
|
return self.advanced_settings.get(key) |
|
|
|
|
|
class LanguagesHandler: |
|
def __init__(self, json_filename): |
|
self.json_filename = json_filename |
|
self.langs = self.load_languages() |
|
|
|
def load_languages(self) -> list: |
|
with open(self.json_filename, "r") as file: |
|
langs = json.load(file) |
|
|
|
if type(langs) != list: |
|
raise RuntimeError("Languages must be provided as lists") |
|
if len(langs) < 2: |
|
raise RuntimeError("At least 2 languages must be supported") |
|
|
|
return langs |
|
|
|
def get_supported_languages(self): |
|
return self.langs |
|
|
|
|