使用Docker架设私有翻译服务
作为英语不怎么样的学术民工,高效的机翻软件是必备的.网页翻译,划词翻译等日常使用的工具对于学术阅读而言肯定是不够的,我需要快速地将整篇文献甚至整本专著翻译过来,再浏览判断有无阅读价值.但常用的翻译API服务,如百度,讯飞,Azure,Yandex,Google等,纷纷因为业务下线,不再允许白嫖,被墙等原因阵亡,因此我急需一个能完成大段文本翻译的,支持API以便于使用代码访问的,同时全部流程可以部署在本地的翻译服务.
终于功夫不负有心人,最近接触到了LiberTranslate,基本满足了我的所有需求.
官网地址:https://libretranslate.com/
进行本文的操作前,需要架设一台连接了主机网络的Ubuntu虚拟机并安装Docker,请参考教程:https://www.cnblogs.com/isakovsky/p/16732779.html
建议为虚拟机分配足够的硬盘空间,如果之前已经完成了前一步,但空间不够了,请参考如下教程以扩容空间:https://www.cnblogs.com/isakovsky/p/17437553.html
Docker镜像:https://hub.docker.com/r/libretranslate/libretranslate
拉取Docker镜像:docker pull libretranslate/libretranslate
然后运行容器: docker run -ti --rm -p 14514:5000 libretranslate/libretranslate --load-only zh,en
注意,LiberTranslate的默认端口是5000,为了防止冲突,建议映射到其他端口,比如我就将Docker的5000端口映射到了14514端口
创建镜像时会拉取语言模型,每个模型的体积都很大,下载还很慢,最后一个参数 --load-only zh,en 是只拉取中英文的翻译模型,如果需要,也可以添加de,es,fr,ru等语言包
然后会下载语言包,等待一段时间
做好至少下载一个小时的准备吧.
然后在主机上访问虚拟机的Host连接地址:翻译服务映射的端口
出现此界面,则说明Docker服务安装完成.
首页下方非常贴心地提示了API请求的语法,
但我更习惯用Python
import requests
import time
import json
outputFileName='out.tex'
translatedFileName='transed.tex'
text=open(outputFileName,'r',encoding='utf-8').readlines()
transurl = 'http://192.168.56.102:14514/translate'
def trans(q):
data={
'q':q,
'source': "en",
'target': "zh",
'format': "text",
'api_key': ""
}
response=requests.post(transurl,data)
if response.status_code == 200:
content=json.loads(response.text)
translatedText=content['translatedText']
return translatedText
with open(translatedFileName,'w',encoding='utf-8',buffering=1) as fout:
for w in text:
s=trans(w)
print(s)
fout.write(s)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!