机器翻译

自带引擎

文本由 Phrase Language AI 从英语机器翻译而得。

自带引擎 (BYO Engine) 功能允许将外部机器翻译 (MT) 引擎集成到 Phrase 中,以便像任何其他机器翻译服务商一样在翻译工作流中使用。

自带引擎适用于:

  • 拥有特定领域机器翻译模型的企业。

  • 拥有自定义客户引擎或首选 AI 技术栈的语言服务提供商 (LSP)。

  • 有内部政策要求使用特定引擎(例如 Gemini、内部 LLM 等)的公司。

可以使用自定义训练的引擎,或者将翻译路由至内部 LLM 或机器翻译服务商,从而在保持对质量、隐私和成本的完全控制的同时,继续受益于 Phrase 的 翻译记忆库 (TM)、术语库QPS(质量评估分数)CAT Editor

自带引擎的使用场景

一旦集成,自带引擎即可用于预翻译。在 Phrase Language AI 个人资料中进行配置,并使用该个人资料通过 API 对 Phrase TMS 项目、Phrase Portal、Phrase Strings 项目、Phrase Studio 和 Phrase Language AI 进行预翻译。

配置自带引擎

构建适配器

  • 公司必须构建并测试一个轻量级 API 适配器。此适配器支持 Phrase 与引擎之间的通信。

    适配器必须支持:

    • 翻译请求

    • 语言对支持

    • 引擎状态检查(Phrase 发送状态请求)

  • 后端基础设施(机器翻译引擎或 LLM)必须由公司托管和维护。

  • Phrase 需要连接到该基础设施的权限。

  • 适配器必须返回与句段数量和顺序一致的翻译。

将引擎集成到机器翻译个人资料中

一旦 API 适配器实现并部署完成,BYO 引擎即可在 Phrase Language AI 中供机器翻译个人资料选择,并可分配给项目。

要将 BYO 引擎连接到机器翻译个人资料:

  1. 在 Phrase Language AI 机器翻译个人资料页面,点击连接 MT 引擎

    将显示连接 MT 引擎页面。

  2. 选择Bring Your Own (BYO) 引擎

    打开 BYO 引擎配置页面。

  3. 输入Base engine URL

  4. 根据Authentication method(HTTP 标头或 Client credentials (OAuth 2.0))提供凭据。

  5. 选择是否Use translation cache。默认启用。

    通过重用过去 30 天内翻译的句段来减少流量并加快翻译响应速度。这仅是调用性能优化,不会降低翻译成本。保持默认启用,仅在底层引擎适配器处于积极开发阶段时禁用。

  6. 如果需要,请在自定义标签下提供有关引擎的任何附加信息。

  7. 点击验证连接以检查引擎集成是否正常工作。

  8. 点击添加

    该引擎现已可在机器翻译个人资料中启用。

提示

使用 BYO 引擎时,请勿在机器翻译个人资料中启用任何其他引擎。这可确保选中 BYO 引擎进行预翻译。

编辑 BYO 引擎

要编辑 BYO 引擎,请点击引擎磁贴上的编辑图标。

删除 BYO 引擎

要删除 BYO 引擎:

  1. 点击引擎磁贴上的编辑图标。

  2. 点击移除 BYO 引擎

常见问题解答

Q:

为什么需要状态请求?这是由 Phrase 发送给引擎,还是需要由客户处理?

A:

Phrase 发送该请求以检查引擎是否正常工作。

Q:

一个请求可能包含 500 个 maxItems,在 segments 中。这是否意味着必须实时翻译 500 个原文句子?

A:

同步调用仅包含最多 5 个片段,而异步调用可以包含更多,最多 500 个。此外,异步超时时间约为 30 分钟。

Q:

术语表中的所有术语都会在请求中发送,还是仅发送子集?

A:

术语表中的所有术语都会被发送。

Q:

是否可以接入大语言模型 (LLM)?

A:

使用封装器应该可以实现。只要引擎返回架构中定义的句段,Phrase 就不需要特定的引擎或 LLM。

Q:

是否可以进行自定义质量评估 (QE)?

A:

不支持第三方 QE。

Q:

标记是如何处理的?

A:

Phrase 接收的内容是经过预处理的。HTML 标记被转换为标记,这些标记按原样传递。

Q:

我们可以只实现异步方法吗?它能在所有 Phrase 区域(预翻译、编辑器等)中正常工作吗?

A:

不行,两种方法(理想情况下是所有端点)都必须实现。同步端点由编辑器等使用,而异步端点则用于预翻译等区域。

Q:

当引擎同时收到多个请求时会发生什么?

A:

引擎必须能够处理这种情况。确保在所有端点(尤其是异步端点)中正确处理并发和线程安全。

Q:

请求元数据是如何工作的?

A:

它必须保持静态,正如在引擎设置期间定义的那样。

Q:

句段元数据是如何工作的?

A:

目前,它需要成为架构的一部分。

Q:

在机器翻译处理期间,BYOE 是否使用 RAG 来检索内容?

A:

不,BYOE 不使用 RAG。用户可以利用翻译记忆库来确定哪些句段已翻译,但它们不会在机器翻译流程本身中使用。这是因为机器翻译引擎必须经过专门设计,才能通过 RAG 合并翻译记忆库数据,而在 BYO 引擎场景中,无法控制引擎的构建或配置方式。

适配器架构参考

适配器必须返回与以下字段名称和枚举值完全匹配的响应。即使适配器本身返回 200 OK 响应,不匹配也会导致 Phrase 出现通用的 INTERNAL_ERROR。

  • POST /status 必须返回一个 状态 键,其枚举值必须严格为小写的 oknot_ok。Example: { "status": "ok" }

  • POST /languages 必须返回一个 languagePairs 数组(驼峰命名法),其中每个条目包含一个 sourceLanguage 键和一个 targetLanguage 键。Example: { "languagePairs": [ { "sourceLanguage": "en", "targetLanguage": "es" } ] }

  • POST /translateGET /translateAsyncResult/{id} 必须返回顶层的 sourceLanguagetargetLanguage 字段,外加一个 segments 数组,其中每个 segment 都包含一个 text 字段(回显的原文)和一个 translatedText 字段。仅返回 translatedText,或使用不同的键名,会导致反序列化失败。

  • POST /translateAsync 的响应中仅需要一个 id 键。status 键不属于此响应模式,如果存在则会被忽略。

  • GET /translateAsyncStatus/{id} 必须返回一个 status 键,使用以下三个枚举值之一:running 表示工作仍在处理中,done 表示工作已成功完成,或 failed 表示工作失败。对于失败的工作,可选的 detail 键可以描述失败原因。示例值:{ "status": "running" }, { "status": "done" }, { "status": "failed", "detail": "Description of translation failure" }

这篇文章有帮助吗?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.