各翻訳クライアントで supported_languages を YAML から translation_lang に移行・参照するよう修正、プロンプトYAMLの重複した supported_languages ブロックを削除、LMStudio のデフォルト URL を /v1 に変更、mainloop に LMStudio/Ollama のモデル関連エンドポイントと run_mapping を追加、Controller 内の Ollama 表記のtypo(Lollama→Ollama)を修正してメソッド名・ログ文を更新、各クライアントで translation_languages のフォールバック import を追加

This commit is contained in:
misyaguziya
2025-10-19 22:07:58 +09:00
parent 6596743b6b
commit e71bf17e13
13 changed files with 48 additions and 220 deletions

View File

@@ -1402,7 +1402,7 @@ class Config:
self._SELECTED_PLAMO_MODEL = None self._SELECTED_PLAMO_MODEL = None
self._SELECTED_GEMINI_MODEL = None self._SELECTED_GEMINI_MODEL = None
self._SELECTED_OPENAI_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_LMSTUDIO_MODEL = None
self._SELECTED_OLLAMA_MODEL = None self._SELECTED_OLLAMA_MODEL = None
self._SELECTED_TRANSLATION_COMPUTE_TYPE = "auto" self._SELECTED_TRANSLATION_COMPUTE_TYPE = "auto"

View File

@@ -1941,8 +1941,8 @@ class Controller:
} }
return response return response
def checkTranslatorLOllamaConnection(self, *args, **kwargs) -> dict: def checkTranslatorOllamaConnection(self, *args, **kwargs) -> dict:
printLog("Check Translator Lollama Connection") printLog("Check Translator Ollama Connection")
try: try:
result = model.authenticationTranslatorOllama() result = model.authenticationTranslatorOllama()
if result is True: if result is True:
@@ -1951,7 +1951,7 @@ class Controller:
response = { response = {
"status":400, "status":400,
"result":{ "result":{
"message":"Cannot connect to Lollama server", "message":"Cannot connect to ollama server",
"data": False "data": False
} }
} }
@@ -1966,15 +1966,15 @@ class Controller:
} }
return response return response
def getTranslatorLOllamaModelList(self, *args, **kwargs) -> dict: def getTranslatorOllamaModelList(self, *args, **kwargs) -> dict:
model_list = model.getTranslatorOllamaModelList() model_list = model.getTranslatorOllamaModelList()
return {"status":200, "result": model_list} 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} return {"status":200, "result":config.SELECTED_OLLAMA_MODEL}
def setTranslatorLOllamaModel(self, data, *args, **kwargs) -> dict: def setTranslatorOllamaModel(self, data, *args, **kwargs) -> dict:
printLog("Set Translator Lollama Model", data) printLog("Set Translator Ollama Model", data)
try: try:
data = str(data) data = str(data)
result = model.setTranslatorOllamaModel(model=data) result = model.setTranslatorOllamaModel(model=data)
@@ -1985,7 +1985,7 @@ class Controller:
response = { response = {
"status":400, "status":400,
"result":{ "result":{
"message":"Lollama model is not valid", "message":"ollama model is not valid",
"data": config.SELECTED_OLLAMA_MODEL "data": config.SELECTED_OLLAMA_MODEL
} }
} }

View File

@@ -57,6 +57,10 @@ run_mapping = {
"selected_gemini_model":"/run/selected_gemini_model", "selected_gemini_model":"/run/selected_gemini_model",
"selectable_openai_model_list":"/run/selectable_openai_model_list", "selectable_openai_model_list":"/run/selectable_openai_model_list",
"selected_openai_model":"/run/selected_openai_model", "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_host_list":"/run/mic_host_list",
"mic_device_list":"/run/mic_device_list", "mic_device_list":"/run/mic_device_list",
@@ -202,6 +206,17 @@ mapping = {
"/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},
"/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}, "/get/data/convert_message_to_romaji": {"status": True, "variable":controller.getConvertMessageToRomaji},
"/set/enable/convert_message_to_romaji": {"status": True, "variable":controller.setEnableConvertMessageToRomaji}, "/set/enable/convert_message_to_romaji": {"status": True, "variable":controller.setEnableConvertMessageToRomaji},
"/set/disable/convert_message_to_romaji": {"status": True, "variable":controller.setDisableConvertMessageToRomaji}, "/set/disable/convert_message_to_romaji": {"status": True, "variable":controller.setDisableConvertMessageToRomaji},

View File

@@ -5,44 +5,3 @@ system_prompt: |
Translate the user provided text from {input_lang} to {output_lang}. Translate the user provided text from {input_lang} to {output_lang}.
Return ONLY the translated text. Do not add quotes or extra commentary. 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

View File

@@ -5,44 +5,3 @@ system_prompt: |
Translate the user provided text from {input_lang} to {output_lang}. Translate the user provided text from {input_lang} to {output_lang}.
Return ONLY the translated text. Do not add quotes or extra commentary. 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

View File

@@ -5,44 +5,3 @@ system_prompt: |
Translate the user provided text from {input_lang} to {output_lang}. Translate the user provided text from {input_lang} to {output_lang}.
Return ONLY the translated text. Do not add quotes or extra commentary. 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

View File

@@ -5,45 +5,3 @@ system_prompt: |
Translate the user provided text from {input_lang} to {output_lang}. Translate the user provided text from {input_lang} to {output_lang}.
Return ONLY the translated text. Do not add quotes or extra commentary. 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

View File

@@ -5,35 +5,3 @@ system_prompt: |
Translate the following text from {input_lang} to {output_lang}. Translate the following text from {input_lang} to {output_lang}.
output only the translated text without any additional commentary. 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

View File

@@ -3,12 +3,14 @@ from google import genai
from langchain_google_genai import ChatGoogleGenerativeAI from langchain_google_genai import ChatGoogleGenerativeAI
try: try:
from .translation_languages import translation_lang
from .translation_utils import loadPromptConfig from .translation_utils import loadPromptConfig
except Exception: except Exception:
import sys import sys
from os import path as os_path from os import path as os_path
print(os_path.dirname(os_path.dirname(os_path.dirname(os_path.abspath(__file__))))) 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__))))) 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 from translation_utils import loadPromptConfig
logger = logging.getLogger("langchain_google_genai") logger = logging.getLogger("langchain_google_genai")
@@ -56,7 +58,7 @@ class GeminiClient:
# プロンプト設定をYAMLファイルから読み込む # プロンプト設定をYAMLファイルから読み込む
prompt_config = loadPromptConfig(root_path, "translation_gemini.yml") 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.prompt_template = prompt_config["system_prompt"]
self.gemini_llm = None self.gemini_llm = None

