[Refactor] Update endpoint names to use 'selectable' prefix for mic, speaker, and translation engines

This commit is contained in:
misyaguziya
2025-11-12 20:55:08 +09:00
parent cfc0e9fcc4
commit 215f5f6815
9 changed files with 100 additions and 100 deletions

View File

@@ -79,21 +79,21 @@ class Controller:
def updateMicHostList(self) -> None: def updateMicHostList(self) -> None:
self.run( self.run(
200, 200,
self.run_mapping["mic_host_list"], self.run_mapping["selectable_mic_host_list"],
model.getListMicHost(), model.getListMicHost(),
) )
def updateMicDeviceList(self) -> None: def updateMicDeviceList(self) -> None:
self.run( self.run(
200, 200,
self.run_mapping["mic_device_list"], self.run_mapping["selectable_mic_device_list"],
model.getListMicDevice(), model.getListMicDevice(),
) )
def updateSpeakerDeviceList(self) -> None: def updateSpeakerDeviceList(self) -> None:
self.run( self.run(
200, 200,
self.run_mapping["speaker_device_list"], self.run_mapping["selectable_speaker_device_list"],
model.getListSpeakerDevice(), model.getListSpeakerDevice(),
) )

View File

@@ -12,7 +12,7 @@ VRCTアプリケーションのAPIエンドポイントを包括的にテスト
- マイク/スピーカー関連タイムアウト値の正常範囲チェック(取得した最新値を基準にバリデーション) - マイク/スピーカー関連タイムアウト値の正常範囲チェック(取得した最新値を基準にバリデーション)
- Whisper / CTranslate2 重みタイプ辞書のキー集合変化への追従 - Whisper / CTranslate2 重みタイプ辞書のキー集合変化への追従
例: `"/set/data/selected_translation_engines"` 試験前に `"/get/data/translation_engines"` を呼び、取得したリストから `random.choice()`。従来の初期キャッシュ依存から、実行時取得へ移行。 例: `"/set/data/selected_translation_engines"` 試験前に `"/get/data/selectable_translation_engines"` を呼び、取得したリストから `random.choice()`。従来の初期キャッシュ依存から、実行時取得へ移行。
## 主要機能 ## 主要機能
@@ -94,13 +94,13 @@ test.test_endpoints_specific_random()
動的取得対象(代表例): 動的取得対象(代表例):
- `selected_translation_engines``/get/data/translation_engines` - `selected_translation_engines``/get/data/selectable_translation_engines`
- `selected_transcription_engine``/get/data/transcription_engines` - `selected_transcription_engine``/get/data/selectable_transcription_engines`
- `selected_translation_compute_device``/get/data/translation_compute_device_list` - `selected_translation_compute_device``/get/data/selectable_translation_compute_device_list`
- `ctranslate2_weight_type``/get/data/selectable_ctranslate2_weight_type_dict` - `ctranslate2_weight_type``/get/data/selectable_ctranslate2_weight_type_dict`
- `whisper_weight_type``/get/data/selectable_whisper_weight_type_dict` - `whisper_weight_type``/get/data/selectable_whisper_weight_type_dict`
- `selected_mic_host` / `selected_mic_device``/get/data/mic_host_list` / `/get/data/mic_device_list` - `selected_mic_host` / `selected_mic_device``/get/data/selectable_mic_host_list` / `/get/data/selectable_mic_device_list`
- `selected_speaker_device``/get/data/speaker_device_list` - `selected_speaker_device``/get/data/selectable_speaker_device_list`
### 実行系 ### 実行系

View File

@@ -79,8 +79,8 @@
`mainloop.py``mapping` / `run_mapping` に以下を追加: `mainloop.py``mapping` / `run_mapping` に以下を追加:
- `/get/data/lmstudio_model_list`, `/get/data/lmstudio_model`, `/set/data/lmstudio_model`, `/get/data/lmstudio_url`, `/set/data/lmstudio_url` - `/get/data/selectable_lmstudio_model_list`, `/get/data/selected_lmstudio_model`, `/set/data/selected_lmstudio_model`, `/get/data/lmstudio_url`, `/set/data/lmstudio_url`
- `/get/data/ollama_connection`, `/get/data/ollama_model_list`, `/get/data/ollama_model`, `/set/data/ollama_model` - `/get/data/ollama_connection`, `/get/data/selectable_ollama_model_list`, `/get/data/selected_ollama_model`, `/set/data/selected_ollama_model`
- OpenAI 系: `getOpenAIAuthKey`, `setOpenAIAuthKey`, `delOpenAIAuthKey`, `getOpenAIModelList`, `getOpenAIModel`, `setOpenAIModel` に名称統一。 - OpenAI 系: `getOpenAIAuthKey`, `setOpenAIAuthKey`, `delOpenAIAuthKey`, `getOpenAIModelList`, `getOpenAIModel`, `setOpenAIModel` に名称統一。
### 翻訳言語定義の構造変更 ### 翻訳言語定義の構造変更

View File

