diff --git a/src-python/config.py b/src-python/config.py index 96376397..ffbc8844 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -922,39 +922,39 @@ class Config: self.saveConfig(inspect.currentframe().f_code.co_name, value) @property - @json_serializable('PLAMO_MODEL') - def PLAMO_MODEL(self): - return self._PLAMO_MODEL + @json_serializable('SELECTED_PLAMO_MODEL') + def SELECTED_PLAMO_MODEL(self): + return self._SELECTED_PLAMO_MODEL - @PLAMO_MODEL.setter - def PLAMO_MODEL(self, value): + @SELECTED_PLAMO_MODEL.setter + def SELECTED_PLAMO_MODEL(self, value): if isinstance(value, str): if value in self.SELECTABLE_PLAMO_MODEL_LIST: - self._PLAMO_MODEL = value + self._SELECTED_PLAMO_MODEL = value self.saveConfig(inspect.currentframe().f_code.co_name, value) @property @json_serializable('GEMINI_MODEL') - def GEMINI_MODEL(self): - return self._GEMINI_MODEL + def SELECTED_GEMINI_MODEL(self): + return self._SELECTED_GEMINI_MODEL - @GEMINI_MODEL.setter - def GEMINI_MODEL(self, value): + @SELECTED_GEMINI_MODEL.setter + def SELECTED_GEMINI_MODEL(self, value): if isinstance(value, str): if value in self.SELECTABLE_GEMINI_MODEL_LIST: - self._GEMINI_MODEL = value + self._SELECTED_GEMINI_MODEL = value self.saveConfig(inspect.currentframe().f_code.co_name, value) @property - @json_serializable('OPENAI_MODEL') - def OPENAI_MODEL(self): - return self._OPENAI_MODEL + @json_serializable('SELECTED_OPENAI_MODEL') + def SELECTED_OPENAI_MODEL(self): + return self._SELECTED_OPENAI_MODEL - @OPENAI_MODEL.setter - def OPENAI_MODEL(self, value): + @SELECTED_OPENAI_MODEL.setter + def SELECTED_OPENAI_MODEL(self, value): if isinstance(value, str): if value in self.SELECTABLE_OPENAI_MODEL_LIST: - self._OPENAI_MODEL = value + self._SELECTED_OPENAI_MODEL = value self.saveConfig(inspect.currentframe().f_code.co_name, value) @property @@ -1181,9 +1181,6 @@ class Config: self._SELECTABLE_TRANSCRIPTION_ENGINE_LIST = list(transcription_lang[first_key].values())[0].keys() except Exception: self._SELECTABLE_TRANSCRIPTION_ENGINE_LIST = [] - self._SELECTABLE_PLAMO_MODEL_LIST = [] - self._SELECTABLE_GEMINI_MODEL_LIST = [] - self._SELECTABLE_OPENAI_MODEL_LIST = [] self._SELECTABLE_UI_LANGUAGE_LIST = ["en", "ja", "ko", "zh-Hant", "zh-Hans"] self._COMPUTE_MODE = "cuda" if torch.cuda.is_available() else "cpu" self._SELECTABLE_COMPUTE_DEVICE_LIST = getComputeDeviceList() @@ -1234,6 +1231,9 @@ class Config: self._SELECTABLE_TRANSCRIPTION_ENGINE_STATUS = {} for engine in self.SELECTABLE_TRANSCRIPTION_ENGINE_LIST: self._SELECTABLE_TRANSCRIPTION_ENGINE_STATUS[engine] = False + self._SELECTABLE_PLAMO_MODEL_LIST = [] + self._SELECTABLE_GEMINI_MODEL_LIST = [] + self._SELECTABLE_OPENAI_MODEL_LIST = [] # Save Json Data ## Main Window @@ -1341,9 +1341,9 @@ class Config: self._SELECTED_TRANSLATION_COMPUTE_DEVICE = copy.deepcopy(self.SELECTABLE_COMPUTE_DEVICE_LIST[0]) self._SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = copy.deepcopy(self.SELECTABLE_COMPUTE_DEVICE_LIST[0]) self._CTRANSLATE2_WEIGHT_TYPE = "m2m100_418M-ct2-int8" - self._PLAMO_MODEL = None - self._GEMINI_MODEL = None - self._OPENAI_MODEL = None + self._SELECTED_PLAMO_MODEL = None + self._SELECTED_GEMINI_MODEL = None + self._SELECTED_OPENAI_MODEL = None self._SELECTED_TRANSLATION_COMPUTE_TYPE = "auto" self._WHISPER_WEIGHT_TYPE = "base" self._SELECTED_TRANSCRIPTION_COMPUTE_TYPE = "auto" diff --git a/src-python/controller.py b/src-python/controller.py index e3b788a2..f4c1e094 100644 --- a/src-python/controller.py +++ b/src-python/controller.py @@ -1622,10 +1622,10 @@ class Controller: config.AUTH_KEYS = auth_keys config.SELECTABLE_TRANSLATION_ENGINE_STATUS[translator_name] = True config.SELECTABLE_PLAMO_MODEL_LIST = model.getTranslatorPlamoModelList() - # ここにrunが必要 - if config.PLAMO_MODEL not in config.SELECTABLE_PLAMO_MODEL_LIST: - config.PLAMO_MODEL = config.SELECTABLE_PLAMO_MODEL_LIST[0] - # ここにrunが必要 + self.run(200, self.run_mapping["selectable_plamo_model_list"], config.SELECTABLE_PLAMO_MODEL_LIST) + if config.SELECTED_PLAMO_MODEL not in config.SELECTABLE_PLAMO_MODEL_LIST: + config.SELECTED_PLAMO_MODEL = config.SELECTABLE_PLAMO_MODEL_LIST[0] + self.run(200, self.run_mapping["selected_plamo_model"], config.SELECTED_PLAMO_MODEL) model.updateTranslatorPlamoClient() self.updateTranslationEngineAndEngineList() response = {"status":200, "result":config.AUTH_KEYS[translator_name]} @@ -1669,7 +1669,7 @@ class Controller: return {"status":200, "result": config.SELECTABLE_PLAMO_MODEL_LIST} def getPlamoModel(self, *args, **kwargs) -> dict: - return {"status":200, "result":config.PLAMO_MODEL} + return {"status":200, "result":config.SELECTED_PLAMO_MODEL} def setPlamoModel(self, data, *args, **kwargs) -> dict: printLog("Set Plamo Model", data) @@ -1677,15 +1677,15 @@ class Controller: data = str(data) result = model.setTranslatorPlamoModel(model=data) if result is True: - config.PLAMO_MODEL = data + config.SELECTED_PLAMO_MODEL = data model.updateTranslatorPlamoClient() - response = {"status":200, "result":config.PLAMO_MODEL} + response = {"status":200, "result":config.SELECTED_PLAMO_MODEL} else: response = { "status":400, "result":{ "message":"Plamo model is not valid", - "data": config.PLAMO_MODEL + "data": config.SELECTED_PLAMO_MODEL } } except Exception as e: @@ -1694,7 +1694,7 @@ class Controller: "status":400, "result":{ "message":f"Error {e}", - "data": config.PLAMO_MODEL + "data": config.SELECTED_PLAMO_MODEL } } return response @@ -1716,10 +1716,10 @@ class Controller: config.AUTH_KEYS = auth_keys config.SELECTABLE_TRANSLATION_ENGINE_STATUS[translator_name] = True config.SELECTABLE_GEMINI_MODEL_LIST = model.getTranslatorGeminiModelList() - # ここにrunが必要 - if config.GEMINI_MODEL not in config.SELECTABLE_GEMINI_MODEL_LIST: - config.GEMINI_MODEL = config.SELECTABLE_GEMINI_MODEL_LIST[0] - # ここにrunが必要 + self.run(200, self.run_mapping["selectable_gemini_model_list"], config.SELECTABLE_GEMINI_MODEL_LIST) + if config.SELECTED_GEMINI_MODEL not in config.SELECTABLE_GEMINI_MODEL_LIST: + config.SELECTED_GEMINI_MODEL = config.SELECTABLE_GEMINI_MODEL_LIST[0] + self.run(200, self.run_mapping["selected_gemini_model"], config.SELECTED_GEMINI_MODEL) model.updateTranslatorGeminiClient() self.updateTranslationEngineAndEngineList() response = {"status":200, "result":config.AUTH_KEYS[translator_name]} @@ -1763,7 +1763,7 @@ class Controller: return {"status":200, "result": config.SELECTABLE_GEMINI_MODEL_LIST} def getGeminiModel(self, *args, **kwargs) -> dict: - return {"status":200, "result":config.GEMINI_MODEL} + return {"status":200, "result":config.SELECTED_GEMINI_MODEL} def setGeminiModel(self, data, *args, **kwargs) -> dict: printLog("Set Gemini Model", data) @@ -1771,15 +1771,15 @@ class Controller: data = str(data) result = model.setTranslatorGeminiModel(model=data) if result is True: - config.GEMINI_MODEL = data + config.SELECTED_GEMINI_MODEL = data model.updateTranslatorGeminiClient() - response = {"status":200, "result":config.GEMINI_MODEL} + response = {"status":200, "result":config.SELECTED_GEMINI_MODEL} else: response = { "status":400, "result":{ "message":"Gemini model is not valid", - "data": config.GEMINI_MODEL + "data": config.SELECTED_GEMINI_MODEL } } except Exception as e: @@ -1788,7 +1788,7 @@ class Controller: "status":400, "result":{ "message":f"Error {e}", - "data": config.GEMINI_MODEL + "data": config.SELECTED_GEMINI_MODEL } } return response @@ -1809,10 +1809,10 @@ class Controller: config.AUTH_KEYS = auth_keys config.SELECTABLE_TRANSLATION_ENGINE_STATUS[translator_name] = True config.SELECTABLE_OPENAI_MODEL_LIST = model.getTranslatorOpenAIModelList() - # ここにrunが必要 - if config.OPENAI_MODEL not in config.SELECTABLE_OPENAI_MODEL_LIST: - config.OPENAI_MODEL = config.SELECTABLE_OPENAI_MODEL_LIST[0] - # ここにrunが必要 + self.run(200, self.run_mapping["selectable_openai_model_list"], config.SELECTABLE_OPENAI_MODEL_LIST) + if config.SELECTED_OPENAI_MODEL not in config.SELECTABLE_OPENAI_MODEL_LIST: + config.SELECTED_OPENAI_MODEL = config.SELECTABLE_OPENAI_MODEL_LIST[0] + self.run(200, self.run_mapping["selected_openai_model"], config.SELECTED_OPENAI_MODEL) model.updateTranslatorOpenAIClient() self.updateTranslationEngineAndEngineList() response = {"status":200, "result":config.AUTH_KEYS[translator_name]} @@ -1848,7 +1848,7 @@ class Controller: return {"status":200, "result": config.SELECTABLE_OPENAI_MODEL_LIST} def getOpenAIModel(self, *args, **kwargs) -> dict: - return {"status":200, "result":config.OPENAI_MODEL} + return {"status":200, "result":config.SELECTED_OPENAI_MODEL} def setOpenAIModel(self, data, *args, **kwargs) -> dict: printLog("Set OpenAI Model", data) @@ -1856,14 +1856,14 @@ class Controller: data = str(data) result = model.setTranslatorOpenAIModel(model=data) if result is True: - config.OPENAI_MODEL = data - response = {"status":200, "result":config.OPENAI_MODEL} + config.SELECTED_OPENAI_MODEL = data + response = {"status":200, "result":config.SELECTED_OPENAI_MODEL} else: response = { "status":400, "result":{ "message":"OpenAI model is not valid", - "data": config.OPENAI_MODEL + "data": config.SELECTED_OPENAI_MODEL } } except Exception as e: @@ -1872,7 +1872,7 @@ class Controller: "status":400, "result":{ "message":f"Error {e}", - "data": config.OPENAI_MODEL + "data": config.SELECTED_OPENAI_MODEL } } return response @@ -2759,9 +2759,9 @@ class Controller: config.SELECTABLE_TRANSLATION_ENGINE_STATUS[engine] = True printLog("Plamo API Key is valid") config.SELECTABLE_PLAMO_MODEL_LIST = model.getTranslatorPlamoModelList() - if config.PLAMO_MODEL not in config.SELECTABLE_PLAMO_MODEL_LIST: - config.PLAMO_MODEL = config.SELECTABLE_PLAMO_MODEL_LIST[0] - model.setTranslatorPlamoModel(config.PLAMO_MODEL) + if config.SELECTED_PLAMO_MODEL not in config.SELECTABLE_PLAMO_MODEL_LIST: + config.SELECTED_PLAMO_MODEL = config.SELECTABLE_PLAMO_MODEL_LIST[0] + model.setTranslatorPlamoModel(config.SELECTED_PLAMO_MODEL) model.updateTranslatorPlamoClient() else: # error update Auth key @@ -2777,9 +2777,9 @@ class Controller: config.SELECTABLE_TRANSLATION_ENGINE_STATUS[engine] = True printLog("Gemini API Key is valid") config.SELECTABLE_GEMINI_MODEL_LIST = model.getTranslatorGeminiModelList() - if config.GEMINI_MODEL not in config.SELECTABLE_GEMINI_MODEL_LIST: - config.GEMINI_MODEL = config.SELECTABLE_GEMINI_MODEL_LIST[0] - model.setTranslatorGeminiModel(config.GEMINI_MODEL) + if config.SELECTED_GEMINI_MODEL not in config.SELECTABLE_GEMINI_MODEL_LIST: + config.SELECTED_GEMINI_MODEL = config.SELECTABLE_GEMINI_MODEL_LIST[0] + model.setTranslatorGeminiModel(config.SELECTED_GEMINI_MODEL) model.updateTranslatorGeminiClient() else: # error update Auth key @@ -2795,9 +2795,9 @@ class Controller: config.SELECTABLE_TRANSLATION_ENGINE_STATUS[engine] = True printLog("OpenAI API Key is valid") config.SELECTABLE_OPENAI_MODEL_LIST = model.getTranslatorOpenAIModelList() - if config.OPENAI_MODEL not in config.SELECTABLE_OPENAI_MODEL_LIST: - config.OPENAI_MODEL = config.SELECTABLE_OPENAI_MODEL_LIST[0] - model.setTranslatorOpenAIModel(config.OPENAI_MODEL) + if config.SELECTED_OPENAI_MODEL not in config.SELECTABLE_OPENAI_MODEL_LIST: + config.SELECTED_OPENAI_MODEL = config.SELECTABLE_OPENAI_MODEL_LIST[0] + model.setTranslatorOpenAIModel(config.SELECTED_OPENAI_MODEL) model.updateTranslatorOpenAIClient() else: # error update Auth key diff --git a/src-python/mainloop.py b/src-python/mainloop.py index cfedaecd..e5dbc735 100644 --- a/src-python/mainloop.py +++ b/src-python/mainloop.py @@ -51,6 +51,13 @@ run_mapping = { "selected_translation_compute_type":"/run/selected_translation_compute_type", "selected_transcription_compute_type":"/run/selected_transcription_compute_type", + "selectable_plamo_model_list":"/run/selectable_plamo_model_list", + "selected_plamo_model":"/run/selected_plamo_model", + "selectable_gemini_model_list":"/run/selectable_gemini_model_list", + "selected_gemini_model":"/run/selected_gemini_model", + "selectable_openai_model_list":"/run/selectable_openai_model_list", + "selected_openai_model":"/run/selected_openai_model", + "mic_host_list":"/run/mic_host_list", "mic_device_list":"/run/mic_device_list", "speaker_device_list":"/run/speaker_device_list",