From 018278782679d37fca07de00bd8befd6cde99e03 Mon Sep 17 00:00:00 2001 From: xunbu Date: Mon, 8 Dec 2025 23:55:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=E6=9C=80=E6=96=B0=E7=9A=84mi?= =?UTF-8?q?neru-api=EF=BC=8C=E5=85=81=E8=AE=B8=E8=AE=BE=E7=BD=AElang=5Flis?= =?UTF-8?q?t=E5=92=8Cserver-url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docutranslate/app.py | 17 ++++++++++++++++- .../converter/x2md/converter_mineru_deploy.py | 6 +++--- docutranslate/static/i18nData.json | 8 +++++++- docutranslate/static/index.html | 2 +- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/docutranslate/app.py b/docutranslate/app.py index c4d65e4..6801104 100644 --- a/docutranslate/app.py +++ b/docutranslate/app.py @@ -460,7 +460,14 @@ class MarkdownWorkflowParams(BaseWorkflowParams): "http://127.0.0.1:8000", description="[仅当 convert_engine='mineru_deploy'] 本地部署的 MinerU 服务地址。", ) - mineru_deploy_backend: Literal["pipeline", "transformers", "mlx-engine", "vllm-engine", "vllm-async-engine"] = Field( + mineru_deploy_backend: Literal[ + "pipeline", + "vlm-transformers", + "vlm-mlx-engine", + "vlm-vllm-async-engine", + "vlm-lmdeploy-engine", + "vlm-http-client" + ] = Field( "pipeline", description="[仅当 convert_engine='mineru_deploy'] 本地部署的 MinerU 服务使用的后端。", ) @@ -474,6 +481,12 @@ class MarkdownWorkflowParams(BaseWorkflowParams): mineru_deploy_end_page_id: int = Field( 99999, description="[仅当 convert_engine='mineru_deploy'] 结束解析页面。" ) + mineru_deploy_lang_list: Optional[List[str]] = Field( + None, description="[仅当 convert_engine='mineru_deploy' 且 backend='pipeline'] 语言列表。" + ) + mineru_deploy_server_url: Optional[str] = Field( + None, description="[仅当 convert_engine='mineru_deploy' 且 backend='vlm-http-client'] Server URL." + ) @model_validator(mode="after") def check_engine_params(self): @@ -1005,6 +1018,8 @@ async def _perform_translation( formula_enable=payload.mineru_deploy_formula_enable, start_page_id=payload.mineru_deploy_start_page_id, end_page_id=payload.mineru_deploy_end_page_id, + lang_list=payload.mineru_deploy_lang_list, + server_url=payload.mineru_deploy_server_url, ) elif payload.convert_engine == "docling" and DOCLING_EXIST: converter_config = ConverterDoclingConfig( diff --git a/docutranslate/converter/x2md/converter_mineru_deploy.py b/docutranslate/converter/x2md/converter_mineru_deploy.py index ae04aea..407505a 100644 --- a/docutranslate/converter/x2md/converter_mineru_deploy.py +++ b/docutranslate/converter/x2md/converter_mineru_deploy.py @@ -17,12 +17,12 @@ from docutranslate.utils.markdown_utils import embed_inline_image_from_zip class ConverterMineruDeployConfig(X2MarkdownConverterConfig): base_url: str = "http://127.0.0.1:8000" output_dir: str = "./output" # 覆盖默认值 ./output - # lang_list: list[str] | None = None - backend: Literal["pipeline", "transformers", "mlx-engine", "vllm-engine", "vllm-async-engine"] = "pipeline" + lang_list: list[Literal["ch", "ch_server", "ch_lite", "en", "korean", "japan", "chinese_cht", "ta", "te", "ka", "th", "el", "latin", "arabic", "east_slavic", "cyrillic", "devanagari"]] | None = None + backend: Literal["pipeline", "vlm-transformers", "vlm-mlx-engine", "vlm-vllm-async-engine", "vlm-lmdeploy-engine","vlm-http-client"] = "pipeline" # parse_method: str = "auto" formula_enable: bool = True # table_enable: bool = True - # server_url: str | None = None + server_url: str | None = None #(Adapted only for vlm-http-client backend)openai compatible server url, e.g., http://127.0.0.1:30000 # return_md: bool = True # return_middle_json: bool = True # return_model_output: bool = False diff --git a/docutranslate/static/i18nData.json b/docutranslate/static/i18nData.json index 4e1ee00..bf8a0f3 100644 --- a/docutranslate/static/i18nData.json +++ b/docutranslate/static/i18nData.json @@ -71,6 +71,9 @@ "mineruDeployBackendMlx": "MLX Engine", "mineruDeployBackendVllm": "VLLM Engine", "mineruDeployBackendVllmAsync": "VLLM Async Engine", + "mineruDeployLangListLabel": "语言列表 (Pipeline模式)", + "mineruDeployServerUrlLabel": "Server URL", + "mineruDeployServerUrlPlaceholder": "例如: http://127.0.0.1:30000", "mineruDeployStartPageLabel": "起始页面", "mineruDeployEndPageLabel": "结束页面", "mineruDeployFormulaEnableLabel": "启用公式解析", @@ -163,7 +166,7 @@ "engineOptionDocling": "Docling", "engineOptionMineruDeploy": "Mineru部署服务", "engineOptionMineru_deploy": "Mineru部署服务", - "apiHrefInfo302ai": "👈由此链接注册可享受1刀免费额度", + "apiHrefInfo302ai": "👈由此链接注册可享受1美元免费额度", "glossaryEmpty": "术语表为空", "status_selectFileFirst": "请先选择文件!", "status_fillRequired": "请填写所有必填项!", @@ -265,6 +268,9 @@ "mineruDeployBackendMlx": "MLX Engine", "mineruDeployBackendVllm": "VLLM Engine", "mineruDeployBackendVllmAsync": "VLLM Async Engine", + "mineruDeployLangListLabel": "Language List (Pipeline Mode)", + "mineruDeployServerUrlLabel": "Server URL", + "mineruDeployServerUrlPlaceholder": "e.g., http://127.0.0.1:30000", "mineruDeployStartPageLabel": "Start Page", "mineruDeployEndPageLabel": "End Page", "mineruDeployFormulaEnableLabel": "Enable Formula Parsing", diff --git a/docutranslate/static/index.html b/docutranslate/static/index.html index 1daaa80..87a4bb9 100644 --- a/docutranslate/static/index.html +++ b/docutranslate/static/index.html @@ -1 +1 @@ - DocuTranslate - 交互式文档翻译

DocuTranslate

{{ t(currentWorkflowConfig.insertHelpKey || 'insertModeHelpTxt') }}
{{ t('segmentModeHelp') }}

{{ t('parsingEngineHelp') }}
{{ t('modelVersionHelp') }}

{{ t('glossaryHelp') }}

GitHub主页(欢迎star❤):
https://github.com/xunbu/docutranslate

交流QQ群: 1047781902

version:{{ version ? 'v' + version : '' }}

{{ t('taskListTitle') }}

LOGO

{{ t('noTaskPlaceholder') }}

{{ t('taskCardIdLabel') }}: {{ task.backendId || t('taskCardIdPlaceholder') }}

{{ t('taskCardFileDrop') }}

{{ t('taskCardFileSelected') }}

{{ t('taskCardFilenameLabel') }} {{ task.fileName || task.file.name }}
{{ t('taskCardLogLabel') }}
{{ task.statusMessage || t('taskCardStatusWaiting') }}
{{ previewMode === 'bilingual' ? t('preview_bilingual') : t('preview_translatedOnly') }}
{{ t('previewOriginal') }}
{{ t('previewTranslated') }}
\ No newline at end of file + DocuTranslate - 交互式文档翻译

DocuTranslate

{{ t(currentWorkflowConfig.insertHelpKey || 'insertModeHelpTxt') }}
{{ t('segmentModeHelp') }}

{{ t('parsingEngineHelp') }}
{{ t('modelVersionHelp') }}

{{ t('glossaryHelp') }}

GitHub主页(欢迎star❤):
https://github.com/xunbu/docutranslate

交流QQ群: 1047781902

version:{{ version ? 'v' + version : '' }}

{{ t('taskListTitle') }}

LOGO

{{ t('noTaskPlaceholder') }}

{{ t('taskCardIdLabel') }}: {{ task.backendId || t('taskCardIdPlaceholder') }}

{{ t('taskCardFileDrop') }}

{{ t('taskCardFileSelected') }}

{{ t('taskCardFilenameLabel') }} {{ task.fileName || task.file.name }}
{{ t('taskCardLogLabel') }}
{{ task.statusMessage || t('taskCardStatusWaiting') }}
{{ previewMode === 'bilingual' ? t('preview_bilingual') : t('preview_translatedOnly') }}
{{ t('previewOriginal') }}
{{ t('previewTranslated') }}
\ No newline at end of file