@@ -63,9 +63,9 @@ run_mapping = {
"selectable_ollama_model_list":"/run/selectable_ollama_model_list", "selectable_ollama_model_list":"/run/selectable_ollama_model_list",
"selected_ollama_model":"/run/selected_ollama_model", "selected_ollama_model":"/run/selected_ollama_model",
"mic_host_list":"/run/mic_host_list", "selectable_mic_host_list":"/run/selectable_mic_host_list",
"mic_device_list":"/run/mic_device_list", "selectable_mic_device_list":"/run/selectable_mic_device_list",
"speaker_device_list":"/run/speaker_device_list", "selectable_speaker_device_list":"/run/selectable_speaker_device_list",
"software_update_info":"/run/software_update_info", "software_update_info":"/run/software_update_info",
@@ -103,7 +103,7 @@ mapping = {
"/set/enable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setEnableMainWindowSidebarCompactMode}, "/set/enable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setEnableMainWindowSidebarCompactMode},
"/set/disable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setDisableMainWindowSidebarCompactMode}, "/set/disable/main_window_sidebar_compact_mode": {"status": True, "variable":controller.setDisableMainWindowSidebarCompactMode},
"/get/data/translation_engines": {"status": True, "variable":controller.getTranslationEngines}, "/get/data/selectable_translation_engines": {"status": True, "variable":controller.getTranslationEngines},
"/get/data/selectable_language_list": {"status": True, "variable":controller.getListLanguageAndCountry}, "/get/data/selectable_language_list": {"status": True, "variable":controller.getListLanguageAndCountry},
"/get/data/selected_translation_engines": {"status": False, "variable":controller.getSelectedTranslationEngines}, "/get/data/selected_translation_engines": {"status": False, "variable":controller.getSelectedTranslationEngines},
@@ -115,7 +115,7 @@ mapping = {
"/get/data/selected_target_languages": {"status": True, "variable":controller.getSelectedTargetLanguages}, "/get/data/selected_target_languages": {"status": True, "variable":controller.getSelectedTargetLanguages},
"/set/data/selected_target_languages": {"status": True, "variable":controller.setSelectedTargetLanguages}, "/set/data/selected_target_languages": {"status": True, "variable":controller.setSelectedTargetLanguages},
"/get/data/transcription_engines": {"status": False, "variable":controller.getTranscriptionEngines}, "/get/data/selectable_transcription_engines": {"status": False, "variable":controller.getTranscriptionEngines},
"/get/data/selected_transcription_engine": {"status": False, "variable":controller.getSelectedTranscriptionEngine}, "/get/data/selected_transcription_engine": {"status": False, "variable":controller.getSelectedTranscriptionEngine},
"/set/data/selected_transcription_engine": {"status": False, "variable":controller.setSelectedTranscriptionEngine}, "/set/data/selected_transcription_engine": {"status": False, "variable":controller.setSelectedTranscriptionEngine},
@@ -164,18 +164,18 @@ mapping = {
# Compute device # Compute device
"/get/data/compute_mode": {"status": True, "variable":controller.getComputeMode}, "/get/data/compute_mode": {"status": True, "variable":controller.getComputeMode},
"/get/data/translation_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList}, "/get/data/selectable_translation_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
"/get/data/selected_translation_compute_device": {"status": True, "variable":controller.getSelectedTranslationComputeDevice}, "/get/data/selected_translation_compute_device": {"status": True, "variable":controller.getSelectedTranslationComputeDevice},
"/set/data/selected_translation_compute_device": {"status": True, "variable":controller.setSelectedTranslationComputeDevice}, "/set/data/selected_translation_compute_device": {"status": True, "variable":controller.setSelectedTranslationComputeDevice},
"/get/data/transcription_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList}, "/get/data/selectable_transcription_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
"/get/data/selected_transcription_compute_device": {"status": True, "variable":controller.getSelectedTranscriptionComputeDevice}, "/get/data/selected_transcription_compute_device": {"status": True, "variable":controller.getSelectedTranscriptionComputeDevice},
"/set/data/selected_transcription_compute_device": {"status": True, "variable":controller.setSelectedTranscriptionComputeDevice}, "/set/data/selected_transcription_compute_device": {"status": True, "variable":controller.setSelectedTranscriptionComputeDevice},
# Translation # Translation
"/get/data/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeDict}, "/get/data/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeDict},
"/get/data/ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType}, "/get/data/selected_ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType},
"/set/data/ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType}, "/set/data/selected_ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType},
"/get/data/selected_translation_compute_type": {"status": True, "variable":controller.getSelectedTranslationComputeType}, "/get/data/selected_translation_compute_type": {"status": True, "variable":controller.getSelectedTranslationComputeType},
"/set/data/selected_translation_compute_type": {"status": True, "variable":controller.setSelectedTranslationComputeType}, "/set/data/selected_translation_compute_type": {"status": True, "variable":controller.setSelectedTranslationComputeType},
@@ -186,38 +186,38 @@ mapping = {
"/set/data/deepl_auth_key": {"status": False, "variable":controller.setDeeplAuthKey}, "/set/data/deepl_auth_key": {"status": False, "variable":controller.setDeeplAuthKey},
"/delete/data/deepl_auth_key": {"status": False, "variable":controller.delDeeplAuthKey}, "/delete/data/deepl_auth_key": {"status": False, "variable":controller.delDeeplAuthKey},
"/get/data/plamo_model_list": {"status": False, "variable":controller.getPlamoModelList}, "/get/data/selectable_plamo_model_list": {"status": False, "variable":controller.getPlamoModelList},
"/get/data/plamo_model": {"status": False, "variable":controller.getPlamoModel}, "/get/data/selected_plamo_model": {"status": False, "variable":controller.getPlamoModel},
"/set/data/plamo_model": {"status": False, "variable":controller.setPlamoModel}, "/set/data/selected_plamo_model": {"status": False, "variable":controller.setPlamoModel},
"/get/data/plamo_auth_key": {"status": False, "variable":controller.getPlamoAuthKey}, "/get/data/plamo_auth_key": {"status": False, "variable":controller.getPlamoAuthKey},
"/set/data/plamo_auth_key": {"status": False, "variable":controller.setPlamoAuthKey}, "/set/data/plamo_auth_key": {"status": False, "variable":controller.setPlamoAuthKey},
"/delete/data/plamo_auth_key": {"status": False, "variable":controller.delPlamoAuthKey}, "/delete/data/plamo_auth_key": {"status": False, "variable":controller.delPlamoAuthKey},
"/get/data/gemini_model_list": {"status": True, "variable":controller.getGeminiModelList}, "/get/data/selectable_gemini_model_list": {"status": True, "variable":controller.getGeminiModelList},
"/get/data/gemini_model": {"status": True, "variable":controller.getGeminiModel}, "/get/data/selected_gemini_model": {"status": True, "variable":controller.getGeminiModel},
"/set/data/gemini_model": {"status": True, "variable":controller.setGeminiModel}, "/set/data/selected_gemini_model": {"status": True, "variable":controller.setGeminiModel},
"/get/data/gemini_auth_key": {"status": True, "variable":controller.getGeminiAuthKey}, "/get/data/gemini_auth_key": {"status": True, "variable":controller.getGeminiAuthKey},
"/set/data/gemini_auth_key": {"status": True, "variable":controller.setGeminiAuthKey}, "/set/data/gemini_auth_key": {"status": True, "variable":controller.setGeminiAuthKey},
"/delete/data/gemini_auth_key": {"status": True, "variable":controller.delGeminiAuthKey}, "/delete/data/gemini_auth_key": {"status": True, "variable":controller.delGeminiAuthKey},
"/get/data/openai_model_list": {"status": True, "variable":controller.getOpenAIModelList}, "/get/data/selectable_openai_model_list": {"status": True, "variable":controller.getOpenAIModelList},
"/get/data/openai_model": {"status": True, "variable":controller.getOpenAIModel}, "/get/data/selected_openai_model": {"status": True, "variable":controller.getOpenAIModel},
"/set/data/openai_model": {"status": True, "variable":controller.setOpenAIModel}, "/set/data/selected_openai_model": {"status": True, "variable":controller.setOpenAIModel},
"/get/data/openai_auth_key": {"status": True, "variable":controller.getOpenAIAuthKey}, "/get/data/openai_auth_key": {"status": True, "variable":controller.getOpenAIAuthKey},
"/set/data/openai_auth_key": {"status": True, "variable":controller.setOpenAIAuthKey}, "/set/data/openai_auth_key": {"status": True, "variable":controller.setOpenAIAuthKey},
"/delete/data/openai_auth_key": {"status": True, "variable":controller.delOpenAIAuthKey}, "/delete/data/openai_auth_key": {"status": True, "variable":controller.delOpenAIAuthKey},
"/run/lmstudio_connection": {"status": True, "variable":controller.checkTranslatorLMStudioConnection}, "/run/lmstudio_connection": {"status": True, "variable":controller.checkTranslatorLMStudioConnection},
"/get/data/lmstudio_model_list": {"status": True, "variable":controller.getTranslatorLStudioModelList}, "/get/data/selectable_lmstudio_model_list": {"status": True, "variable":controller.getTranslatorLStudioModelList},
"/get/data/lmstudio_model": {"status": True, "variable":controller.getTranslatorLMStudioModel}, "/get/data/selected_lmstudio_model": {"status": True, "variable":controller.getTranslatorLMStudioModel},
"/set/data/lmstudio_model": {"status": True, "variable":controller.setTranslatorLMStudioModel}, "/set/data/selected_lmstudio_model": {"status": True, "variable":controller.setTranslatorLMStudioModel},
"/get/data/lmstudio_url": {"status": True, "variable":controller.getTranslatorLMStudioURL}, "/get/data/lmstudio_url": {"status": True, "variable":controller.getTranslatorLMStudioURL},
"/set/data/lmstudio_url": {"status": True, "variable":controller.setTranslatorLMStudioURL}, "/set/data/lmstudio_url": {"status": True, "variable":controller.setTranslatorLMStudioURL},
"/run/ollama_connection": {"status": True, "variable":controller.checkTranslatorOllamaConnection}, "/run/ollama_connection": {"status": True, "variable":controller.checkTranslatorOllamaConnection},
"/get/data/ollama_model_list": {"status": True, "variable":controller.getTranslatorOllamaModelList}, "/get/data/selectable_ollama_model_list": {"status": True, "variable":controller.getTranslatorOllamaModelList},
"/get/data/ollama_model": {"status": True, "variable":controller.getTranslatorOllamaModel}, "/get/data/selected_ollama_model": {"status": True, "variable":controller.getTranslatorOllamaModel},
"/set/data/ollama_model": {"status": True, "variable":controller.setTranslatorOllamaModel}, "/set/data/selected_ollama_model": {"status": True, "variable":controller.setTranslatorOllamaModel},
# Transliteration # Transliteration
"/get/data/convert_message_to_romaji": {"status": True, "variable":controller.getConvertMessageToRomaji}, "/get/data/convert_message_to_romaji": {"status": True, "variable":controller.getConvertMessageToRomaji},
@@ -229,9 +229,9 @@ mapping = {
"/set/disable/convert_message_to_hiragana": {"status": True, "variable":controller.setDisableConvertMessageToHiragana}, "/set/disable/convert_message_to_hiragana": {"status": True, "variable":controller.setDisableConvertMessageToHiragana},
# Transcription # Transcription
"/get/data/mic_host_list": {"status": True, "variable":controller.getMicHostList}, "/get/data/selectable_mic_host_list": {"status": True, "variable":controller.getMicHostList},
"/get/data/mic_device_list": {"status": True, "variable":controller.getMicDeviceList}, "/get/data/selectable_mic_device_list": {"status": True, "variable":controller.getMicDeviceList},
"/get/data/speaker_device_list": {"status": True, "variable":controller.getSpeakerDeviceList}, "/get/data/selectable_speaker_device_list": {"status": True, "variable":controller.getSpeakerDeviceList},
# "/get/data/max_mic_threshold": {"status": True, "variable":controller.getMaxMicThreshold}, # "/get/data/max_mic_threshold": {"status": True, "variable":controller.getMaxMicThreshold},
# "/get/data/max_speaker_threshold": {"status": True, "variable":controller.getMaxSpeakerThreshold}, # "/get/data/max_speaker_threshold": {"status": True, "variable":controller.getMaxSpeakerThreshold},
@@ -314,8 +314,8 @@ mapping = {
"/get/data/selectable_whisper_weight_type_dict": {"status": True, "variable":controller.getSelectableWhisperWeightTypeDict}, "/get/data/selectable_whisper_weight_type_dict": {"status": True, "variable":controller.getSelectableWhisperWeightTypeDict},
"/get/data/whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType}, "/get/data/selected_whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType},
"/set/data/whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType}, "/set/data/selected_whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType},
"/get/data/selected_transcription_compute_type": {"status": True, "variable":controller.getSelectedTranscriptionComputeType}, "/get/data/selected_transcription_compute_type": {"status": True, "variable":controller.getSelectedTranscriptionComputeType},
"/set/data/selected_transcription_compute_type": {"status": True, "variable":controller.setSelectedTranscriptionComputeType}, "/set/data/selected_transcription_compute_type": {"status": True, "variable":controller.setSelectedTranscriptionComputeType},

View File

@@ -394,16 +394,16 @@ class AutomatedEndpointTester:
"/set/data/main_window_geometry", "/set/data/main_window_geometry",
"/set/data/selected_translation_compute_device", "/set/data/selected_translation_compute_device",
"/set/data/selected_transcription_compute_device", "/set/data/selected_transcription_compute_device",
"/set/data/ctranslate2_weight_type", "/set/data/selected_ctranslate2_weight_type",
"/set/data/plamo_model", "/set/data/selected_plamo_model",
"/set/data/plamo_auth_key", "/set/data/plamo_auth_key",
"/set/data/gemini_model", "/set/data/selected_gemini_model",
"/set/data/gemini_auth_key", "/set/data/gemini_auth_key",
"/set/data/openai_model", "/set/data/selected_openai_model",
"/set/data/openai_auth_key", "/set/data/openai_auth_key",
"/set/data/lmstudio_model", "/set/data/selected_lmstudio_model",
"/set/data/lmstudio_url", "/set/data/lmstudio_url",
"/set/data/ollama_model", "/set/data/selected_ollama_model",
"/set/data/deepl_auth_key", "/set/data/deepl_auth_key",
"/set/data/selected_mic_host", "/set/data/selected_mic_host",
"/set/data/selected_mic_device", "/set/data/selected_mic_device",
@@ -423,7 +423,7 @@ class AutomatedEndpointTester:
"/set/data/speaker_max_phrases", "/set/data/speaker_max_phrases",
"/set/data/speaker_avg_logprob", "/set/data/speaker_avg_logprob",
"/set/data/speaker_no_speech_prob", "/set/data/speaker_no_speech_prob",
"/set/data/whisper_weight_type", "/set/data/selected_whisper_weight_type",
"/set/data/overlay_small_log_settings", "/set/data/overlay_small_log_settings",
"/set/data/overlay_large_log_settings", "/set/data/overlay_large_log_settings",
"/set/data/send_message_format_parts", "/set/data/send_message_format_parts",
@@ -482,7 +482,7 @@ class AutomatedEndpointTester:
data = sys.modules.get('__random_tab_choices', None) or None # placeholder for future dynamic data = sys.modules.get('__random_tab_choices', None) or None # placeholder for future dynamic
data = data or "1" data = data or "1"
elif endpoint == "/set/data/selected_translation_engines": elif endpoint == "/set/data/selected_translation_engines":
engines = self._get("/get/data/translation_engines") or [] engines = self._get("/get/data/selectable_translation_engines") or []
data = {i: (engines and (engines[0] if len(engines) else None)) for i in ["1","2","3"]} data = {i: (engines and (engines[0] if len(engines) else None)) for i in ["1","2","3"]}
elif endpoint == "/set/data/selected_your_languages": elif endpoint == "/set/data/selected_your_languages":
lang_list = self._get("/get/data/selectable_language_list") or [] lang_list = self._get("/get/data/selectable_language_list") or []
@@ -495,7 +495,7 @@ class AutomatedEndpointTester:
base = lang_list[0] base = lang_list[0]
data = {i: {j: {**base, "enable": (j=="1")} for j in ["1","2","3"]} for i in ["1","2","3"]} data = {i: {j: {**base, "enable": (j=="1")} for j in ["1","2","3"]} for i in ["1","2","3"]}
elif endpoint == "/set/data/selected_transcription_engine": elif endpoint == "/set/data/selected_transcription_engine":
engines = self._get("/get/data/transcription_engines") or [] engines = self._get("/get/data/selectable_transcription_engines") or []
data = engines[0] if engines else None data = engines[0] if engines else None
elif endpoint == "/set/data/transparency": elif endpoint == "/set/data/transparency":
import random import random
@@ -524,44 +524,44 @@ class AutomatedEndpointTester:
"height": random.randint(600,1080) "height": random.randint(600,1080)
} }
elif endpoint == "/set/data/selected_translation_compute_device": elif endpoint == "/set/data/selected_translation_compute_device":
lst = self._get("/get/data/translation_compute_device_list") or [] lst = self._get("/get/data/selectable_translation_compute_device_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/selected_transcription_compute_device": elif endpoint == "/set/data/selected_transcription_compute_device":
lst = self._get("/get/data/transcription_compute_device_list") or [] lst = self._get("/get/data/selectable_transcription_compute_device_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/ctranslate2_weight_type": elif endpoint == "/set/data/selected_ctranslate2_weight_type":
dct = self._get("/get/data/selectable_ctranslate2_weight_type_dict") or {} dct = self._get("/get/data/selectable_ctranslate2_weight_type_dict") or {}
keys = list(dct.keys()) keys = list(dct.keys())
import random import random
data = random.choice(keys) if keys else None data = random.choice(keys) if keys else None
elif endpoint == "/set/data/plamo_model": elif endpoint == "/set/data/selected_plamo_model":
lst = self._get("/get/data/plamo_model_list") or [] lst = self._get("/get/data/selectable_plamo_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/plamo_auth_key": elif endpoint == "/set/data/plamo_auth_key":
data = "PLAMO_DUMMY_KEY" data = "PLAMO_DUMMY_KEY"
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/gemini_model": elif endpoint == "/set/data/selected_gemini_model":
lst = self._get("/get/data/gemini_model_list") or [] lst = self._get("/get/data/selectable_gemini_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/gemini_auth_key": elif endpoint == "/set/data/gemini_auth_key":
data = "GEMINI_DUMMY_KEY" data = "GEMINI_DUMMY_KEY"
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/openai_model": elif endpoint == "/set/data/selected_openai_model":
lst = self._get("/get/data/openai_model_list") or [] lst = self._get("/get/data/selectable_openai_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/openai_auth_key": elif endpoint == "/set/data/openai_auth_key":
data = "OPENAI_DUMMY_KEY" data = "OPENAI_DUMMY_KEY"
expected = [200,400] expected = [200,400]
elif endpoint == "/set/data/lmstudio_model": elif endpoint == "/set/data/selected_lmstudio_model":
lst = self._get("/get/data/lmstudio_model_list") or [] lst = self._get("/get/data/selectable_lmstudio_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
@@ -569,8 +569,8 @@ class AutomatedEndpointTester:
import random import random
data = random.choice(["http://localhost:1234/v1","http://127.0.0.1:1234/v1","http://invalid_host:9999/v1"]) data = random.choice(["http://localhost:1234/v1","http://127.0.0.1:1234/v1","http://invalid_host:9999/v1"])
expected=[200,400] expected=[200,400]
elif endpoint == "/set/data/ollama_model": elif endpoint == "/set/data/selected_ollama_model":
lst = self._get("/get/data/ollama_model_list") or [] lst = self._get("/get/data/selectable_ollama_model_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
expected = [200,400] expected = [200,400]
@@ -578,11 +578,11 @@ class AutomatedEndpointTester:
data = "DEEPL_DUMMY_KEY" data = "DEEPL_DUMMY_KEY"
expected=[200,400] expected=[200,400]
elif endpoint == "/set/data/selected_mic_host": elif endpoint == "/set/data/selected_mic_host":
lst = self._get("/get/data/mic_host_list") or [] lst = self._get("/get/data/selectable_mic_host_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/selected_mic_device": elif endpoint == "/set/data/selected_mic_device":
lst = self._get("/get/data/mic_device_list") or [] lst = self._get("/get/data/selectable_mic_device_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/mic_threshold": elif endpoint == "/set/data/mic_threshold":
@@ -623,7 +623,7 @@ class AutomatedEndpointTester:
import random import random
data = random.choice([["test_0_0","test_0_1","test_0_2",None],["test_1_0","test_1_1",None],["test_2_0",None],[None]]) data = random.choice([["test_0_0","test_0_1","test_0_2",None],["test_1_0","test_1_1",None],["test_2_0",None],[None]])
elif endpoint == "/set/data/selected_speaker_device": elif endpoint == "/set/data/selected_speaker_device":
lst = self._get("/get/data/speaker_device_list") or [] lst = self._get("/get/data/selectable_speaker_device_list") or []
import random import random
data = random.choice(lst) if lst else None data = random.choice(lst) if lst else None
elif endpoint == "/set/data/speaker_threshold": elif endpoint == "/set/data/speaker_threshold":
@@ -654,7 +654,7 @@ class AutomatedEndpointTester:
elif endpoint == "/set/data/speaker_no_speech_prob": elif endpoint == "/set/data/speaker_no_speech_prob":
import random import random
data = random.uniform(0,1) data = random.uniform(0,1)
elif endpoint == "/set/data/whisper_weight_type": elif endpoint == "/set/data/selected_whisper_weight_type":
dct = self._get("/get/data/selectable_whisper_weight_type_dict") or {} dct = self._get("/get/data/selectable_whisper_weight_type_dict") or {}
import random import random
keys=[k for k,v in dct.items() if v] keys=[k for k,v in dct.items() if v]

View File

@@ -181,7 +181,7 @@ class TestMainloop():
data = random.choice(["1", "2", "3"]) data = random.choice(["1", "2", "3"])
case "/set/data/selected_translation_engines": case "/set/data/selected_translation_engines":
print("Fetching endpoint data for translation_engines...") print("Fetching endpoint data for translation_engines...")
self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/translation_engines", None) self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/selectable_translation_engines", None)
translation_engines = self.config_dict.get("translation_engines", None) translation_engines = self.config_dict.get("translation_engines", None)
data = {} data = {}
for i in ["1", "2", "3"]: for i in ["1", "2", "3"]:
@@ -202,7 +202,7 @@ class TestMainloop():
for j in ["1", "2", "3"]: for j in ["1", "2", "3"]:
data[i][j] = random.choice(selectable_language_list) | {"enable": random.choice([True, False])} data[i][j] = random.choice(selectable_language_list) | {"enable": random.choice([True, False])}
case "/set/data/selected_transcription_engine": case "/set/data/selected_transcription_engine":
self.config_dict["transcription_engines"], _ = self.main.handleRequest("/get/data/transcription_engines", None) self.config_dict["transcription_engines"], _ = self.main.handleRequest("/get/data/selectable_transcription_engines", None)
transcription_engines = self.config_dict.get("transcription_engines", None) transcription_engines = self.config_dict.get("transcription_engines", None)
data = random.choice(transcription_engines) data = random.choice(transcription_engines)
case "/set/data/transparency": case "/set/data/transparency":
@@ -227,42 +227,42 @@ class TestMainloop():
"height": random.randint(600, 1080) "height": random.randint(600, 1080)
} }
case "/set/data/selected_translation_compute_device": case "/set/data/selected_translation_compute_device":
self.config_dict["translation_compute_device_list"], _ = self.main.handleRequest("/get/data/translation_compute_device_list", None) self.config_dict["translation_compute_device_list"], _ = self.main.handleRequest("/get/data/selectable_translation_compute_device_list", None)
translation_compute_device_list = self.config_dict.get("translation_compute_device_list", None) translation_compute_device_list = self.config_dict.get("translation_compute_device_list", None)
data = random.choice(translation_compute_device_list) data = random.choice(translation_compute_device_list)
case "/set/data/selected_transcription_compute_device": case "/set/data/selected_transcription_compute_device":
self.config_dict["transcription_compute_device_list"], _ = self.main.handleRequest("/get/data/transcription_compute_device_list", None) self.config_dict["transcription_compute_device_list"], _ = self.main.handleRequest("/get/data/selectable_transcription_compute_device_list", None)
transcription_compute_device_list = self.config_dict.get("transcription_compute_device_list", None) transcription_compute_device_list = self.config_dict.get("transcription_compute_device_list", None)
data = random.choice(transcription_compute_device_list) data = random.choice(transcription_compute_device_list)
case "/set/data/ctranslate2_weight_type": case "/set/data/selected_ctranslate2_weight_type":
self.config_dict["selectable_ctranslate2_weight_type_dict"], _ = self.main.handleRequest("/get/data/selectable_ctranslate2_weight_type_dict", None) self.config_dict["selectable_ctranslate2_weight_type_dict"], _ = self.main.handleRequest("/get/data/selectable_ctranslate2_weight_type_dict", None)
selectable_ctranslate2_weight_type_dict = self.config_dict.get("selectable_ctranslate2_weight_type_dict", None) selectable_ctranslate2_weight_type_dict = self.config_dict.get("selectable_ctranslate2_weight_type_dict", None)
data = random.choice(list(selectable_ctranslate2_weight_type_dict.keys())) data = random.choice(list(selectable_ctranslate2_weight_type_dict.keys()))
# LLM / API Clients # LLM / API Clients
case "/set/data/plamo_model": case "/set/data/selected_plamo_model":
# 事前にモデルリストを取得 # 事前にモデルリストを取得
self.config_dict["plamo_model_list"], _ = self.main.handleRequest("/get/data/plamo_model_list", None) self.config_dict["plamo_model_list"], _ = self.main.handleRequest("/get/data/selectable_plamo_model_list", None)
model_list = self.config_dict.get("plamo_model_list", []) model_list = self.config_dict.get("plamo_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/plamo_auth_key": case "/set/data/plamo_auth_key":
data = "PLAMO_DUMMY_KEY" # 成功か失敗かは内部判定に依存 data = "PLAMO_DUMMY_KEY" # 成功か失敗かは内部判定に依存
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/gemini_model": case "/set/data/selected_gemini_model":
self.config_dict["gemini_model_list"], _ = self.main.handleRequest("/get/data/gemini_model_list", None) self.config_dict["gemini_model_list"], _ = self.main.handleRequest("/get/data/selectable_gemini_model_list", None)
model_list = self.config_dict.get("gemini_model_list", []) model_list = self.config_dict.get("gemini_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/gemini_auth_key": case "/set/data/gemini_auth_key":
data = "GEMINI_DUMMY_KEY" data = "GEMINI_DUMMY_KEY"
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/openai_model": case "/set/data/selected_openai_model":
self.config_dict["openai_model_list"], _ = self.main.handleRequest("/get/data/openai_model_list", None) self.config_dict["openai_model_list"], _ = self.main.handleRequest("/get/data/selectable_openai_model_list", None)
model_list = self.config_dict.get("openai_model_list", []) model_list = self.config_dict.get("openai_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/openai_auth_key": case "/set/data/openai_auth_key":
data = "OPENAI_DUMMY_KEY" data = "OPENAI_DUMMY_KEY"
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/lmstudio_model": case "/set/data/selected_lmstudio_model":
self.config_dict["lmstudio_model_list"], _ = self.main.handleRequest("/get/data/lmstudio_model_list", None) self.config_dict["lmstudio_model_list"], _ = self.main.handleRequest("/get/data/selectable_lmstudio_model_list", None)
model_list = self.config_dict.get("lmstudio_model_list", []) model_list = self.config_dict.get("lmstudio_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/lmstudio_url": case "/set/data/lmstudio_url":
@@ -273,8 +273,8 @@ class TestMainloop():
"http://invalid_host:9999/v1", "http://invalid_host:9999/v1",
]) ])
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/ollama_model": case "/set/data/selected_ollama_model":
self.config_dict["ollama_model_list"], _ = self.main.handleRequest("/get/data/ollama_model_list", None) self.config_dict["ollama_model_list"], _ = self.main.handleRequest("/get/data/selectable_ollama_model_list", None)
model_list = self.config_dict.get("ollama_model_list", []) model_list = self.config_dict.get("ollama_model_list", [])
data = random.choice(model_list) if model_list else None data = random.choice(model_list) if model_list else None
case "/set/data/deepl_auth_key": case "/set/data/deepl_auth_key":
@@ -290,12 +290,12 @@ class TestMainloop():
data = "OPENAI_DUMMY_KEY" data = "OPENAI_DUMMY_KEY"
expected_status = [200, 400] expected_status = [200, 400]
case "/set/data/selected_mic_host": case "/set/data/selected_mic_host":
self.config_dict["mic_host_list"], _ = self.main.handleRequest("/get/data/mic_host_list", None) self.config_dict["selectable_mic_host_list"], _ = self.main.handleRequest("/get/data/selectable_mic_host_list", None)
mic_host_list = self.config_dict.get("mic_host_list", None) mic_host_list = self.config_dict.get("selectable_mic_host_list", None)
data = random.choice(mic_host_list) data = random.choice(mic_host_list)
case "/set/data/selected_mic_device": case "/set/data/selected_mic_device":
self.config_dict["mic_device_list"], _ = self.main.handleRequest("/get/data/mic_device_list", None) self.config_dict["selectable_mic_device_list"], _ = self.main.handleRequest("/get/data/selectable_mic_device_list", None)
mic_device_list = self.config_dict.get("mic_device_list", None) mic_device_list = self.config_dict.get("selectable_mic_device_list", None)
data = random.choice(mic_device_list) data = random.choice(mic_device_list)
case "/set/data/mic_threshold": case "/set/data/mic_threshold":
data = random.randint(-1000, 3000) data = random.randint(-1000, 3000)
@@ -348,8 +348,8 @@ class TestMainloop():
] ]
) )
case "/set/data/selected_speaker_device": case "/set/data/selected_speaker_device":
self.config_dict["speaker_device_list"], _ = self.main.handleRequest("/get/data/speaker_device_list", None) self.config_dict["selectable_speaker_device_list"], _ = self.main.handleRequest("/get/data/selectable_speaker_device_list", None)
speaker_device_list = self.config_dict.get("speaker_device_list", None) speaker_device_list = self.config_dict.get("selectable_speaker_device_list", None)
data = random.choice(speaker_device_list) data = random.choice(speaker_device_list)
case "/set/data/speaker_threshold": case "/set/data/speaker_threshold":
data = random.randint(-1000, 5000) data = random.randint(-1000, 5000)
@@ -383,7 +383,7 @@ class TestMainloop():
data = random.uniform(-5, 0) data = random.uniform(-5, 0)
case "/set/data/speaker_no_speech_prob": case "/set/data/speaker_no_speech_prob":
data = random.uniform(0, 1) data = random.uniform(0, 1)
case "/set/data/whisper_weight_type": case "/set/data/selected_whisper_weight_type":
self.config_dict["selectable_whisper_weight_type_dict"], _ = self.main.handleRequest("/get/data/selectable_whisper_weight_type_dict", None) self.config_dict["selectable_whisper_weight_type_dict"], _ = self.main.handleRequest("/get/data/selectable_whisper_weight_type_dict", None)
selectable_whisper_weight_type_dict = self.config_dict.get("selectable_whisper_weight_type_dict", None) selectable_whisper_weight_type_dict = self.config_dict.get("selectable_whisper_weight_type_dict", None)
data = random.choice([key for key, value in selectable_whisper_weight_type_dict.items() if value is True]) data = random.choice([key for key, value in selectable_whisper_weight_type_dict.items() if value is True])
@@ -647,7 +647,7 @@ class TestMainloop():
] ]
self.set_data_specific_endpoints = [ self.set_data_specific_endpoints = [
# "/set/data/ctranslate2_weight_type", # "/set/data/selected_ctranslate2_weight_type",
# "/set/data/websocket_host", # "/set/data/websocket_host",
# "/set/data/websocket_port", # "/set/data/websocket_port",
"/set/data/osc_ip_address", "/set/data/osc_ip_address",
@@ -766,7 +766,7 @@ class TestMainloop():
self.main.handleRequest("/set/data/selected_target_languages", data) self.main.handleRequest("/set/data/selected_target_languages", data)
# 翻訳エンジンを設定する(例: "CTranslate2" # 翻訳エンジンを設定する(例: "CTranslate2"
self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/translation_engines", None) self.config_dict["translation_engines"], _ = self.main.handleRequest("/get/data/selectable_translation_engines", None)
translation_engines = self.config_dict.get("translation_engines", None) translation_engines = self.config_dict.get("translation_engines", None)
for engine in translation_engines: for engine in translation_engines:
results[source_lang["language"]][target_lang["language"]][engine] = None results[source_lang["language"]][target_lang["language"]][engine] = None

View File

@@ -29,7 +29,7 @@ export const SETTINGS_ARRAY = [
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
add_endpoint_run_array: ["from_backend"], add_endpoint_run_array: ["from_backend"],
base_endpoint_name: "mic_host_list", base_endpoint_name: "selectable_mic_host_list",
response_transform: "arrayToObject", response_transform: "arrayToObject",
}, },
{ {
@@ -39,7 +39,7 @@ export const SETTINGS_ARRAY = [
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
add_endpoint_run_array: ["from_backend"], add_endpoint_run_array: ["from_backend"],
base_endpoint_name: "mic_device_list", base_endpoint_name: "selectable_mic_device_list",
response_transform: "arrayToObject", response_transform: "arrayToObject",
}, },
{ {
@@ -91,7 +91,7 @@ export const SETTINGS_ARRAY = [
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
add_endpoint_run_array: ["from_backend"], add_endpoint_run_array: ["from_backend"],
base_endpoint_name: "speaker_device_list", base_endpoint_name: "selectable_speaker_device_list",
response_transform: "arrayToObject", response_transform: "arrayToObject",
}, },
{ {
@@ -194,7 +194,7 @@ export const SETTINGS_ARRAY = [
default_value: "", default_value: "",
ui_template_id: "select", ui_template_id: "select",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "ctranslate2_weight_type", base_endpoint_name: "selected_ctranslate2_weight_type",
}, },
{ {
Category: "Translation", Category: "Translation",
@@ -210,7 +210,7 @@ export const SETTINGS_ARRAY = [
default_value: [], default_value: [],
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "translation_compute_device_list", base_endpoint_name: "selectable_translation_compute_device_list",
response_transform: "transformToIndexedArray", response_transform: "transformToIndexedArray",
}, },
{ {
@@ -312,7 +312,7 @@ export const SETTINGS_ARRAY = [
default_value: "", default_value: "",
ui_template_id: "select", ui_template_id: "select",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "whisper_weight_type", base_endpoint_name: "selected_whisper_weight_type",
}, },
{ {
Category: "Transcription", Category: "Transcription",
@@ -328,7 +328,7 @@ export const SETTINGS_ARRAY = [
default_value: [], default_value: [],
ui_template_id: "list", ui_template_id: "list",
logics_template_id: "get_set", logics_template_id: "get_set",
base_endpoint_name: "transcription_compute_device_list", base_endpoint_name: "selectable_transcription_compute_device_list",
response_transform: "transformToIndexedArray", response_transform: "transformToIndexedArray",
}, },
{ {

View File

@@ -107,7 +107,7 @@ export const useLanguageSettings = () => {
const getTranslationEngines = () => { const getTranslationEngines = () => {
pendingTranslationEngines(); pendingTranslationEngines();
asyncStdoutToPython("/get/data/translation_engines"); asyncStdoutToPython("/get/data/selectable_translation_engines");
}; };
const updateTranslatorAvailability = (payload) => { const updateTranslatorAvailability = (payload) => {

View File

@@ -74,7 +74,7 @@ export const STATIC_ROUTE_META_LIST = [
{ endpoint: "/get/data/selected_target_languages", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTargetLanguages" }, { endpoint: "/get/data/selected_target_languages", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTargetLanguages" },
{ endpoint: "/set/data/selected_target_languages", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTargetLanguages" }, { endpoint: "/set/data/selected_target_languages", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTargetLanguages" },
{ endpoint: "/get/data/translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateTranslatorAvailability" }, { endpoint: "/get/data/selectable_translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateTranslatorAvailability" },
{ endpoint: "/run/translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateTranslatorAvailability" }, { endpoint: "/run/translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateTranslatorAvailability" },
{ endpoint: "/get/data/selected_translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTranslationEngines" }, { endpoint: "/get/data/selected_translation_engines", ns: main, hook_name: "useLanguageSettings", method_name: "updateSelectedTranslationEngines" },
@@ -102,7 +102,7 @@ export const STATIC_ROUTE_META_LIST = [
{ endpoint: "/set/data/plugins_status", ns: configs, hook_name: "usePlugins", method_name: "setSuccessSavedPluginsStatus" }, { endpoint: "/set/data/plugins_status", ns: configs, hook_name: "usePlugins", method_name: "setSuccessSavedPluginsStatus" },
// // Not Implemented Yet... // // Not Implemented Yet...
{ endpoint: "/get/data/transcription_engines", ns: null, hook_name: null, method_name: null }, // Not implemented on UI yet. (if ai_models has not been detected, this will be blank array[]. if the ai_models are ok but just network has not connected, it'l be only ["Whisper"]) { endpoint: "/get/data/selectable_transcription_engines", ns: null, hook_name: null, method_name: null }, // Not implemented on UI yet. (if ai_models has not been detected, this will be blank array[]. if the ai_models are ok but just network has not connected, it'l be only ["Whisper"])
]; ];
export const useReceiveRoutes = () => { export const useReceiveRoutes = () => {