From 5366622fca924099609e07e7bbf4a9731cec53f3 Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Fri, 26 Sep 2025 23:30:39 +0900 Subject: [PATCH] [Update] Refactor compute device management: change methods to instance methods and set compute types to "auto" --- src-python/controller.py | 12 ++++++++---- src-python/mainloop.py | 3 +++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src-python/controller.py b/src-python/controller.py index a746ecee..20bfbe88 100644 --- a/src-python/controller.py +++ b/src-python/controller.py @@ -656,13 +656,15 @@ class Controller: def getSelectedTranslationComputeDevice(*args, **kwargs) -> dict: return {"status":200, "result":config.SELECTED_TRANSLATION_COMPUTE_DEVICE} - @staticmethod - def setSelectedTranslationComputeDevice(device:str, *args, **kwargs) -> dict: + def setSelectedTranslationComputeDevice(self, device:str, *args, **kwargs) -> dict: printLog("setSelectedTranslationComputeDevice", device) pre_device = config.SELECTED_TRANSLATION_COMPUTE_DEVICE + pre_compute_type = config.TRANSLATION_COMPUTE_TYPE config.SELECTED_TRANSLATION_COMPUTE_DEVICE = device + config.TRANSLATION_COMPUTE_TYPE = "auto" try: model.changeTranslatorCTranslate2Model() + self.run(200, self.run_mapping["translation_compute_type"], config.TRANSLATION_COMPUTE_TYPE) except Exception as e: # VRAM不足エラーの検出(デバイス切り替え時) is_vram_error, error_message = model.detectVRAMError(e) @@ -670,6 +672,7 @@ class Controller: # 前のデバイス設定に戻す printLog("VRAM error detected, reverting device setting") config.SELECTED_TRANSLATION_COMPUTE_DEVICE = pre_device + config.TRANSLATION_COMPUTE_TYPE = pre_compute_type model.changeTranslatorCTranslate2Model() else: # その他のエラーは通常通り処理 @@ -684,10 +687,11 @@ class Controller: def getSelectedTranscriptionComputeDevice(*args, **kwargs) -> dict: return {"status":200, "result":config.SELECTED_TRANSCRIPTION_COMPUTE_DEVICE} - @staticmethod - def setSelectedTranscriptionComputeDevice(device:str, *args, **kwargs) -> dict: + def setSelectedTranscriptionComputeDevice(self, device:str, *args, **kwargs) -> dict: printLog("setSelectedTranscriptionComputeDevice", device) config.SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = device + config.TRANSCRIPTION_COMPUTE_TYPE = "auto" + self.run(200, self.run_mapping["transcription_compute_type"], config.TRANSCRIPTION_COMPUTE_TYPE) return {"status":200,"result":config.SELECTED_TRANSCRIPTION_COMPUTE_DEVICE} @staticmethod diff --git a/src-python/mainloop.py b/src-python/mainloop.py index a32fef8a..2df4d53e 100644 --- a/src-python/mainloop.py +++ b/src-python/mainloop.py @@ -48,6 +48,9 @@ run_mapping = { "selected_translation_engines":"/run/selected_translation_engines", "translation_engines":"/run/translation_engines", + "translation_compute_type":"/run/translation_compute_type", + "transcription_compute_type":"/run/transcription_compute_type", + "mic_host_list":"/run/mic_host_list", "mic_device_list":"/run/mic_device_list", "speaker_device_list":"/run/speaker_device_list",