灵活且有趣,10分钟落地翻译能力,1分钟插件化

分享 零代码APaaS明道云  收藏
1 / 1046

上个月,我完成了一个有趣的实验——《我把 22 张 Excel 工作表成功转换成一个企业应用》,这个月基于一次惊鸿一瞥,我又进行了一次有趣的尝试。

实验背景

明道云团队自用的销售管理应用通过对外部公开表单中客户填写的信息进行处理,生成相应的线索信息,难免会遇到一些用英文或其他语言填写的信息,在频繁且麻烦地使用百度翻译的过程中,我有幸撇到了——翻译 API。

(百度翻译 Web 版)

同时我很清楚,明道云是具备与外部系统对接的能力的,于是我想到了一种可能性——在明道云内做一个翻译应用。我本身是没有接触过代码的,因此在阅读 API 文档时费了一些功夫,不过综合理解下来,要完成这个工作需要以下几个准备:

  1. 注册成为百度云的开发者,并开通通用翻译 API 标准版服务(百度的通用翻译 API 标准版为不限次数免费调用)。
  2. 获取接入方式,百度翻译提供的是 https 地址:https://fanyi-api.baidu.com/api/trans/vip/translate
  3. 按照要求的方式生成接入的签名 sign。
  4. 准备好发送请求的输入参数。

注册成为开发者的过程中很轻松,而签名生成的需要字符串连接以及 MD5 加密的方式,为此我也去学习了一下 MD5 加密的方法。

实验过程(10 分钟落地)

搭建应用

首先,我在明道云内创建了一个名为【翻译小助手】的应用,并创建了一张工作表【翻译表】,并包含四个字段{ 【需翻译内容】,【源语言】,【目标语言】,【翻译结果】},并在工作表内创建了一个【翻译】的按钮。这个按钮的目的是触发能够实现翻译功能的工作流。

配置工作流

根据 API 文档的要求,需要生成请求的签名,首先由 appid+query(需要翻译的内容)+salt+ 密钥拼接后生成一个字符串 1,字符串 1 经 MD5 加密后得到签名 sign。在百度云的管理控制台中得到 APPID 以及密钥信息。

salt 是一个自定义的随机字符串,我在明道云工作流中,通过代码块节点快速完成了字符串 1 的拼接。

第二步是对字符串 1 进行 MD5 加密,同样通过代码块节点来完成。

第三步便是通过明道云的 webhook 节点,发送请求并返回翻译的结果。这一步一共需要发送 6 个参数,依次是 q(请求的翻译内容)、from(源语言)、to(目标语言)、appid、salt 以及生成的签名 sign。我在这一步出现了一些问题,from 和 to 需要按照翻译规定的代码来填写,因此根据 API 文档中提供的语言代码对照表,在应用内同步地做了一张语言对照表,并与翻译表建立了关联关系,同时在工作流最开始的节点中加入了获取 from 和 to 对应语言代码的节点。

(常见语种对应代码表)

(翻译应用内的语言对照表)

(获取源语言与目标语言的工作流节点)

在完成以上配置后,我终于接近了终点。在 webhook 节点中,配置好发送请求的地址,以及各个参数的准确值,我进行了一次请求测试,结果没有让人失望。

接近终点了,但还没有结束。返回值是一个数组,而我真正想要的只是 dst 的值。而初次尝试后,我获得了一个类似于 ["vase"]的值,这当然还是不够完美的,那就用代码块完成最后的精修工作,终于我拿到了想要的结果。

验证性测试

完成了工作表的构建以及工作流的配置,似乎应用已经顺利完成,不过还需要对我预设的功能进行一个测试,主要包括:是否具备翻译功能,是否具备任意语言的互相翻译功能。

直接翻译功能测试

将巴黎圣母院翻译为英语,并由系统自动检测源语言。

测试成功!

任意语言测试

将 Notre Dame de Paris,翻译为中文、日语、俄语等语言。

测试成功!

二次实验(1 分钟插件化)

完成了翻译应用的搭建,似乎达到了我的目的,可是实际应用中,难道我还得打开这个翻译应用去进行翻译,而这样工作跟直接去百度翻译 Web 版似乎是一样麻烦,那么能否将这个应用作为一个类似于【插件】的功能,让其他应用内都具备一个翻译能力呢?

答案是可以的,而且非常容易。

首先,只需要对刚刚做好的翻译应用进行进行一个微调。之前我们是通过按钮触发的方式配置了工作流,只需要新建一个以工作表事件触发方式的工作流,相关的动作节点与之前的方式一模一样。

(以工作表事件触发的工作流)

然后打开任意一个我们需要拥有翻译能力的应用,选择一张需要经常对其中内容进行翻译的工作表,进入【工作表编辑】,新建一个【关联记录】字段,并选择已经搭建好的【翻译小助手】应用的【翻译表】工作表建立关联关系。

(添加关联记录)

那么在目标工作表的记录中,就多了一个翻译插件的字段,我们只需将这条记录内需要翻译的内容,复制下来,并粘贴填写进翻译插件字段内,就会得到翻译的结果了。

(翻译结果自动填入了翻译插件字段内)

GIF.gif

实验总结

此次尝试可以说取得了不错的结果,这都依赖于明道云 APaaS 所具备的足够强大且灵活的外部系统对接能力,以及内部可以说毫无阻碍的跨应用数据关联能力,而这次尝试也让我对数据贯通以及数据中台有了更深刻的认识。

我会继续尝试,通过集成外部系统,让明道云的应用具备一些有趣的能力。

同时,明道云发布了应用库 2.0,在其中有很多强大且有趣的应用等你发掘,本次实验的【翻译小助手】应用也会发布在明道云应用库中,只需要安装 + 关联,您的应用就具备了一定的翻译能力,还不快试试?