diff --git a/src-python/config.py b/src-python/config.py index 165919b2..e1683534 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -1402,7 +1402,7 @@ class Config: self._SELECTED_PLAMO_MODEL = None self._SELECTED_GEMINI_MODEL = None self._SELECTED_OPENAI_MODEL = None - self._LMSTUDIO_URL = "http://127.0.0.1:1234" + self._LMSTUDIO_URL = "http://127.0.0.1:1234/v1" self._SELECTED_LMSTUDIO_MODEL = None self._SELECTED_OLLAMA_MODEL = None self._SELECTED_TRANSLATION_COMPUTE_TYPE = "auto" diff --git a/src-python/controller.py b/src-python/controller.py index 55968566..136f807c 100644 --- a/src-python/controller.py +++ b/src-python/controller.py @@ -1941,8 +1941,8 @@ class Controller: } return response - def checkTranslatorLOllamaConnection(self, *args, **kwargs) -> dict: - printLog("Check Translator Lollama Connection") + def checkTranslatorOllamaConnection(self, *args, **kwargs) -> dict: + printLog("Check Translator Ollama Connection") try: result = model.authenticationTranslatorOllama() if result is True: @@ -1951,7 +1951,7 @@ class Controller: response = { "status":400, "result":{ - "message":"Cannot connect to Lollama server", + "message":"Cannot connect to ollama server", "data": False } } @@ -1966,15 +1966,15 @@ class Controller: } return response - def getTranslatorLOllamaModelList(self, *args, **kwargs) -> dict: + def getTranslatorOllamaModelList(self, *args, **kwargs) -> dict: model_list = model.getTranslatorOllamaModelList() return {"status":200, "result": model_list} - def getTranslatorLOllamaModel(self, *args, **kwargs) -> dict: + def getTranslatorOllamaModel(self, *args, **kwargs) -> dict: return {"status":200, "result":config.SELECTED_OLLAMA_MODEL} - def setTranslatorLOllamaModel(self, data, *args, **kwargs) -> dict: - printLog("Set Translator Lollama Model", data) + def setTranslatorOllamaModel(self, data, *args, **kwargs) -> dict: + printLog("Set Translator Ollama Model", data) try: data = str(data) result = model.setTranslatorOllamaModel(model=data) @@ -1985,7 +1985,7 @@ class Controller: response = { "status":400, "result":{ - "message":"Lollama model is not valid", + "message":"ollama model is not valid", "data": config.SELECTED_OLLAMA_MODEL } } diff --git a/src-python/mainloop.py b/src-python/mainloop.py index e5dbc735..4e77104b 100644 --- a/src-python/mainloop.py +++ b/src-python/mainloop.py @@ -57,6 +57,10 @@ run_mapping = { "selected_gemini_model":"/run/selected_gemini_model", "selectable_openai_model_list":"/run/selectable_openai_model_list", "selected_openai_model":"/run/selected_openai_model", + "selectable_lmstudio_model_list":"/run/selectable_lmstudio_model_list", + "selected_lmstudio_model":"/run/selected_lmstudio_model", + "selectable_ollama_model_list":"/run/selectable_ollama_model_list", + "selected_ollama_model":"/run/selected_ollama_model", "mic_host_list":"/run/mic_host_list", "mic_device_list":"/run/mic_device_list", @@ -202,6 +206,17 @@ mapping = { "/set/data/openai_auth_key": {"status": True, "variable":controller.setOpenAIAuthKey}, "/delete/data/openai_auth_key": {"status": True, "variable":controller.delOpenAIAuthKey}, + "/get/data/lmstudio_model_list": {"status": True, "variable":controller.getTranslatorLStudioModelList}, + "/get/data/lmstudio_model": {"status": True, "variable":controller.getTranslatorLMStudioModel}, + "/set/data/lmstudio_model": {"status": True, "variable":controller.setTranslatorLMStudioModel}, + "/get/data/lmstudio_url": {"status": True, "variable":controller.getTranslatorLMStudioURL}, + "/set/data/lmstudio_url": {"status": True, "variable":controller.setTranslatorLMStudioURL}, + + "/get/data/ollama_connection": {"status": True, "variable":controller.checkTranslatorOllamaConnection}, + "/get/data/ollama_model_list": {"status": True, "variable":controller.getTranslatorOllamaModelList}, + "/get/data/ollama_model": {"status": True, "variable":controller.getTranslatorOllamaModel}, + "/set/data/ollama_model": {"status": True, "variable":controller.setTranslatorOllamaModel}, + "/get/data/convert_message_to_romaji": {"status": True, "variable":controller.getConvertMessageToRomaji}, "/set/enable/convert_message_to_romaji": {"status": True, "variable":controller.setEnableConvertMessageToRomaji}, "/set/disable/convert_message_to_romaji": {"status": True, "variable":controller.setDisableConvertMessageToRomaji}, diff --git a/src-python/models/translation/prompt/translation_gemini.yml b/src-python/models/translation/prompt/translation_gemini.yml index 8c7b56fc..8dbe4927 100644 --- a/src-python/models/translation/prompt/translation_gemini.yml +++ b/src-python/models/translation/prompt/translation_gemini.yml @@ -2,47 +2,6 @@ system_prompt: | You are a helpful translation assistant. Supported languages: {supported_languages} - - Translate the user provided text from {input_lang} to {output_lang}. - Return ONLY the translated text. Do not add quotes or extra commentary. -supported_languages: | - Arabic - Bengali - Bulgarian - Simplified Chinese - Traditional Chinese - Croatian - Czech - Danish - Dutch - English - Estonian - Finnish - French - German - Greek - Hebrew - Hindi - Hungarian - Indonesian - Italian - Japanese - Korean - Latvian - Lithuanian - Norwegian - Polish - Portuguese - Romanian - Russian - Serbian - Slovak - Slovenian - Spanish - Swahili - Swedish - Thai - Turkish - Ukrainian - Vietnamese + Translate the user provided text from {input_lang} to {output_lang}. + Return ONLY the translated text. Do not add quotes or extra commentary. \ No newline at end of file diff --git a/src-python/models/translation/prompt/translation_lmstudio.yml b/src-python/models/translation/prompt/translation_lmstudio.yml index 8c7b56fc..8dbe4927 100644 --- a/src-python/models/translation/prompt/translation_lmstudio.yml +++ b/src-python/models/translation/prompt/translation_lmstudio.yml @@ -2,47 +2,6 @@ system_prompt: | You are a helpful translation assistant. Supported languages: {supported_languages} - - Translate the user provided text from {input_lang} to {output_lang}. - Return ONLY the translated text. Do not add quotes or extra commentary. -supported_languages: | - Arabic - Bengali - Bulgarian - Simplified Chinese - Traditional Chinese - Croatian - Czech - Danish - Dutch - English - Estonian - Finnish - French - German - Greek - Hebrew - Hindi - Hungarian - Indonesian - Italian - Japanese - Korean - Latvian - Lithuanian - Norwegian - Polish - Portuguese - Romanian - Russian - Serbian - Slovak - Slovenian - Spanish - Swahili - Swedish - Thai - Turkish - Ukrainian - Vietnamese + Translate the user provided text from {input_lang} to {output_lang}. + Return ONLY the translated text. Do not add quotes or extra commentary. \ No newline at end of file diff --git a/src-python/models/translation/prompt/translation_ollama.yml b/src-python/models/translation/prompt/translation_ollama.yml index 8c7b56fc..8dbe4927 100644 --- a/src-python/models/translation/prompt/translation_ollama.yml +++ b/src-python/models/translation/prompt/translation_ollama.yml @@ -2,47 +2,6 @@ system_prompt: | You are a helpful translation assistant. Supported languages: {supported_languages} - - Translate the user provided text from {input_lang} to {output_lang}. - Return ONLY the translated text. Do not add quotes or extra commentary. -supported_languages: | - Arabic - Bengali - Bulgarian - Simplified Chinese - Traditional Chinese - Croatian - Czech - Danish - Dutch - English - Estonian - Finnish - French - German - Greek - Hebrew - Hindi - Hungarian - Indonesian - Italian - Japanese - Korean - Latvian - Lithuanian - Norwegian - Polish - Portuguese - Romanian - Russian - Serbian - Slovak - Slovenian - Spanish - Swahili - Swedish - Thai - Turkish - Ukrainian - Vietnamese + Translate the user provided text from {input_lang} to {output_lang}. + Return ONLY the translated text. Do not add quotes or extra commentary. \ No newline at end of file diff --git a/src-python/models/translation/prompt/translation_openai.yml b/src-python/models/translation/prompt/translation_openai.yml index 802d0b1d..8dbe4927 100644 --- a/src-python/models/translation/prompt/translation_openai.yml +++ b/src-python/models/translation/prompt/translation_openai.yml @@ -4,46 +4,4 @@ system_prompt: | {supported_languages} Translate the user provided text from {input_lang} to {output_lang}. - Return ONLY the translated text. Do not add quotes or extra commentary. - -supported_languages: | - Arabic - Bengali - Bulgarian - Catalan - Chinese Simplified - Chinese Traditional - Croatian - Czech - Danish - Dutch - English - Estonian - Finnish - French - German - Greek - Hebrew - Hindi - Hungarian - Indonesian - Italian - Japanese - Korean - Latvian - Lithuanian - Norwegian - Polish - Portuguese - Romanian - Russian - Serbian - Slovak - Slovenian - Spanish - Swahili - Swedish - Thai - Turkish - Ukrainian - Vietnamese + Return ONLY the translated text. Do not add quotes or extra commentary. \ No newline at end of file diff --git a/src-python/models/translation/prompt/translation_plamo.yml b/src-python/models/translation/prompt/translation_plamo.yml index cdb0b478..c0afe533 100644 --- a/src-python/models/translation/prompt/translation_plamo.yml +++ b/src-python/models/translation/prompt/translation_plamo.yml @@ -2,38 +2,6 @@ system_prompt: | You are a translation assistant that uses the `plamo-translate` tool. Translate the following text.Supported languages include: {supported_languages} - - Translate the following text from {input_lang} to {output_lang}. - output only the translated text without any additional commentary. -supported_languages: | - English - Japanese - Korean - French - German - Spanish - Portuguese - Russian - Italian - Dutch - Polish - Turkish - Arabic - Hindi - Thai - Vietnamese - Indonesian - Malay - Filipino - Swedish - Finnish - Danish - Norwegian - Romanian - Czech - Hungarian - Greek - Hebrew - Simplified Chinese - Traditional Chinese + Translate the following text from {input_lang} to {output_lang}. + output only the translated text without any additional commentary. \ No newline at end of file diff --git a/src-python/models/translation/translation_gemini.py b/src-python/models/translation/translation_gemini.py index fd20c941..1c8a0161 100644 --- a/src-python/models/translation/translation_gemini.py +++ b/src-python/models/translation/translation_gemini.py @@ -3,12 +3,14 @@ from google import genai from langchain_google_genai import ChatGoogleGenerativeAI try: + from .translation_languages import translation_lang from .translation_utils import loadPromptConfig except Exception: import sys from os import path as os_path print(os_path.dirname(os_path.dirname(os_path.dirname(os_path.abspath(__file__))))) sys.path.append(os_path.dirname(os_path.dirname(os_path.dirname(os_path.abspath(__file__))))) + from translation_languages import translation_lang from translation_utils import loadPromptConfig logger = logging.getLogger("langchain_google_genai") @@ -56,7 +58,7 @@ class GeminiClient: # プロンプト設定をYAMLファイルから読み込む prompt_config = loadPromptConfig(root_path, "translation_gemini.yml") - self.supported_languages = prompt_config["supported_languages"] + self.supported_languages = list(translation_lang["Gemini_API"]["source"].keys()) self.prompt_template = prompt_config["system_prompt"] self.gemini_llm = None diff --git a/src-python/models/translation/translation_lmstudio.py b/src-python/models/translation/translation_lmstudio.py index 1827d887..34319075 100644 --- a/src-python/models/translation/translation_lmstudio.py +++ b/src-python/models/translation/translation_lmstudio.py @@ -3,11 +3,13 @@ from langchain_openai import ChatOpenAI from pydantic import SecretStr try: + from .translation_languages import translation_lang from .translation_utils import loadPromptConfig except Exception: import sys from os import path as os_path sys.path.append(os_path.dirname(os_path.dirname(os_path.dirname(os_path.abspath(__file__))))) + from translation_languages import translation_lang from translation_utils import loadPromptConfig def _authentication_check(api_key: str, base_url: str | None = None) -> bool: @@ -43,7 +45,7 @@ class LMStudioClient: self.base_url = base_url # None の場合は公式エンドポイント prompt_config = loadPromptConfig(root_path, "translation_lmstudio.yml") - self.supported_languages = prompt_config["supported_languages"] + self.supported_languages = list(translation_lang["LMStudio"]["source"].keys()) self.prompt_template = prompt_config["system_prompt"] self.openai_llm = None diff --git a/src-python/models/translation/translation_ollama.py b/src-python/models/translation/translation_ollama.py index 7e5b5468..2d56aaee 100644 --- a/src-python/models/translation/translation_ollama.py +++ b/src-python/models/translation/translation_ollama.py @@ -2,11 +2,13 @@ import requests from langchain_ollama import ChatOllama try: + from .translation_languages import translation_lang from .translation_utils import loadPromptConfig except Exception: import sys from os import path as os_path sys.path.append(os_path.dirname(os_path.dirname(os_path.dirname(os_path.abspath(__file__))))) + from translation_languages import translation_lang from translation_utils import loadPromptConfig def _authentication_check(base_url: str | None = None) -> bool: @@ -43,7 +45,7 @@ class OllamaClient: self.base_url = "http://localhost:11434" prompt_config = loadPromptConfig(root_path, "translation_ollama.yml") - self.supported_languages = prompt_config["supported_languages"] + self.supported_languages = list(translation_lang["Ollama"]["source"].keys()) self.prompt_template = prompt_config["system_prompt"] self.openai_llm = None diff --git a/src-python/models/translation/translation_openai.py b/src-python/models/translation/translation_openai.py index 2741702e..b7115e51 100644 --- a/src-python/models/translation/translation_openai.py +++ b/src-python/models/translation/translation_openai.py @@ -3,11 +3,13 @@ from langchain_openai import ChatOpenAI from pydantic import SecretStr try: + from .translation_languages import translation_lang from .translation_utils import loadPromptConfig except Exception: import sys from os import path as os_path sys.path.append(os_path.dirname(os_path.dirname(os_path.dirname(os_path.abspath(__file__))))) + from translation_languages import translation_lang from translation_utils import loadPromptConfig def _authentication_check(api_key: str, base_url: str | None = None) -> bool: @@ -67,7 +69,7 @@ class OpenAIClient: self.base_url = base_url # None の場合は公式エンドポイント prompt_config = loadPromptConfig(root_path, "translation_openai.yml") - self.supported_languages = prompt_config["supported_languages"] + self.supported_languages = list(translation_lang["OpenAI_API"]["source"].keys()) self.prompt_template = prompt_config["system_prompt"] self.openai_llm = None diff --git a/src-python/models/translation/translation_plamo.py b/src-python/models/translation/translation_plamo.py index 112a962b..ea54fd61 100644 --- a/src-python/models/translation/translation_plamo.py +++ b/src-python/models/translation/translation_plamo.py @@ -3,11 +3,13 @@ from langchain_openai import ChatOpenAI from pydantic import SecretStr try: + from .translation_languages import translation_lang from .translation_utils import loadPromptConfig except Exception: import sys from os import path as os_path sys.path.append(os_path.dirname(os_path.dirname(os_path.dirname(os_path.abspath(__file__))))) + from translation_languages import translation_lang from translation_utils import loadPromptConfig BASE_URL = "https://api.platform.preferredai.jp/v1" @@ -42,7 +44,7 @@ class PlamoClient: self.model = None prompt_config = loadPromptConfig(root_path, "translation_plamo.yml") - self.supported_languages = prompt_config["supported_languages"] + self.supported_languages = list(translation_lang["Plamo_API"]["source"].keys()) self.prompt_template = prompt_config["system_prompt"] self.plamo_llm = None