diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 636e8b4..d300e84 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,6 +5,10 @@ + + + + - + diff --git a/README.md b/README.md index ee2ebda..2d1630c 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ from docutranslate import FileTranslater translater = FileTranslater(base_url="", # 默认的模型baseurl key="", # 默认的模型api-key model_id="", # 默认的模型id - chunksize=3500, # markdown分块长度(单位byte),分块越大效果越好,不建议超过8000 + chunksize=2000, # markdown分块长度(单位byte),分块越大效果越好(也越慢),不建议超过8000 max_concurrent=15, # 并发数,受到ai平台并发量限制,如果文章很长建议适当加大到20以上 docling_artifact=None, # 使用提前下载好的docling模型 timeout=2000, # 调用api的超时时间 diff --git a/docutranslate/agents/markdown_agent.py b/docutranslate/agents/markdown_agent.py index 227bc18..1e756e4 100644 --- a/docutranslate/agents/markdown_agent.py +++ b/docutranslate/agents/markdown_agent.py @@ -56,6 +56,7 @@ class MDTranslateAgent(Agent): 形如的占位符不要改变 code、latex和HTML只翻译说明文字,其余保持原文 公式必须表示为合法的latex公式,行内公式需被$正确包裹 +去掉异常字词 # 输出 翻译后的markdown纯文本(不是markdown代码块) # 示例 diff --git a/docutranslate/app.py b/docutranslate/app.py index a5869ae..c7f64fe 100644 --- a/docutranslate/app.py +++ b/docutranslate/app.py @@ -167,6 +167,46 @@ HTML_TEMPLATE = """ DocuTranslate
+ + +
+ +
+ +

点击此处选择文件,或将文件拖拽到这里

+
未选择文件
+
+
+ +
+
+ + +
+
+ +
+ + + +
+
+
API 配置
@@ -201,45 +241,6 @@ HTML_TEMPLATE = """
- - -
- -
- -

点击此处选择文件,或将文件拖拽到这里

-
未选择文件
-
-
- -
-
- - -
-
- -
- - - -
-
-
@@ -713,6 +714,7 @@ class QueueAndHistoryHandler(logging.Handler): def emit(self, record: logging.LogRecord): log_entry = self.format(record) + print(log_entry) self.history.append(log_entry) if len(self.history) > self.max_history: del self.history[:len(self.history) - self.max_history] @@ -732,15 +734,16 @@ class QueueAndHistoryHandler(logging.Handler): @app.on_event("startup") async def startup_event(): app.state.main_event_loop = asyncio.get_running_loop() + if translater_logger.hasHandlers(): + translater_logger.handlers.clear() queue_handler = QueueAndHistoryHandler(log_queue, log_history, MAX_LOG_HISTORY) queue_handler.setLevel(logging.INFO) queue_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) - if not any(isinstance(h, QueueAndHistoryHandler) for h in translater_logger.handlers): - translater_logger.addHandler(queue_handler) - translater_logger.propagate = False # Avoid duplicate logs if root logger also has handlers - translater_logger.setLevel(logging.INFO) # Ensure translater_logger itself is at INFO - translater_logger.info("应用启动完成,日志队列/历史处理器已配置。") + translater_logger.addHandler(queue_handler) + translater_logger.propagate = False # 非常重要,阻止日志向上传播到root logger + translater_logger.setLevel(logging.INFO) # 确保 translater_logger 本身的级别是 INFO + translater_logger.info("应用启动完成,日志队列/历史处理器已清除并重新配置。") # --- Background Task Logic --- async def _perform_translation(params: Dict[str, Any], file_contents: bytes, original_filename: str): diff --git a/pyproject.toml b/pyproject.toml index 8b55b7b..4b24111 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "docutranslate" -version = "0.2.7" +version = "0.2.8" description = "文件翻译工具" readme = "README.md" requires-python = ">=3.10"