Refactor translation settings and prompts
- Updated paths for translation settings in backend.spec and backend_cuda.spec to reflect new directory structure. - Renamed loadPromptConfig to loadTranslatePromptConfig in translation utility files for consistency. - Created new YAML files for translation prompts (gemini, groq, lmstudio, ollama, openai, openrouter, plamo) with standardized system prompts. - Added languages.yml file to define language mappings for various translation backends.
This commit is contained in:
1 parent
07bcf041b5
commit
9e88cff889
19 files changed
+40
-40
No files matched your search
+2
-2
@@ -7,8 +7,8 @@ a = Analysis(
|
|||||||
binaries=[],
|
binaries=[],
|
||||||
datas=[
|
datas=[
|
||||||
('./../src-python/models/overlay/fonts', 'fonts/'),
|
('./../src-python/models/overlay/fonts', 'fonts/'),
|
||||||
('./../src-python/models/translation/prompt', 'prompt/'),
|
('./../src-python/models/translation/translation_settings/prompt', 'translation_settings/prompt/'),
|
||||||
('./../src-python/models/translation/languages', 'languages/'),
|
('./../src-python/models/translation/translation_settings/languages', 'translation_settings/languages/'),
|
||||||
('./../.venv/Lib/site-packages/zeroconf', 'zeroconf/'),
|
('./../.venv/Lib/site-packages/zeroconf', 'zeroconf/'),
|
||||||
('./../.venv/Lib/site-packages/openvr', 'openvr/'),
|
('./../.venv/Lib/site-packages/openvr', 'openvr/'),
|
||||||
('./../.venv/Lib/site-packages/faster_whisper', 'faster_whisper/'),
|
('./../.venv/Lib/site-packages/faster_whisper', 'faster_whisper/'),
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ a = Analysis(
|
|||||||
binaries=[],
|
binaries=[],
|
||||||
datas=[
|
datas=[
|
||||||
('./../src-python/models/overlay/fonts', 'fonts/'),
|
('./../src-python/models/overlay/fonts', 'fonts/'),
|
||||||
('./../src-python/models/translation/prompt', 'prompt/'),
|
('./../src-python/models/translation/translation_settings/prompt', 'prompt/'),
|
||||||
('./../src-python/models/translation/languages', 'languages/'),
|
('./../src-python/models/translation/translation_settings/languages', 'languages/'),
|
||||||
('./../.venv_cuda/Lib/site-packages/zeroconf', 'zeroconf/'),
|
('./../.venv_cuda/Lib/site-packages/zeroconf', 'zeroconf/'),
|
||||||
('./../.venv_cuda/Lib/site-packages/openvr', 'openvr/'),
|
('./../.venv_cuda/Lib/site-packages/openvr', 'openvr/'),
|
||||||
('./../.venv_cuda/Lib/site-packages/faster_whisper', 'faster_whisper/'),
|
('./../.venv_cuda/Lib/site-packages/faster_whisper', 'faster_whisper/'),
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ from langchain_google_genai import ChatGoogleGenerativeAI
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
from .translation_languages import translation_lang
|
from .translation_languages import translation_lang
|
||||||
from .translation_utils import loadPromptConfig
|
from .translation_utils import loadTranslatePromptConfig
|
||||||
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_languages import translation_lang
|
||||||
from translation_utils import loadPromptConfig
|
from translation_utils import loadTranslatePromptConfig
|
||||||
|
|
||||||
logger = logging.getLogger("langchain_google_genai")
|
logger = logging.getLogger("langchain_google_genai")
|
||||||
logger.setLevel(logging.ERROR)
|
logger.setLevel(logging.ERROR)
|
||||||
@@ -57,7 +57,7 @@ class GeminiClient:
|
|||||||
self.model = None
|
self.model = None
|
||||||
|
|
||||||
# プロンプト設定をYAMLファイルから読み込む
|
# プロンプト設定をYAMLファイルから読み込む
|
||||||
prompt_config = loadPromptConfig(root_path, "translation_gemini.yml")
|
prompt_config = loadTranslatePromptConfig(root_path, "translation_gemini.yml")
|
||||||
self.supported_languages = list(translation_lang["Gemini_API"]["source"].keys())
|
self.supported_languages = list(translation_lang["Gemini_API"]["source"].keys())
|
||||||
self.prompt_template = prompt_config["system_prompt"]
|
self.prompt_template = prompt_config["system_prompt"]
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ from pydantic import SecretStr
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
from .translation_languages import translation_lang
|
from .translation_languages import translation_lang
|
||||||
from .translation_utils import loadPromptConfig
|
from .translation_utils import loadTranslatePromptConfig
|
||||||
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, loadTranslationLanguages
|
from translation_languages import translation_lang, loadTranslationLanguages
|
||||||
from translation_utils import loadPromptConfig
|
from translation_utils import loadTranslatePromptConfig
|
||||||
translation_lang = loadTranslationLanguages(path=".", force=True)
|
translation_lang = loadTranslationLanguages(path=".", force=True)
|
||||||
|
|
||||||
def _authentication_check(api_key: str) -> bool:
|
def _authentication_check(api_key: str) -> bool:
|
||||||
@@ -73,7 +73,7 @@ class GroqClient:
|
|||||||
self.model = None
|
self.model = None
|
||||||
self.base_url = "https://api.groq.com/openai/v1"
|
self.base_url = "https://api.groq.com/openai/v1"
|
||||||
|
|
||||||
prompt_config = loadPromptConfig(root_path, "translation_groq.yml")
|
prompt_config = loadTranslatePromptConfig(root_path, "translation_groq.yml")
|
||||||
self.supported_languages = list(translation_lang["Groq_API"]["source"].keys())
|
self.supported_languages = list(translation_lang["Groq_API"]["source"].keys())
|
||||||
self.prompt_template = prompt_config["system_prompt"]
|
self.prompt_template = prompt_config["system_prompt"]
|
||||||
|
|
||||||
|
|||||||
@@ -41,14 +41,14 @@ def _load_languages(path: str, filename: str) -> str:
|
|||||||
Returns:
|
Returns:
|
||||||
Absolute path to the resource file
|
Absolute path to the resource file
|
||||||
"""
|
"""
|
||||||
if os.path.exists(os.path.join(path, "_internal", "languages", "languages.yml")):
|
if os.path.exists(os.path.join(path, "_internal", "translation_settings", "languages", filename)):
|
||||||
languages_path = os.path.join(path, "_internal", "languages", "languages.yml")
|
languages_path = os.path.join(path, "_internal", "translation_settings", "languages", filename)
|
||||||
elif os.path.exists(os.path.join(os.path.dirname(os.path.abspath(__file__)), "models", "translation", "languages", "languages.yml")):
|
elif os.path.exists(os.path.join(os.path.dirname(os.path.abspath(__file__)), "models", "translation", "translation_settings", "languages", filename)):
|
||||||
languages_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "models", "translation", "languages", "languages.yml")
|
languages_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "models", "translation", "translation_settings", "languages", filename)
|
||||||
elif os.path.exists(os.path.join(os.path.dirname(os.path.abspath(__file__)), "languages", "languages.yml")):
|
elif os.path.exists(os.path.join(os.path.dirname(os.path.abspath(__file__)), "translation_settings", "languages", filename)):
|
||||||
languages_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "languages", "languages.yml")
|
languages_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "translation_settings", "languages", filename)
|
||||||
else:
|
else:
|
||||||
raise FileNotFoundError(f"Prompt file not found: {filename}")
|
raise FileNotFoundError(f"Languages file not found: {filename}")
|
||||||
with open(languages_path, "r", encoding="utf-8") as f:
|
with open(languages_path, "r", encoding="utf-8") as f:
|
||||||
return yaml.safe_load(f)
|
return yaml.safe_load(f)
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ def loadTranslationLanguages(path: str, force: bool = False) -> Dict[str, Any]:
|
|||||||
if _loaded and not force:
|
if _loaded and not force:
|
||||||
return translation_lang
|
return translation_lang
|
||||||
|
|
||||||
data = _load_languages(path, "languages/languages.yml")
|
data = _load_languages(path, "languages.yml")
|
||||||
|
|
||||||
if not isinstance(data, dict):
|
if not isinstance(data, dict):
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ import requests
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
from .translation_languages import translation_lang
|
from .translation_languages import translation_lang
|
||||||
from .translation_utils import loadPromptConfig
|
from .translation_utils import loadTranslatePromptConfig
|
||||||
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.abspath(__file__)))
|
sys.path.append(os_path.dirname(os_path.abspath(__file__)))
|
||||||
from translation_languages import translation_lang, loadTranslationLanguages
|
from translation_languages import translation_lang, loadTranslationLanguages
|
||||||
from translation_utils import loadPromptConfig
|
from translation_utils import loadTranslatePromptConfig
|
||||||
translation_lang = loadTranslationLanguages(path=".", force=True)
|
translation_lang = loadTranslationLanguages(path=".", force=True)
|
||||||
|
|
||||||
def _authentication_check(base_url: str | None = None) -> bool:
|
def _authentication_check(base_url: str | None = None) -> bool:
|
||||||
@@ -50,7 +50,7 @@ class LMStudioClient:
|
|||||||
self.model = None
|
self.model = None
|
||||||
self.base_url = base_url # None の場合は公式エンドポイント
|
self.base_url = base_url # None の場合は公式エンドポイント
|
||||||
|
|
||||||
prompt_config = loadPromptConfig(root_path, "translation_lmstudio.yml")
|
prompt_config = loadTranslatePromptConfig(root_path, "translation_lmstudio.yml")
|
||||||
self.supported_languages = list(translation_lang["LMStudio"]["source"].keys())
|
self.supported_languages = list(translation_lang["LMStudio"]["source"].keys())
|
||||||
self.prompt_template = prompt_config["system_prompt"]
|
self.prompt_template = prompt_config["system_prompt"]
|
||||||
|
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ from langchain_ollama import ChatOllama
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
from .translation_languages import translation_lang
|
from .translation_languages import translation_lang
|
||||||
from .translation_utils import loadPromptConfig
|
from .translation_utils import loadTranslatePromptConfig
|
||||||
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.abspath(__file__)))
|
sys.path.append(os_path.dirname(os_path.abspath(__file__)))
|
||||||
from translation_languages import translation_lang, loadTranslationLanguages
|
from translation_languages import translation_lang, loadTranslationLanguages
|
||||||
from translation_utils import loadPromptConfig
|
from translation_utils import loadTranslatePromptConfig
|
||||||
translation_lang = loadTranslationLanguages(path=".", force=True)
|
translation_lang = loadTranslationLanguages(path=".", force=True)
|
||||||
|
|
||||||
def _authentication_check(base_url: str | None = None) -> bool:
|
def _authentication_check(base_url: str | None = None) -> bool:
|
||||||
@@ -48,7 +48,7 @@ class OllamaClient:
|
|||||||
self.model = None
|
self.model = None
|
||||||
self.base_url = "http://localhost:11434"
|
self.base_url = "http://localhost:11434"
|
||||||
|
|
||||||
prompt_config = loadPromptConfig(root_path, "translation_ollama.yml")
|
prompt_config = loadTranslatePromptConfig(root_path, "translation_ollama.yml")
|
||||||
self.supported_languages = list(translation_lang["Ollama"]["source"].keys())
|
self.supported_languages = list(translation_lang["Ollama"]["source"].keys())
|
||||||
self.prompt_template = prompt_config["system_prompt"]
|
self.prompt_template = prompt_config["system_prompt"]
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ from pydantic import SecretStr
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
from .translation_languages import translation_lang
|
from .translation_languages import translation_lang
|
||||||
from .translation_utils import loadPromptConfig
|
from .translation_utils import loadTranslatePromptConfig
|
||||||
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, loadTranslationLanguages
|
from translation_languages import translation_lang, loadTranslationLanguages
|
||||||
from translation_utils import loadPromptConfig
|
from translation_utils import loadTranslatePromptConfig
|
||||||
translation_lang = loadTranslationLanguages(path=".", force=True)
|
translation_lang = loadTranslationLanguages(path=".", force=True)
|
||||||
|
|
||||||
def _authentication_check(api_key: str, base_url: str | None = None) -> bool:
|
def _authentication_check(api_key: str, base_url: str | None = None) -> bool:
|
||||||
@@ -69,7 +69,7 @@ class OpenAIClient:
|
|||||||
self.model = None
|
self.model = None
|
||||||
self.base_url = base_url # None の場合は公式エンドポイント
|
self.base_url = base_url # None の場合は公式エンドポイント
|
||||||
|
|
||||||
prompt_config = loadPromptConfig(root_path, "translation_openai.yml")
|
prompt_config = loadTranslatePromptConfig(root_path, "translation_openai.yml")
|
||||||
self.supported_languages = list(translation_lang["OpenAI_API"]["source"].keys())
|
self.supported_languages = list(translation_lang["OpenAI_API"]["source"].keys())
|
||||||
self.prompt_template = prompt_config["system_prompt"]
|
self.prompt_template = prompt_config["system_prompt"]
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ from pydantic import SecretStr
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
from .translation_languages import translation_lang
|
from .translation_languages import translation_lang
|
||||||
from .translation_utils import loadPromptConfig
|
from .translation_utils import loadTranslatePromptConfig
|
||||||
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, loadTranslationLanguages
|
from translation_languages import translation_lang, loadTranslationLanguages
|
||||||
from translation_utils import loadPromptConfig
|
from translation_utils import loadTranslatePromptConfig
|
||||||
translation_lang = loadTranslationLanguages(path=".", force=True)
|
translation_lang = loadTranslationLanguages(path=".", force=True)
|
||||||
|
|
||||||
def _authentication_check(api_key: str) -> bool:
|
def _authentication_check(api_key: str) -> bool:
|
||||||
@@ -73,7 +73,7 @@ class OpenRouterClient:
|
|||||||
self.model = None
|
self.model = None
|
||||||
self.base_url = "https://openrouter.ai/api/v1"
|
self.base_url = "https://openrouter.ai/api/v1"
|
||||||
|
|
||||||
prompt_config = loadPromptConfig(root_path, "translation_openrouter.yml")
|
prompt_config = loadTranslatePromptConfig(root_path, "translation_openrouter.yml")
|
||||||
self.supported_languages = list(translation_lang["OpenRouter_API"]["source"].keys())
|
self.supported_languages = list(translation_lang["OpenRouter_API"]["source"].keys())
|
||||||
self.prompt_template = prompt_config["system_prompt"]
|
self.prompt_template = prompt_config["system_prompt"]
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ from pydantic import SecretStr
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
from .translation_languages import translation_lang
|
from .translation_languages import translation_lang
|
||||||
from .translation_utils import loadPromptConfig
|
from .translation_utils import loadTranslatePromptConfig
|
||||||
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, loadTranslationLanguages
|
from translation_languages import translation_lang, loadTranslationLanguages
|
||||||
from translation_utils import loadPromptConfig
|
from translation_utils import loadTranslatePromptConfig
|
||||||
translation_lang = loadTranslationLanguages(path=".", force=True)
|
translation_lang = loadTranslationLanguages(path=".", force=True)
|
||||||
|
|
||||||
BASE_URL = "https://api.platform.preferredai.jp/v1"
|
BASE_URL = "https://api.platform.preferredai.jp/v1"
|
||||||
@@ -44,7 +44,7 @@ class PlamoClient:
|
|||||||
self.base_url = BASE_URL
|
self.base_url = BASE_URL
|
||||||
self.model = None
|
self.model = None
|
||||||
|
|
||||||
prompt_config = loadPromptConfig(root_path, "translation_plamo.yml")
|
prompt_config = loadTranslatePromptConfig(root_path, "translation_plamo.yml")
|
||||||
self.supported_languages = list(translation_lang["Plamo_API"]["source"].keys())
|
self.supported_languages = list(translation_lang["Plamo_API"]["source"].keys())
|
||||||
self.prompt_template = prompt_config["system_prompt"]
|
self.prompt_template = prompt_config["system_prompt"]
|
||||||
|
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -101,16 +101,16 @@ def downloadCTranslate2Tokenizer(path: str, weight_type: str = "m2m100_418M-ct2-
|
|||||||
tokenizer_path = os_path.join("./weights", "ctranslate2", directory_name, "tokenizer")
|
tokenizer_path = os_path.join("./weights", "ctranslate2", directory_name, "tokenizer")
|
||||||
transformers.AutoTokenizer.from_pretrained(tokenizer, cache_dir=tokenizer_path)
|
transformers.AutoTokenizer.from_pretrained(tokenizer, cache_dir=tokenizer_path)
|
||||||
|
|
||||||
def loadPromptConfig(root_path: str | None = None, prompt_filename: str | None = None) -> dict:
|
def loadTranslatePromptConfig(root_path: str | None = None, prompt_filename: str | None = None) -> dict:
|
||||||
# PyInstaller 展開後
|
# PyInstaller 展開後
|
||||||
if root_path and prompt_filename and os_path.exists(os_path.join(root_path, "_internal", "prompt", prompt_filename)):
|
if root_path and prompt_filename and os_path.exists(os_path.join(root_path, "_internal", "translation_settings", "prompt", prompt_filename)):
|
||||||
prompt_path = os_path.join(root_path, "_internal", "prompt", prompt_filename)
|
prompt_path = os_path.join(root_path, "_internal", "translation_settings", "prompt", prompt_filename)
|
||||||
# src-python 直下実行
|
# src-python 直下実行
|
||||||
elif prompt_filename and os_path.exists(os_path.join(os_path.dirname(__file__), "models", "translation", "prompt", prompt_filename)):
|
elif prompt_filename and os_path.exists(os_path.join(os_path.dirname(__file__), "models", "translation", "translation_settings", "prompt", prompt_filename)):
|
||||||
prompt_path = os_path.join(os_path.dirname(__file__), "models", "translation", "prompt", prompt_filename)
|
prompt_path = os_path.join(os_path.dirname(__file__), "models", "translation", "translation_settings", "prompt", prompt_filename)
|
||||||
# translation フォルダ直下実行
|
# translation フォルダ直下実行
|
||||||
elif prompt_filename and os_path.exists(os_path.join(os_path.dirname(__file__), "prompt", prompt_filename)):
|
elif prompt_filename and os_path.exists(os_path.join(os_path.dirname(__file__), "translation_settings", "prompt", prompt_filename)):
|
||||||
prompt_path = os_path.join(os_path.dirname(__file__), "prompt", prompt_filename)
|
prompt_path = os_path.join(os_path.dirname(__file__), "translation_settings", "prompt", prompt_filename)
|
||||||
else:
|
else:
|
||||||
raise FileNotFoundError(f"Prompt file not found: {prompt_filename}")
|
raise FileNotFoundError(f"Prompt file not found: {prompt_filename}")
|
||||||
with open(prompt_path, "r", encoding="utf-8") as f:
|
with open(prompt_path, "r", encoding="utf-8") as f:
|
||||||
|
|||||||
Reference in new issue
Block a user