【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问( 二 )


【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
20、看不懂德文 , 把德文搞到百度在线翻译上面反翻译回来,看来语意好像差不多 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
【中途插播,防止被恶意转载抹除个人出处使用】 该博客原创作者 Wesky,公众号:Dotnet Dancer  博客原地址:https://www.cnblogs.com/weskynet/p/16740041.html
21、程序这样运行不是事儿,所以我们可以把它打包为exe程序来运行 , 这样就可以在不安装python环境的电脑也可以跑了 。安装 pyinstaller:
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
22、在MyTranslate.py同文件夹下,新建一个py文件,名称不能改:hook-ctypes.macholib.py  该文件用于提供虚拟环境使用 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
23、该文件下,需要导入所有可能用到的依赖的包 。不然打包可能出错;或者打包完毕以后,运行可能出错 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
24、打包应用的内容 , 根据个人实际情况来选择,pip 下载时候,有一个 Collecting提示,提示后面就是安装的依赖包,不晓得哪些需要的 , 就全部搞进去,减少错误几率 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
25、执行打包命名 pyinstaller -F xxx.py --additional-hooks-dir=.     如果不需要有控制台提示,可以加个 -w
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
26、打包安装成功了
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
27、打包成功的exe文件,自动放在 dist文件夹下
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
28、生成的exe文件 , 如图 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
29、直接运行走一波,看看效果 。为了避免看不到错误提示,所以我在控制台内运行 , 如图
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
30、由于模型被下载过,所以第二次启动,不会重复下载模型 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
31、现在再用 Postman 走一波,看看效果 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
32、直接运行的程序 , 难免被人不小心误操作给关闭了,所以我们还可以把他丢到Windows服务上面,这样服务器重启也不担心了 。使用NSSM工具进行操作 。如果想知道如何使用 , 也可以参考我的另一篇博客 。博客地址:https://www.cnblogs.com/weskynet/p/14961565.html
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
33、设置描述,备注为 离线翻译服务 。安装为服务 TranslateService(名字可以随意)
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
34、安装以后,可以看到已经生成一个对应的Windows服务了 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
35、服务启动,可以等待一小会儿,加载模型要一丢丢时间 。一小会儿以后,使用Postman进行测试一下,看看效果 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
36、接下来,创建一个基于.NET的webapi程序,用来通过代码来访问翻译服务,看看能不能访问到 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
37、创建一个控制器,搭建个基础模子先 。
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
38、注入IHttpClientFactory(用来访问webapi使用的,实际上就是提供HttpClient) 。然后写个简单的测试功能,直接看以下代码:
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
39、通过自带的swagger , 走一波 。输入有关参数,走一个看看,嘿,可以使用,bingo~
【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

文章插图
40、后记:如果需要源码的,可以微信搜索 Dotnet Dancer 或者扫描以下二维码,在公众号窗口发送 【离线翻译神器】,即可下载 。

推荐阅读