[AI62-1] PDF 翻译-提交翻译任务

post
https://connect.zhihuiya.com/pdf-translation/translate
在体验中心中试用

通过 pdf 上传 PDF 文件,或通过 pdf_url 提供 PDF 下载链接(支持签名链接),两者必须且只能提供一个。output_format=pdf 输出保留版面的译文 PDF(默认),output_format=markdown 输出 Markdown 文本文件(.md)。任务接受后返回 HTTP 202。通过 status_url 查询状态;state 为 succeeded 后,访问 download_file 指向的结果接口获取所选格式的译文。 输入示例(文件上传,multipart/form-data): ```bash curl -X POST 'http://s-patsnaprd-pdf-translation-api.patsnaprd/translate' \ -H 'accept: application/json' \ -F 'pdf=@/path/to/sample.pdf;type=application/pdf' \ -F 'source_lang=zh' \ -F 'target_lang=en' \ -F 'pages=1' \ -F 'model_id=9' \ -F 'output_format=pdf' ``` 输入示例(PDF 链接,multipart/form-data): ```bash curl -X POST 'http://s-patsnaprd-pdf-translation-api.patsnaprd/translate' \ -H 'accept: application/json' \ -F 'pdf_url=https://storage.example.com/sample.pdf?signature=EXAMPLE' \ -F 'source_lang=zh' \ -F 'target_lang=en' \ -F 'pages=1' \ -F 'model_id=9' \ -F 'output_format=pdf' ``` 如需 Markdown 输出,将 output_format 改为 markdown;翻译全部页面时省略 pages。使用 pdf_url 时不传 pdf 字段。curl 使用 -F 自动生成带 boundary 的 multipart/form-data 请求头,无需手动设置 Content-Type。 成功响应示例(HTTP 202): ```json { "task_id": "0123456789abcdef0123456789abcdef", "taskId": "0123456789abcdef0123456789abcdef", "job_id": "0123456789abcdef0123456789abcdef", "state": "pending", "source_lang": "zh", "target_lang": "en", "lang": "zh2en", "model_id": "9", "output_format": "pdf", "total_pages": 2, "selected_pages": [ 1 ], "selected_page_count": 1, "skipped_pages": [ 2 ], "skipped_page_count": 1, "status_url": "http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef", "download_file": "http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef/result", "message": "任务已提交。请轮询 status_url,成功后访问 download_file 获取结果:PDF。" } ``` 请求参数清单(multipart/form-data): | 参数 | 类型 | 必填 | 示例 | | --- | --- | --- | --- | | pdf | file / string | 否;与 pdf_url 二选一 | sample.pdf | | pdf_url | string | 否;与 pdf 二选一 | https://storage.example.com/sample.pdf?signature=EXAMPLE | | source_lang | string | 否;建议显式传入 | zh | | target_lang | string | 否;建议显式传入 | en | | pages | string | 否;省略翻译全部页 | 1 | | model_id | string | 否;服务默认 9 | 9 | | output_format | string | 否;服务默认 pdf | pdf |

请求参数

此 API 接口支持的参数列表

名称类型示例描述
pdf
filesample.pdf
待翻译的 PDF 文件,或 HTTP(S) PDF 下载链接(含签名链接);与 pdf_url 必须且只能提供一个。文件上传使用 -F 'pdf=@/path/to/sample.pdf;type=application/pdf';也可使用 -F 'pdf=https://storage.example.com/sample.pdf?signature=EXAMPLE' 传链接。Swagger 2.0 无法在同一表单字段表达文件/字符串联合类型,此处保留 file 类型以支持文件选择。文件大小和整份文档页数上限由 output_format 对应的服务配置决定,超限返回 HTTP 413。 default 仅为文档平台导入时的示例兼容值,不是服务端默认值;文件名或签名链接占位符须替换后使用。
pdf_url
stringhttps://storage.example.com/sample.pdf?signature=EXAMPLE
待翻译 PDF 的 HTTP(S) 下载链接,支持带签名参数的链接,也支持公开可访问的 PDF 链接。链接须在服务获取源文件时有效且服务端可访问。与 pdf 必须且只能提供一个。 示例:"https://storage.example.com/sample.pdf?signature=EXAMPLE" default 仅为文档平台导入时的示例兼容值,不是服务端默认值;文件名或签名链接占位符须替换后使用。
source_lang
stringzh
源语言:zh 中文、en 英文、ja 日文。 示例:"zh" 当前测试环境 Swagger 将此字段标记为可选;示例显式传入源语言和目标语言,以明确翻译方向。 default 仅为文档平台导入时的示例兼容值,不是服务端默认值;文件名或签名链接占位符须替换后使用。
target_lang
stringen
目标语言:zh 中文、en 英文、ja 日文、de 德文、fr 法文、ko 韩文;必须与源语言不同。 示例:"en" 当前测试环境 Swagger 将此字段标记为可选;示例显式传入源语言和目标语言,以明确翻译方向。 default 仅为文档平台导入时的示例兼容值,不是服务端默认值;文件名或签名链接占位符须替换后使用。
pages
string1
选填,从 1 开始;支持 3,5,8、22-25 或组合。省略、空字符串或仅空白时翻译全部;重复或重叠页码去重。首次完全成功取结果按 selected_page_count 计量;PDF 输出中原样保留的未选页不计入。例如两页 PDF:pages=1 计 1 页,pages 为空计 2 页。 示例:"1" default 仅为文档平台导入时的示例兼容值,不是服务端默认值;文件名或签名链接占位符须替换后使用。
model_id
string9
布局模型:9 快速默认模式;25 更高精度模式。 示例:"9"
output_format
stringpdf
输出格式:pdf(默认)生成保留版面的译文 PDF;markdown 生成 Markdown 文本文件(.md)。两种格式均支持通过 pages 选页,按选中翻译的去重页数计量,采用相同的异步提交、状态查询和结果获取流程。结果接口传 response_format=url 获取签名链接,传 response_format=file 直接下载文件。 示例:"pdf" model_id=25 的分类 Markdown 按最多 8000 token 分段翻译。

