Articut Docker on Google Cloud VM
「買了 Articut 離線 Docker 後,能不能佈署到自己的 Google Cloud 上啊?」
「買了 Articut 的 Docker 以後,我能不能轉做自己的服務,再對外另外收費啊?」
這兩個問題的答案都是「可以唷!」
離線版的 Articut 其實就是一個 Docker 服務再加上客製的啟動器 (Articut Starter),而已。只要在 Google 雲端平台上啟用一個 VM 虛擬機器,在 20 分鐘內就能佈署好一個「專屬於你的 Articut 中文斷詞系統」囉!
Google Cloud Platform (https://console.cloud.google.com)
申請帳號 Google 帳號,完成付款資訊設定後開始以下步驟
開啟新專案 (NEW PROJECT)
建立 VM 環境 (Compute Engine > VM Instances > Ubuntu 18.04 LTS)
啟用一個 VM (這裡要花一點時間…你可以在旁邊做 10 下深蹲)
安裝 Google Cloud SDK (要操作 G 社的產品,當然要配合 G 社的雲端 SDK 啦!)
$ curl https://sdk.cloud.google.com | bash $ exec -l $SHELL $ gcloud init
使用 SSH 登入 VM (複製 View gcloud command 預設指令)
gcloud compute --project [PROJECT_NAME] ssh --zone [ZONE][INSTANCE_NAME]
$ gcloud compute --project "articutservice" ssh --zone "asia-east1-b" "ubuntu-1804"
新增連線規則 (port:8964) (這個 8964 不是什麼刻意的敏感關鍵字,只是剛好經濟部給我們的一組號碼而已)
更新環境與建立目錄
ubuntu@ubuntu-1804:~$ sudo apt update ubuntu@ubuntu-1804:~$ sudo apt upgrade -y ubuntu@ubuntu-1804:~$ mkdir tools ubuntu@ubuntu-1804:~$ mkdir dist
安裝 Docker 環境 https://docs.docker.com/install/linux/docker-ce/ubuntu/
將目前 user 加到 docker 群組,並重新登入
ubuntu@ubuntu-1804:~$ sudo gpasswd -a $USER docker
取得 VM 設備資訊,然後利用您下訂單時收到的確認信,回覆給我們。 在本機端,把 DeviceInfo.py 和 linux_x86_64 兩個檔案上傳到雲端 VM 中: gcloud compute scp [LOCAL_FILE_PATH] [INSTANCE_NAME]:[DESTINATION] --zone [Zone]
$ gcloud compute scp ./DeviceInfo.py ubuntu-1804:~/tools/ --zone "asia-east1-b" $ gcloud compute scp ./linux_x86_64 ubuntu-1804:~/tools/ --zone "asia-east1-b"
在雲端的 VM 裡執行 DeviceInfo.py:
ubuntu@ubuntu-1804:~$ sudo python3 ./tools/DeviceInfo.py
我們將回覆您「專屬的」Articut Docker 執行檔。 在您將 Articut 執行檔案上傳至 VM 前,請先用 ls 指令確認一下,您購買的 ArticutDocker 包含以下 6 個檔案!
$ ls ArticutDocker ArticutStarter DomainDictGenerator LICENSE license.lic testAPI.py
接著用 gcloud SDK 把 Articut 整組擺上剛剛佈署的 VM
$ gcloud compute scp ./ArticutStarter ubuntu-1804:~/dist/ --zone "asia-east1-b" $ gcloud compute scp ./ArticutDocker ubuntu-1804:~/dist/ --zone "asia-east1-b" $ gcloud compute scp ./DomainDictGenerator ubuntu-1804:~/dist/ --zone "asia-east1-b" $ gcloud compute scp ./license.lic ubuntu-1804:~/dist/ --zone "asia-east1-b"
執行 AritcutStarter
ubuntu@ubuntu-1804:~$ cd dist ubuntu@ubuntu-1804:~/dist$ ./ArticutStarter
若出現以下訊息,則表示 Articut 已正確執行
Build images ... Build Status: (<image:>, <itertools._tee object at>) Run containers: <container: bb3da09353> Articut Serviceice
您可以利用我們提供的 testAPI.py 檔,測試一下自己的 Articut Docker 是否正常運作 首先將 testAPI.py 變數 G_url 改為你的 VM IP 位置。 以此為例: "http://104.199.158.191:8964" 接著用 Python3 執行 testAPI.py,出現以下結果,則表示 Articut Docker 執行成功囉! ``` $ python3 ./testAPI.py
{'exec_time': 0.032659053802490234, 'info': 'Articut Standalone Version only for Droidtown.\n' 'Powered by Droidtown Linguist Tech.', 'level': 'lv2', 'msg': 'Success!', 'result_obj': [[{'pos': 'ACTION_verb', 'text': '測試'}], [{'pos': 'UserDefined', 'text': 'Articut API'}], [{'pos': 'ACTION_verb', 'text': '執行'}, {'pos': 'MODIFIER', 'text': '成功'}], [{'pos': 'PUNCTUATION', 'text': '。'}]], 'result_pos': ['測試', 'Articut API', '執行成功', '。'], 'result_segmentation': '測試/Articut API/執行/成功/。/', 'status': True, 'version': 'v183'} ``` </itertools._tee>










