From 7ec7d830e9a8de271c6b40cd45a9e05c18fc9826 Mon Sep 17 00:00:00 2001 From: MusicTsai Date: Sun, 2 Mar 2025 23:23:23 +0800 Subject: [PATCH] Update for openrouter --- ...openrouter-deepseek-chat (standard mode).json | 16 ++++++++++++++++ .../WordBridge/lib/typo_corrector.py | 11 ++++++----- .../WordBridge/llm_setting/openrouter.json | 6 ++++++ 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 addon/globalPlugins/WordBridge/corrector_config/openrouter-deepseek-chat (standard mode).json create mode 100644 addon/globalPlugins/WordBridge/llm_setting/openrouter.json diff --git a/addon/globalPlugins/WordBridge/corrector_config/openrouter-deepseek-chat (standard mode).json b/addon/globalPlugins/WordBridge/corrector_config/openrouter-deepseek-chat (standard mode).json new file mode 100644 index 0000000..b723992 --- /dev/null +++ b/addon/globalPlugins/WordBridge/corrector_config/openrouter-deepseek-chat (standard mode).json @@ -0,0 +1,16 @@ +{ + "model": { + "model_name": "deepseek-chat", + "provider": "DeepSeek", + "llm_access_method": "personal_api_key", + "require_secret_key": true, + "template_name": "Standard_v1.json", + "optional_guidance_enable": { + "keep_non_chinese_char": false, + "no_explanation": true + } + }, + "typo_corrector": { + "typo_correction_mode": "Standard Mode" + } +} \ No newline at end of file diff --git a/addon/globalPlugins/WordBridge/lib/typo_corrector.py b/addon/globalPlugins/WordBridge/lib/typo_corrector.py index 90ee625..5866234 100644 --- a/addon/globalPlugins/WordBridge/lib/typo_corrector.py +++ b/addon/globalPlugins/WordBridge/lib/typo_corrector.py @@ -32,6 +32,7 @@ def _(s): API_URLS = { "openai": "https://api.openai.com/v1/chat/completions", + "openrouter": "https://openrouter.ai/api/v1/chat/completions", "baidu": "https://qianfan.baidubce.com/v2/chat/completions", "deepseek": "https://api.deepseek.com/chat/completions", "ollama": "http://localhost:11434/api/chat", @@ -81,7 +82,7 @@ def __init__( "no_explanation": False, "keep_non_chinese_char": True, } - elif self.provider == "baidu" or self.provider == "deepseek": + elif self.provider in ["baidu", "deepseek", "openrouter"]: self.optional_guidance_enable = { "no_explanation": True, "keep_non_chinese_char": False, @@ -122,7 +123,7 @@ def correct_text(self, text: str, batch_mode: bool = True, fake_corrected_text: if fake_corrected_text is not None: return fake_corrected_text, strings_diff(text, fake_corrected_text) - if self.provider in ["openai", "baidu", "deepseek"]: + if self.provider in ["openai", "baidu", "deepseek", "openrouter"]: parse = urlparse(API_URLS[self.provider]) base_url = f"{parse.scheme}://{parse.netloc}" self._try_internet_connection(base_url) @@ -388,7 +389,7 @@ def _get_request_data(self, messages, input_info): "messages": messages, **setting, } - elif self.provider in ["ollama", "deepseek"]: + elif self.provider in ["ollama", "deepseek", "openrouter"]: data = { "model": self.model, "messages": messages, @@ -404,7 +405,7 @@ def _get_request_data(self, messages, input_info): def _get_headers(self): headers = {'Content-Type': 'application/json'} - if self.provider in ["openai", "baidu", "deepseek"]: + if self.provider in ["openai", "baidu", "deepseek", "openrouter"]: headers = {"Authorization": f"Bearer {self.credential['api_key']}"} elif self.provider not in API_URLS.keys(): raise NotImplementedError("Subclass must implement this method") @@ -510,7 +511,7 @@ def _handle_baidu_errors(self, response_json): raise Exception(_("An error occurred, error code = ") + response_json["error_msg"]) def _parse_response(self, response: str) -> str: - if self.provider in ["openai", "baidu", "deepseek"]: + if self.provider in ["openai", "baidu", "deepseek", "openrouter"]: sentence = response["choices"][0]["message"]["content"] elif self.provider == "ollama": sentence = response["message"]["content"] diff --git a/addon/globalPlugins/WordBridge/llm_setting/openrouter.json b/addon/globalPlugins/WordBridge/llm_setting/openrouter.json new file mode 100644 index 0000000..72b370e --- /dev/null +++ b/addon/globalPlugins/WordBridge/llm_setting/openrouter.json @@ -0,0 +1,6 @@ +{ + "max_tokens": 4096, + "temperature": 0.0, + "top_p": 0.0, + "stop": [ " =>" ] +} \ No newline at end of file