响应结构

API 响应数据的结构说明

字段名类型示例描述
lang
stringzh2en
翻译方向。 示例:"zh2en"
state
必填
stringpending
任务已接受并等待处理,值为 pending。 示例:"pending"
job_id
string0123456789abcdef0123456789abcdef
task_id 的兼容别名。 示例:"0123456789abcdef0123456789abcdef"
taskId
string0123456789abcdef0123456789abcdef
task_id 的兼容别名。 示例:"0123456789abcdef0123456789abcdef"
message
string任务已提交。请轮询 status_url,成功后访问 download_file 获取结果:PDF。
当前阶段说明。 示例:"任务已提交。请轮询 status_url,成功后访问 download_file 获取结果:PDF。"
task_id
必填
string0123456789abcdef0123456789abcdef
任务 ID。 示例:"0123456789abcdef0123456789abcdef"
model_id
必填
string9
布局模型:9 快速模式,25 精准模式。 示例:"9"
status_url
必填
string<uri>http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef
任务状态查询地址。 示例:"http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef"
source_lang
stringzh
源语言。 示例:"zh"
target_lang
stringen
目标语言,不能与源语言相同。 示例:"en"
total_pages
必填
integer<int32>2
输入 PDF 的总页数,不是选中页数,也不是译文文件的页数。仅翻译整份 PDF 时,首次完全成功取结果的 X-Openapi-Amount 才等于该值。 示例:2
download_file
必填
string<uri>http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef/result
结果接口地址,本身不是 PDF 或 Markdown 签名链接。任务完成后以 response_format=url 访问该接口,响应 JSON 的 download_file 才是 PDF 或 Markdown 签名下载链接,有效期一周(7 天,604800 秒)。 示例:"http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef/result"
output_format
必填
stringpdf
输出文件格式。 示例:"pdf"
skipped_pages
array[ 2 ]
未选择的页面;PDF 输出中原样保留。 示例:[2]
selected_pages
array[ 1 ]
选中翻译的页码,从 1 开始。 示例:[1]
skipped_page_count
integer1
未选择的页数。 示例:1
selected_page_count
integer1
选中翻译的去重页数,作为首次完全成功获取结果的计量值;pages 为空或未传时等于 total_pages。 示例:1

成功响应示例

成功调用 API 的响应示例

JSON
{
  "lang": "zh2en",
  "state": "pending",
  "job_id": "0123456789abcdef0123456789abcdef",
  "status": true,
  "taskId": "0123456789abcdef0123456789abcdef",
  "message": "任务已提交。请轮询 status_url,成功后访问 download_file 获取结果:PDF。",
  "task_id": "0123456789abcdef0123456789abcdef",
  "model_id": "9",
  "error_code": 0,
  "status_url": "http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef",
  "source_lang": "zh",
  "target_lang": "en",
  "total_pages": 2,
  "download_file": "http://s-patsnaprd-pdf-translation-api.patsnaprd/tasks/0123456789abcdef0123456789abcdef/result",
  "output_format": "pdf",
  "skipped_pages": [
    2
  ],
  "selected_pages": [
    1
  ],
  "skipped_page_count": 1,
  "selected_page_count": 1
}

错误码

此接口可能返回的错误码列表

业务错误码

错误码描述
68300004请求参数异常!
68300005查询Api失败!
68300006解析基本存取错误!
68300007存在错误的请求!
68300008服务中断异常,请稍后再试!
68300010文件不符合上传规范!

平台错误码

错误码描述
67200000API整体限流错误!
67200001API整体限流错误!
67200002当前调用速率过快,超过当前配置限制QPS!
67200003申请token的key和secret传参不正确或者客户端已被禁用!
67200004请求的接口无权限请联系我们的支持人员!
67200005账户余额/调用次数不足!
67200006客户端超过开通有效期!
67200007当前调用超过当天配置使用额度!
67200008请检查query参数中必填的apikey是否传输!
67200009apikey与所传的bearerToken不匹配,请检查是否使用在有效期内的token!
67200012请求不合法!
67200100当前服务器状态正忙,请求响应超时!
67200101当前请求的Api不存在请检查请求Path!

HTTP 状态码

状态码描述
0请求成功
202任务已接受;提交基础计量默认 1。
400文件为空、不是有效 PDF、损坏或无法读取。
413超过 output_format 对应的文件大小或整份 PDF 页数限制。
422参数校验失败:输入未二选一、语言不支持或相同、页码无效等。
502远程 PDF 下载失败。
503服务暂时不可用,请稍后重试。
504远程 PDF 下载超时。

性能指标

此接口的预期性能特征

正常响应时间

5000 ms

最大响应时间

10000 ms