This commit is contained in:
xunbu
2025-12-30 19:47:21 +08:00
parent 80d689b704
commit d6e990f1da

View File

@@ -59,6 +59,7 @@ from docutranslate.agents.glossary_agent import GlossaryAgentConfig
from docutranslate.core.schemas import TranslatePayload, MarkdownWorkflowParams, TextWorkflowParams, JsonWorkflowParams, \ from docutranslate.core.schemas import TranslatePayload, MarkdownWorkflowParams, TextWorkflowParams, JsonWorkflowParams, \
XlsxWorkflowParams, DocxWorkflowParams, SrtWorkflowParams, EpubWorkflowParams, HtmlWorkflowParams, \ XlsxWorkflowParams, DocxWorkflowParams, SrtWorkflowParams, EpubWorkflowParams, HtmlWorkflowParams, \
AssWorkflowParams, PPTXWorkflowParams AssWorkflowParams, PPTXWorkflowParams
from docutranslate.exporter.md.types import ConvertEngineType
# --- 核心代码 Imports --- # --- 核心代码 Imports ---
from docutranslate.global_values.conditional_import import DOCLING_EXIST from docutranslate.global_values.conditional_import import DOCLING_EXIST
from docutranslate.workflow.ass_workflow import AssWorkflow, AssWorkflowConfig from docutranslate.workflow.ass_workflow import AssWorkflow, AssWorkflowConfig
@@ -329,11 +330,6 @@ ProviderType: TypeAlias = Literal[
] | str ] | str
# --- PPTX WORKFLOW PARAMS END ---
# 3. 使用可辨识联合类型Discriminated Union将它们组合起来
# 4. 创建最终的请求体模型 # 4. 创建最终的请求体模型
class TranslateServiceRequest(BaseModel): class TranslateServiceRequest(BaseModel):
@@ -996,7 +992,7 @@ async def _perform_translation(
"force_json", "force_json",
"rpm", "rpm",
"tpm", "tpm",
"provider", # Added provider "provider",
}, },
exclude_none=True, exclude_none=True,
) )
@@ -2187,7 +2183,7 @@ async def service_get_app_version():
@service_router.post( @service_router.post(
"/flat-translate", "/flat-translate",
summary="直接翻译 (全参数展开/同步等待)", summary="translate(sync)",
description=""" description="""
上传文件并直接等待翻译完成,无需轮询状态。 上传文件并直接等待翻译完成,无需轮询状态。
所有参数均已扁平化展开,直接通过 Form 表单提交。 所有参数均已扁平化展开,直接通过 Form 表单提交。
@@ -2223,13 +2219,13 @@ async def service_flat_translate(
separator: str = Form("\n", description="追加/前置时的分隔符"), separator: str = Form("\n", description="追加/前置时的分隔符"),
segment_mode: str = Form("line", description="[Txt专用] 分段模式: line(按行), paragraph(按段), none(全文)"), segment_mode: str = Form("line", description="[Txt专用] 分段模式: line(按行), paragraph(按段), none(全文)"),
translate_regions: Optional[List[str]] = Form(None, description="[Xlsx专用] 翻译区域列表, 如 'Sheet1!A1:B10'"), translate_regions: Optional[List[str]] = Form(None, description="[Xlsx专用] 翻译区域列表, 如 'Sheet1!A1:B10'"),
convert_engine: str = Form("", description="[PDF/MD] 解析引擎: mineru, docling, identity (默认根据后缀自动选择)"), convert_engine: Optional[ConvertEngineType] = Form("mineru", description="[PDF/MD] 解析引擎: mineru, docling, identity,mineru_deploy"),
mineru_token: Optional[str] = Form("", description="[MinerU Cloud] API Token"), mineru_token: Optional[str] = Form("", description="[MinerU Cloud] API Token"),
model_version: str = Form("vlm", description="[MinerU Cloud] 模型版本: vlm, pipeline"), model_version: str = Form("vlm", description="[MinerU Cloud] 模型版本: vlm, pipeline"),
formula_ocr: bool = Form(True, description="[PDF] 是否启用公式识别"), formula_ocr: bool = Form(True, description="[PDF] 是否启用公式识别"),
code_ocr: bool = Form(True, description="[Docling] 是否启用代码块识别"), code_ocr: bool = Form(True, description="[Docling] 是否启用代码块识别"),
mineru_deploy_base_url: str = Form("http://127.0.0.1:8000", description="[MinerU Local] 服务地址"), mineru_deploy_base_url: str = Form("http://127.0.0.1:8000", description="[MinerU Local] 服务地址"),
mineru_deploy_backend: str = Form("pipeline", description="[MinerU Local] 后端类型"), mineru_deploy_backend: str = Form("VLM", description="[MinerU Local] 后端类型"),
mineru_deploy_formula_enable: bool = Form(True, description="[MinerU Local] 是否启用公式"), mineru_deploy_formula_enable: bool = Form(True, description="[MinerU Local] 是否启用公式"),
mineru_deploy_start_page_id: int = Form(0, description="[MinerU Local] 起始页码"), mineru_deploy_start_page_id: int = Form(0, description="[MinerU Local] 起始页码"),
mineru_deploy_end_page_id: int = Form(99999, description="[MinerU Local] 结束页码"), mineru_deploy_end_page_id: int = Form(99999, description="[MinerU Local] 结束页码"),