View File

@@ -3,11 +3,13 @@ from langchain_openai import ChatOpenAI
from pydantic import SecretStr from pydantic import SecretStr
try: try:
from .translation_languages import translation_lang
from .translation_utils import loadPromptConfig from .translation_utils import loadPromptConfig
except Exception: except Exception:
import sys import sys
from os import path as os_path from os import path as os_path
sys.path.append(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 from translation_utils import loadPromptConfig
def _authentication_check(api_key: str, base_url: str | None = None) -> bool: def _authentication_check(api_key: str, base_url: str | None = None) -> bool:
@@ -43,7 +45,7 @@ class LMStudioClient:
self.base_url = base_url # None の場合は公式エンドポイント self.base_url = base_url # None の場合は公式エンドポイント
prompt_config = loadPromptConfig(root_path, "translation_lmstudio.yml") 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.prompt_template = prompt_config["system_prompt"]
self.openai_llm = None self.openai_llm = None

View File

@@ -2,11 +2,13 @@ import requests
from langchain_ollama import ChatOllama from langchain_ollama import ChatOllama
try: try:
from .translation_languages import translation_lang
from .translation_utils import loadPromptConfig from .translation_utils import loadPromptConfig
except Exception: except Exception:
import sys import sys
from os import path as os_path from os import path as os_path
sys.path.append(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 from translation_utils import loadPromptConfig
def _authentication_check(base_url: str | None = None) -> bool: def _authentication_check(base_url: str | None = None) -> bool:
@@ -43,7 +45,7 @@ class OllamaClient:
self.base_url = "http://localhost:11434" self.base_url = "http://localhost:11434"
prompt_config = loadPromptConfig(root_path, "translation_ollama.yml") 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.prompt_template = prompt_config["system_prompt"]
self.openai_llm = None self.openai_llm = None

View File

@@ -3,11 +3,13 @@ from langchain_openai import ChatOpenAI
from pydantic import SecretStr from pydantic import SecretStr
try: try:
from .translation_languages import translation_lang
from .translation_utils import loadPromptConfig from .translation_utils import loadPromptConfig
except Exception: except Exception:
import sys import sys
from os import path as os_path from os import path as os_path
sys.path.append(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 from translation_utils import loadPromptConfig
def _authentication_check(api_key: str, base_url: str | None = None) -> bool: def _authentication_check(api_key: str, base_url: str | None = None) -> bool:
@@ -67,7 +69,7 @@ class OpenAIClient:
self.base_url = base_url # None の場合は公式エンドポイント self.base_url = base_url # None の場合は公式エンドポイント
prompt_config = loadPromptConfig(root_path, "translation_openai.yml") 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.prompt_template = prompt_config["system_prompt"]
self.openai_llm = None self.openai_llm = None

View File

@@ -3,11 +3,13 @@ from langchain_openai import ChatOpenAI
from pydantic import SecretStr from pydantic import SecretStr
try: try:
from .translation_languages import translation_lang
from .translation_utils import loadPromptConfig from .translation_utils import loadPromptConfig
except Exception: except Exception:
import sys import sys
from os import path as os_path from os import path as os_path
sys.path.append(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 from translation_utils import loadPromptConfig
BASE_URL = "https://api.platform.preferredai.jp/v1" BASE_URL = "https://api.platform.preferredai.jp/v1"
@@ -42,7 +44,7 @@ class PlamoClient:
self.model = None self.model = None
prompt_config = loadPromptConfig(root_path, "translation_plamo.yml") 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.prompt_template = prompt_config["system_prompt"]
self.plamo_llm = None self.plamo_llm = None