翻訳モデル設定を SELECTED_* に統一し、Controller と UI 更新の連携を追加

- config: PLAMO_MODEL/GEMINI_MODEL/OPENAI_MODEL を SELECTED_PLAMO_MODEL/SELECTED_GEMINI_MODEL/SELECTED_OPENAI_MODEL にリネーム
  - JSON シリアライズキーも SELECTED_* に変更
  - 初期化フィールドを新キーに合わせて修正
- controller: すべての参照を新しい SELECTED_* プロパティへ置換
  - モデル一覧取得時に run コールバックで selectable リストを通知
  - 選択モデルを更新した際に run コールバックで選択状態を通知
  - モデル更新・クライアント再構築処理の呼び出しを保持
- mainloop: GUI 更新用の run_mapping に selectable/selected のモデル関連エンドポイントを追加
This commit is contained in:
misyaguziya
2025-10-16 21:55:27 +09:00
parent a862805a05
commit c18748f6bc
3 changed files with 66 additions and 59 deletions

View File

@@ -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"