日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统(如果你想,也可以在线)

發布時間:2023/12/20 C# 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统(如果你想,也可以在线) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:目前翻譯都是在線的,要在C#開發的程序上做一個可以實時翻譯的功能,好像不是那么好做(其實主要是第三方的都要AppID或者授權,太不友好了)。而且大多數處于局域網內,所以訪問在線的api也顯得比較尷尬。于是,就有了以下這篇文章,自己搭建一套簡單的離線翻譯系統(當然,你也可以部署到有外網的云服務器上,那就可以變成在線的翻譯系統了)。以下內容采用python提供基礎翻譯服務+ C#訪問服務的功能,歡迎圍觀。

小聲嗶嗶:其實本來要寫個WPF版本的翻譯神器,對標某道詞典或者某度翻譯啥的。不過想了想,算了,不搞那么麻煩了,意思一下就行,能跑就可以,大家感興趣可以自己拓展為自己需要的模樣。

系統環境:WIN10?

開發環境:VS2022 + VS CODE

開發語言環境:Python3.8 + .NET 6

以下正文:

1、由于本地環境沒有python,所以先安裝python有關環境先。

2、安裝好以后,控制臺下輸入 python,進入如下終端內容,就代表安裝成功了。建議安裝時候,選擇自動添加到環境變量里面,這樣不需要自己配置了。

3、由于翻譯功能,會使用到一些已有的模型進行計算,所以以下需要安裝幾個包。第一個是pytorch, 輸入 pip install torch 即可安裝。如果安裝比較慢,在后面設置一個鏡像,可以加速,例如此處我使用的清華的加速器:https://pypi.tuna.tsinghua.edu.cn/simple

4、然后安裝flask: pip install flask

5、接著需要安裝 gevent: pip install gevent

6、接著是 transformers

7、安裝transformers時候,有的會自動安裝sentencepiece包,有的時候不會。如果上面查找沒有,就手動安裝一下:

8、以上包安裝完畢,打開VS CODE,創建一個python語言文件

9、此處文件命名為 MyTranslate.py? ?然后引入可能所需要的包

10、接著,上 https://huggingface.co/Helsinki-NLP 上面,查找需要的語言翻譯模型。此處使用的離線翻譯,使用的該項目下的。

11、Models里面有上千個語言模型,選擇自己需要的名稱,記住就行。

12、此處,我選了四個模型,分別是英漢/漢英? 以及德漢/漢德的翻譯模型。有關代碼實現如下所示。

13、接著定義一個api接口,用于提供給外部訪問(畢竟主業不是python,提供api就可以跨語言來訪問該服務了)。有關代碼如下所示。

14、VS CODE上運行程序,可以看到終端控制臺上面打印出一些下載進度。這是因為本地現在還沒有模型,我們選擇的四個模型,會被下載到本地來,這樣下次就不需要再下載模型了。

15、 模型加載完畢,啟動服務。此處0.0.0.0代表本機ip都可以被訪問,我們正常使用時候,本機就127.0.0.1即可;如果是局域網或者外網,那就提供真實IP即可。

16、下載的模型,會自動下載到當前用戶文件夾下,具體效果如下圖所示。所以如果某個服務器沒有外網,也可以直接拷貝該.cache文件夾到指定服務器下面的某用戶下,也可以被識別。

17、打開postman,做個簡單的測試??梢钥吹?#xff0c;服務是可以被成功訪問的,說明代碼可以跑,問題不是很大。

18、換一種翻譯模式再試一下:

19、再試一試另類點的,看看效果:

20、看不懂德文,把德文搞到百度在線翻譯上面反翻譯回來,看來語意好像差不多。

【中途插播,防止被惡意轉載抹除個人出處使用】 該博客原創作者 Wesky,公眾號:Dotnet Dancer ?博客原地址:https://www.cnblogs.com/weskynet/p/16740041.html

21、程序這樣運行不是事兒,所以我們可以把它打包為exe程序來運行,這樣就可以在不安裝python環境的電腦也可以跑了。安裝 pyinstaller:

22、在MyTranslate.py同文件夾下,新建一個py文件,名稱不能改:hook-ctypes.macholib.py ?該文件用于提供虛擬環境使用。

23、該文件下,需要導入所有可能用到的依賴的包。不然打包可能出錯;或者打包完畢以后,運行可能出錯。

24、打包應用的內容,根據個人實際情況來選擇,pip 下載時候,有一個 Collecting提示,提示后面就是安裝的依賴包,不曉得哪些需要的,就全部搞進去,減少錯誤幾率。

25、執行打包命名 pyinstaller -F xxx.py --additional-hooks-dir=.? ? ?如果不需要有控制臺提示,可以加個 -w

26、打包安裝成功了

27、打包成功的exe文件,自動放在 dist文件夾下

28、生成的exe文件,如圖。

29、直接運行走一波,看看效果。為了避免看不到錯誤提示,所以我在控制臺內運行,如圖

30、由于模型被下載過,所以第二次啟動,不會重復下載模型。

31、現在再用 Postman 走一波,看看效果。

32、直接運行的程序,難免被人不小心誤操作給關閉了,所以我們還可以把他丟到Windows服務上面,這樣服務器重啟也不擔心了。使用NSSM工具進行操作。如果想知道如何使用,也可以參考我的另一篇博客。博客地址:https://www.cnblogs.com/weskynet/p/14961565.html

33、設置描述,備注為 離線翻譯服務。安裝為服務 TranslateService(名字可以隨意)

34、安裝以后,可以看到已經生成一個對應的Windows服務了。

35、服務啟動,可以等待一小會兒,加載模型要一丟丟時間。一小會兒以后,使用Postman進行測試一下,看看效果。

36、接下來,創建一個基于.NET的webapi程序,用來通過代碼來訪問翻譯服務,看看能不能訪問到。

37、創建一個控制器,搭建個基礎模子先。

38、注入IHttpClientFactory(用來訪問webapi使用的,實際上就是提供HttpClient)。然后寫個簡單的測試功能,直接看以下代碼:

39、通過自帶的swagger,走一波。輸入有關參數,走一個看看,嘿,可以使用,bingo~

40、后記:如果需要源碼的,可以微信搜索 Dotnet Dancer 或者掃描以下二維碼,在公眾號窗口發送 【離線翻譯神器】,即可下載。

原文地址

總結

以上是生活随笔為你收集整理的【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统(如果你想,也可以在线)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。