From 65eaf514efb027d0976d5055afec3b8e5326b63f Mon Sep 17 00:00:00 2001 From: xunbu Date: Sun, 11 Jan 2026 12:08:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8D=E8=83=BD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=94=A8=E6=88=B7=E6=9C=AF=E8=AF=AD=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../translator/ai_translator/base.py | 36 +++++++++++++------ 更新日志.txt | 4 +-- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/docutranslate/translator/ai_translator/base.py b/docutranslate/translator/ai_translator/base.py index daaa0bf..1789dda 100644 --- a/docutranslate/translator/ai_translator/base.py +++ b/docutranslate/translator/ai_translator/base.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 from abc import abstractmethod from dataclasses import dataclass, field -from typing import TypeVar +from typing import TypeVar, Dict from docutranslate.agents.agent import AgentConfig from docutranslate.agents.glossary_agent import GlossaryAgentConfig, GlossaryAgent @@ -24,6 +24,7 @@ class AiTranslatorConfig(TranslatorConfig, AgentConfig): custom_prompt: str | None = None chunk_size: int = 3000 glossary: Glossary | None = None + glossary_dict: Dict[str, str] | None = None glossary_generate_enable: bool = False glossary_agent_config: GlossaryAgentConfig | None = None skip_translate: bool = False # 当skip_translate为False时base_url、model_id为必填项 @@ -40,25 +41,38 @@ class AiTranslator(Translator[T]): def __init__(self, config: AiTranslatorConfig): super().__init__(config=config) self.skip_translate = config.skip_translate - self.glossary = config.glossary if config.glossary else Glossary() + + + if config.glossary: + self.glossary = config.glossary + elif config.glossary_dict: + self.glossary = Glossary(glossary_dict=config.glossary_dict) + else: + self.glossary = Glossary() + self.glossary_agent = None if not self.skip_translate and ( config.base_url is None or config.api_key is None or config.model_id is None ): - raise ValueError( - "skip_translate不为false时,base_url、api_key、model_id为必填项" - ) + raise ValueError("skip_translate不为false时,base_url、api_key、model_id为必填项") if config.glossary_generate_enable: if config.glossary_agent_config: self.glossary_agent = GlossaryAgent(config.glossary_agent_config) else: glossary_agent_config = GlossaryAgentConfig( - to_lang=config.to_lang, base_url=config.base_url, - api_key=config.api_key, model_id=config.model_id, temperature=config.temperature, - thinking=config.thinking, concurrent=config.concurrent, timeout=config.timeout, - logger=self.logger, retry=config.retry, - system_proxy_enable=config.system_proxy_enable, force_json=config.force_json, + to_lang=config.to_lang, + base_url=config.base_url, + api_key=config.api_key, + model_id=config.model_id, + temperature=config.temperature, + thinking=config.thinking, + concurrent=config.concurrent, + timeout=config.timeout, + logger=self.logger, + retry=config.retry, + system_proxy_enable=config.system_proxy_enable, + force_json=config.force_json, rpm=config.rpm, tpm=config.tpm, provider=config.provider, @@ -71,4 +85,4 @@ class AiTranslator(Translator[T]): @abstractmethod async def translate_async(self, document: T) -> Document: - ... + ... \ No newline at end of file diff --git a/更新日志.txt b/更新日志.txt index 4a6e35f..f008e6f 100644 --- a/更新日志.txt +++ b/更新日志.txt @@ -1,13 +1,13 @@ 更新日志 ---------------- -v1.6.1版 2025.1.9 +v1.6.1版 2025.1.10 特性 - 支持mineruv2.7.1版本 - pdf生成的html带有目录 - 自动生成术语表不覆盖用户术语表,最终下载的是合并术语表 优化 -- 其它优化 - 移除tiktoken依赖 +- 其它优化 ---------------- v1.6.0版 2025.12.31 特性