ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Automatisch 接入 LibreTranslate:翻译与语言检测 Action 实战指南

Automatisch 接入 LibreTranslate:翻译与语言检测 Action 实战指南 Automatisch 接入 LibreTranslate翻译与语言检测 Action 实战指南【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch导读本篇文章聚焦开源自动化平台 Automatisch 中 LibreTranslate 应用的两个 Action——翻译文本Translate text与检测语言Detect language逐一拆解它们的输入参数、调用原理与底层实现并结合仓库源码说明连接配置、动态语言列表等配套机制。读完本文你将能在 Automatisch 的可视化流程编辑器里用几秒钟拼出自动翻译任意语言内容或自动识别文本语种的自动化流程并理解每个参数在请求层是如何被真实组装的。LibreTranslate 是一个开源、免费的机器翻译 API支持自托管部署Automatisch 将其封装为内置应用app key 为libretranslate使非技术用户也能在不写代码的情况下把翻译能力编排进自己的工作流。在 Automatisch 官方文档中LibreTranslate 应用共暴露两类操作分别记录在 packages/docs/pages/apps/libretranslate/actions.md 中Translate text——将一段文本翻译成指定目标语言Detect text——检测一段文本所使用的语言。下文将围绕这两个 Action 展开先讲清它们在流程编辑器中的完整参数用法再深入到packages/backend/src/apps/libretranslate源码层解释每次调用背后发生了什么。一、前置准备先建立 LibreTranslate 连接在流程中使用任何 Action 之前必须先创建一个 LibreTranslate 连接Connection。官方连接指引见 packages/docs/pages/apps/libretranslate/connection.md完整步骤如下登录你的 LibreTranslate 账号将账号页面中的API key复制到 Automatisch 的API Key字段如果你使用的是自托管self hosted版本的 LibreTranslate将实例地址复制到Instance URL字段填写一个将在 Automatisch 界面中展示的连接名称Screen Name保存后即可在流程中使用该 LibreTranslate 连接。这三个字段screenName、instanceUrl、apiKey的定义位于 auth/index.js其中instanceUrl与apiKey均为可选字段——这对应着 LibreTranslate 的两种使用形态使用官方托管服务https://libretranslate.com作为 Automatisch 中该应用的默认baseUrl与apiBaseUrl见 index.js此时可不填 Instance URL使用自托管实例需提供 API Key 的实例通过Instance URL指定服务地址。注意官方连接文档中的Instance URl字段拼写为原文如此实际配置时该字段对应源码中的instanceUrl。二、Action 一Translate text翻译文本在流程编辑器中添加 LibreTranslate 应用后选择Translate textAction即可在右侧面板配置以下参数。参数一览参数类型必填说明Textstring✅ 是需要翻译的文本内容支持变量variablesSource Languagedropdown✅ 是源语言选项来自动态数据listLanguages可填auto自动检测Target Languagedropdown✅ 是目标语言选项同样来自动态数据listLanguagesFormatdropdown否翻译格式text纯文本或html保留 HTML 标签这些参数定义直接来自源码 actions/translate-text/index.js前三个字段均开启了variables: true意味着你可以插入上游步骤如 Webhook、表单、Gmail 邮件正文的输出作为动态值而 Source Language 与 Target Language 两个下拉框通过getDynamicData动态拉取语言列表详见本文第四节。底层调用POST /translateAction 执行时源码会组装请求体并调用 LibreTranslate 的翻译接口const body { q: text, // 待翻译文本 source: sourceLanguage, // 源语言如 auto、en、zh target: targetLanguage, // 目标语言如 fr、de、es format, // text 或 html }; const response await $.http.post(/translate, body); $.setActionItem({ raw: response.data });对应 LibreTranslate 官方的/translateREST 接口q为待翻译文本source/target为语言代码format控制输出是否保留 HTML 标签例如翻译整封 HTML 邮件正文时选择html可保留样式结构。response.data是 LibreTranslate 返回的翻译结果对象通常包含translatedText字段它会作为本次 Action 的执行输出项action item保存在执行记录中供后续步骤引用——例如把翻译结果继续通过 Gmail 或 Slack 发送出去。三、Action 二Detect language检测语言第二个 ActionDetect language用于识别一段文本的语言适合作为翻译流程的智能前置判断也可以单独用于文本分类、路由分流等场景。参数一览参数类型必填说明Textstring✅ 是需要检测语言的文本支持变量参数定义见 actions/detect-language/index.js它比翻译 Action 简单得多仅需一个文本输入。底层调用POST /detectconst body { q: text }; const response await $.http.post(/detect, body); $.setActionItem({ raw: response.data[0] });实现上向 LibreTranslate 的/detect接口发送待检测文本接口返回的是一个数组同一段文本可能给出多个候选语言及置信度Automatisch 取数组第一个元素response.data[0]作为执行输出项其中包含检测到的语言代码language与置信度confidence等信息。这意味着流程下游可以直接用Detect language的输出做条件判断——例如若检测为中文则翻译成英文否则原样放行。四、动态语言列表Auto-detect 与 /languages 接口两个 Action 中的 Source / Target Language 下拉选项并非硬编码而是由动态数据dynamic data模块实时生成。源码位于 dynamic-data/list-languages/index.jsconst languages { data: [{ value: auto, name: Auto-detect }], }; const { data } await $.http.get(/languages); for (const language of data) { languages.data.push({ value: language.code, name: language.name, }); }其行为可以概括为下拉列表第一项固定为autoAuto-detect自动检测这是 LibreTranslate 支持的特殊值供翻译时由服务端自动判断源语言随后请求 LibreTranslate 的GET /languages接口将返回的语言列表语言代码code 语言名称name动态追加到下拉框中如果接口未返回数据则仅保留auto一项保证下拉框始终可用。因此你在流程编辑器中看到的语言选项是与你的 LibreTranslate 实例官方或自托管实时同步的新增语言支持无需升级 Automatisch。五、连接鉴权与请求层原理baseURL 与 API Key 的注入理解这两个 Action 的执行链路还需要知道每次请求前 Automatisch 做了什么。在 index.js 中应用声明了两个beforeRequest钩子setBaseUrl与addApiKey它们会按顺序作用于该应用发出的每一个 HTTP 请求。1. setBaseUrl动态选择服务地址common/set-base-url.js 决定了请求发往哪里若连接中配置了instanceUrl自托管场景则将其设为本次请求的baseURL否则回退到应用默认的apiBaseUrl即官方服务https://libretranslate.com。这解释了为什么Instance URL字段只在自托管时填写——它直接决定了/translate、/detect、/languages等接口最终打到的服务器。2. addApiKey把密钥注入请求体common/add-api-key.js 会在每个请求体中注入 API 密钥requestConfig.data { api_key: apiKey, ...(requestConfig.data || {}) };即把连接中保存的apiKey以api_key字段写入请求体与q、source、target等同级这是 LibreTranslate API 的认证方式。若连接未配置 API Key例如本机自托管且未开启鉴权该字段为空字符串请求依然可以发出。从源码结构看Automatisch 对 LibreTranslate 的封装遵循了应用级钩子 动作级参数 动态数据的统一架构与仓库中其他 90 个集成应用的实现模式一致这让新接入的第三方服务可以快速复用同一套连接、鉴权与请求管道。六、实战组合用检测语言 翻译文本搭建多语言工作流结合以上两个 Action一个典型的多语言处理流程可以这样编排触发使用 Webhook、Scheduler 或表单提交作为流程起点携带待处理文本例如用户提交的评论、工单描述Detect language将上游文本通过变量传入Text字段检测其语言分支判断利用上一步输出的语言代码做条件判断Automatisch 内置 Filter 应用可完成该逻辑Translate text在Source Language中选择auto或使用上一步检测到的语言Target Language选择目标语言如en、zhText传入原文Format按内容类型选择text或html输出将translatedText通过 Gmail / Slack / Telegram 等应用发送给相关人员。整个链路中两个 Action 的输入都支持变量插值输出项action item也会在 Automatisch 的执行记录Executions中完整保存便于排查每一步的原始请求与返回值——这正是把开源翻译能力嵌入自动化流程的典型落地方式。七、小结本文基于 Automatisch 官方文档 packages/docs/pages/apps/libretranslate/actions.md 列出的两个 Action结合 libretranslate 应用源码 完成了从参数、请求到鉴权机制的完整拆解。核心要点回顾Translate texttextsourcetargetformat四个参数请求POST /translateDetect language仅text一个参数请求POST /detect并取返回数组首项作为输出语言下拉列表由/languages接口动态生成并始终提供auto自动检测选项连接配置支持官方服务与自托管实例两种模式beforeRequest钩子负责注入api_key与切换baseURL。如果你正在使用自托管 LibreTranslate 并希望把翻译能力自动化现在就可以在 Automatisch 中创建连接用这两个 Action 把任意上游数据翻译成你需要的语言。【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表