要說整個 2023 年最紅的話題之一,ChatGPT 絕對不會缺席。於 2022 年 11 月橫空出世,在短時間內席捲全世界,並造就直到今天仍在持續的 AI 浪潮。過去所謂的人工智慧,大多都是透過條件式判斷,其實只是有限的自動回覆程式而已;但 ChatGPT 是真的能分析使用者輸入的內容,而且可以根據上下文自己判斷,並給出具建設性的回覆。然而除了單純文字聊天以外,後來有人發現它其實對工程師的程式撰寫也非常有幫助!
我算是 ChatGPT 剛發布時就有關注,也看了不少關於 GPT-3.5 的文章跟影片;不過因為 OpenAI 當時還是個名不見經傳的公司,註冊帳號雖然免費但還要手機驗證有點麻煩,所以一直處於觀望的狀態。後來 GPT-4 問世,更新資料並提高回覆內容的正確性,可是需要花錢訂閱~身為免費仔當然還是繼續觀望。但在微軟爸爸入股後,把 ChatGPT 整合到 Bing 搜尋,偶然看到某個影片分享 Skype 的 Bing 帳號也有導入 GPT-4 模型,重點是幾乎沒有限制而且完全免費!這才讓我開始真正頻繁的使用聊天機器人,來輔助我寫程式。其中一個實際案例是在我寫 Laravel 的 queue 相關程式時,原本苦惱要怎麼在處理 queue 的前後加入動作,後來問了 Bing 才發現原來新版的 Laravel 有提供 queue 的 middleware!使用上跟一般的 middleware 一樣,但是處理邏輯可以拆到另外一個 class 降低耦合並提高重用性。自己思考時絕對想不到的做法,有了聊天機器人相當於多了一位 mentor 可以提問討論。
2023 年 11 月初,在 OpenAI 的開發者大會上,創辦人 Sam Altman 發表了新的 GPT-4 Turbo 模型,擁有更快的回應、更正確的回覆以及更長的上下文,同時也公布 GTPs:任何人都可以客製自己的 ChatGPT 聊天機器人,並分享給其他人。預告會開放官方的商店,讓使用者能更統一更有效率的搜尋適合的聊天機器人。然而發表會幾天後,OpenAI 因為湧入大量使用者而不得不暫時關閉 ChatGPT Plus 的訂閱,直到今天還沒有開放。上周我不知道被什麼東西打到,突然想要來訂閱 ChatGPT Plus,但也因為服務暫停而被拒於門外...還好網路有人分享了可以繞過阻擋機制直接訂閱;當初我看得原始的連結已不可考,後來在網路上搜尋到類似的文章。使用瀏覽器開發者模式 console 的方式對我來說有用...至少在 12/5 時還有用,在暫停訂閱歧見想要突破防線的人可以試試。
20 美元的訂閱,折合台幣大概是 NT 630 左右,另外還要加上大約 NT 10 的刷卡手續費;順帶一題我是用玉山 Pi 拍錢包信用卡,國外消費應該會有最高 4% 的回饋...雖然是 P 幣但不無小補。回到 ChatGPT Plus,訂閱成功之後我簡單比較了一下免費的 GPT-3.5 與訂閱後的 GPT-4,首先反應速度 3.5 狂勝,幾乎是送出後馬上收到回覆;但也有讓不少使用者詬病的正確性問題。使用 4 回覆速度會比較慢,但這也可能表示它比較有經過思考?(心理作用)然後 4 在使用者要求在網路上搜尋時,會調用 Bing 搜尋查找網頁資料,可以多少突破目前 GPT-4 本身知識庫只到 2023 年 4 月的瓶頸。除此之外,一般正常使用好像沒什麼區別...但就跟「繳了補習班費用後才開始用功」的道理一樣,客家小資心裡當然是要在花錢訂閱後更加榨乾好好利用它囉~(欸不是)以下是幾個我在訂閱後嘗試過,覺得可以讓 ChatGPT Plus 更值得的心得:
GPTs
danielhuang030 發表在
痞客邦
留言(0)
人氣()
轉眼間使用 Oracle Cloud Free Tier 當免費仔已經快 2 年,期間相當滿意;目前開 2 台 VM 持續正常運作中。不過 3 月份信箱突然收到一封信,原本以為只是維修通知沒有去理會;後來 3 天後又收到一封。仔細看了一下內容才發現,原來是 Oracle Cloud 要回收閒置 VM 的通知!符合以下 3 個條件中其中之一持續 7 天,就會被列入待回收對象:
- 95% 的時間中 CPU 使用率低於 15%
- 網路使用率低於 15%
- 記憶體使用率低於 15% (僅適用於 ARM 的 VM)
danielhuang030 發表在
痞客邦
留言(0)
人氣()
2023-12-01 Updated: 目前機器人已被蝦皮阻擋,作者也萌生退意,此工具已失效,也感謝過去這段時間作者 wdzeng 提供並持續維護這個工具
前陣子在 PTT 省錢版發現有鄉民分享蝦皮自動簽到工具,因為平常就有在貪小便宜收集蝦幣, 如果可以自動化那真是太棒了!後來作者還更神的串接了 Github 的 Actions 服務,只要有 Github 帳號搭配簡單的設定步驟,就能實現每天自動領蝦幣的功能。可惜好景不長...或許是因為太多人使用引發官方關注,不到一個月 repo 就被強制關閉 GG 惹~沒辦法只好回頭去研究 docker 的用法。儘管作者對於 docker 的使用也有詳細步驟說明,但我在實作時還是有踩到一些坑;所以在這裡稍微紀錄一下:
環境準備
- 作者提供的簽到執行方式是 docker,所以首先必須自己準備一個已經安裝好 docker 的主機環境
- 自己的電腦當然也可以,但考量到之後會使用排自動執行,雲端空間會比較恰當
danielhuang030 發表在
痞客邦
留言(0)
人氣()
秉持著客家精神(?),一直以來我的虛擬主機都是用免費方案~(挺)之前是用 AWS 免費方案,但是他給的服務與規格實在太陽春了!EC2 連最基本的 Laravel 跑起來都卡卡 der...(囧)最近一年改用 GCP 免費方案,90 天內提供 300 美金的額度任你用;跑一般的服務絕對是綽綽有餘,到期前基本上用不完。目前已經換了 3 個免洗帳號,用起來沒有什麼缺點,就是時間短了點...儘管透過製作映像檔,轉成 vmdk 匯出的方式,在免洗帳號轉換時,幾乎可以無痛重啟一台一模一樣的 GCE;但是每 3 個月就要重做一次有點兒懶啊~這陣子就在尋覓是不是有更方便的免費方案,突然發現原來 Oracle 也有提供類似的雲端服務:Oracle Cloud,而且也有免費方案,30 天內提供 300 美金的額度,部分服務如果使用指定配置甚至是永久免費聽起來就很威!申請一個免費帳號不會很難,網路上教學資源豐富,我就不特別說明了。我申請的時候需要輸入手機號碼,但是沒有簡訊驗證;目前亞洲區域離我們比較近的地點,只有首爾、東京跟大阪。我自己是選東京,區域選擇後就不能轉換,可以根據自己的喜好(?)決定。另外申請後頁面明明說 15 分鐘就可以啟用,但我等了大概 12 小時才真正完成整個手續;如果有急用在線等可能要考慮一下~
操作介面算是淺顯易懂,主要會用到的大概是「運算 / 執行處理」:相當於 EC2/GCE,還有「網路 / 虛擬雲端網路」:網路防火牆相關設定。永久免費好像可以開 2 台最低規格的執行處理,目前我也只開 2 台所以不清楚。機器的等級是 1CPU, 1GB 記憶體,個人覺得比 AWS, GCP 要好,實際使用起來也有比較順。比較特別的是如果建立時使用 Ubuntu 20.04,裡面的 iptables 有特別的設定,所以即使網路防火牆有開還是會被作業系統自己的 iptables 擋掉,所以要自己手動清除 iptables 原本的設定。
目前用起來感覺還不錯,目前建立的執行處理也都有註明是「永久免費」;只是不確定 30 天後的情況如何,就先再觀察看看囉~
10/2 更新:
目前使用大概快 2 個月,永久免費方案給的蠻大方的,目前我運行 2 台 instance,規格開最低,不過使用起來還蠻順暢的。其中一台是用來做 SSH Tunnel,上班日都會連回家裡的 NAS 聽音樂;原本有點擔心流量爆表,但是目前為止還沒被收過錢!另外還給了一組固定 IP,我覺得整個就是佛心來著的~非常推薦拿來架一些小型 Side Project 或是個人使用的服務。感恩 Oracle,讚嘆 Oracle!
danielhuang030 發表在
痞客邦
留言(0)
人氣()
這幾天收到 Let's encrypt 的提醒網域認證即將過期的信件,覺得奇怪我不是有設定 crontab 自動更新嗎?後來搜尋了一下才發現,原來 Certbot 預設的 renew 在萬用字元 (wildcard) 的域名會失敗。因為我有透過 Cloudflare 做 DNS 管理,網路上建議透過外掛 certbot-dns-cloudflare 更新,以下是設定方式:
- 先到 Cloudflare > 右上角我的設定檔 > API Token > Global API Key > 檢視 取得 token
- 進入主機
# 建立目錄與檔案
sudo mkdir ~/certbot
danielhuang030 發表在
痞客邦
留言(0)
人氣()
前一陣子在研究 CI/CD,想到前公司是使用 GitLab 作為版本控管以及 CI/CD 的解決方案,那就來架一台試試看吧。現在要自架 GitLab 服務相當簡單,除了自己準備好環境即可一鍵安裝,使用 docker 快速建立也是個好選擇。以下分別以二種方式進行安裝,順便留個紀錄:
GCP
- 建立 Compute Engine,GitLab 服務本身算是蠻吃記憶體的,官方建議的配備是四核心 CPU 以及 4GB 以上的 RAM。我開了一台雙核 4GB 的機器個人使用沒有問題,再低可能會有跑不起來的問題,請選用 e2-medium (2 個 vCPU,4 GB 記憶體) 以上等級的規格
根據官方提供的安裝文件進行安裝,這邊以 ubuntu 為例
# 更新套件來源並安裝相關套件
danielhuang030 發表在
痞客邦
留言(0)
人氣()
最近入手一台新 NAS,因為內建 docker,自架了不少服務在上面。可惜家裡的使用社區網路,沒有對外的實體 IP;通常需要透過業者設定 Port Forwarding,才能從外部連回家裡的機器。致電客服要求申請,他們卻回覆目前已經沒有提供這個服務了;想換一家業者,但合約到期還要 3 個多月...萬念俱灰的情況下,突然想到 ngrok 這個第三方服務,提供 SSH Tunnel 技術,實現本機也可以對外的目的。既然有這種服務,那應該也會有開源的解決方法吧?找了一下果然有,而且還不少;我試用了其中的 antoniomika/sish, beyondcode/expose 不過自架的過程不太順利,server 端感覺有架起來,但 client 端連不過去~後來發現 frp,用 Go 撰寫提供執行檔馬上可用,而且還有中文文件可以查閱。利用 GCP 免費帳號建立的 Compute Engine 做為跳板,終於建立成功了!
下面紀錄一下建立的步驟:
1. 在有實際 IP 的 Compute Engine,防火牆要開 server 監聽的 port(9000) 與管理介面的 port(9999)
2. server 端以 ubuntu 為例:
-- 下載最新版的執行檔
danielhuang030 發表在
痞客邦
留言(0)
人氣()
CI/CD 在整個開發流程中算是最後的環節,如果公司大一些有 MIS/DevOps 部門,這一塊通常會有專業人士處理;工程師寫完程式後只要 merge master branch,理論上就會自動觸發 CI/CD。不過個人專案不比公司產品,不會特別花錢購買完整的服務不說,自己還要學習怎麼「兜」出 CI/CD 的處理流程。市面上有不少提供 CI/CD 服務的廠商,這邊選用的是 CircleCI,免費版提供每周 2500 的額度,以及單線程處理。額度的部分老實說我不是很懂他怎麼計算的,至少我目前還沒有遇到超額得情況?單線程處理對於個人專案來說絕對夠用,畢竟只有一個人開發嘛...(汗)
CircleCI 帳號的建立以及與 GitHub 的串接,這部分網路上已有不少前輩分享請自行 Google;這邊我會以個人專案 twitter-test 為例,直接說明 config.yml 的設定配置。以下是 CI/CD 大致的流程:
- 把程式碼 merge 到 GitHub 的 master branch,觸發 CircleCI
- 開始 build
- 透過 docker 建立環境,使用 CircleCI 專用的 .env 以及測試設定,進行單元測試與整合測試
danielhuang030 發表在
痞客邦
留言(0)
人氣()
偶然發現 AWS 有提供教育版免費試用的服務,稱為:AWS Educate。剛好手邊有個之前申請的美國 edu email,來試著申請看看吧!
- 點選「加入 AWS Educate」
- 選擇「Student」
- 填寫一些關於學校的資料,比較重要的是第一個選項「學校名稱」,在自動完成列表中的學校有跟 AWS 合作,如果透過這些學校完成申請,會拿到 $100 美金的額度;當然這部分會對應到後面填寫的 email。如果不是,則是 $30 的額度。另外最後還有 Promo Code,也會影響申請完成後獲得的額度。這部分我在網路上沒找到,所以最後只拿到 $30...(囧)
- 畢業月份是 6 月,年份請用今年+4,生日年份則是今年-18
danielhuang030 發表在
痞客邦
留言(0)
人氣()
- 安裝 docker/docker-compose
sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt install docker.io -y
sudo service docker start
danielhuang030 發表在
痞客邦
留言(0)
人氣()
- 安裝 node
# 可以先到 git 確認一下 node 最新版本
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs
- 安裝 laravel-echo-server
danielhuang030 發表在
痞客邦
留言(0)
人氣()
以往安裝 MySQL 在本機時,通常都會順便安裝 MySQL client 端程式,透過 mysqldump 建立備份很簡單。但如果是使用 docker 建立 MySQL,就無法直接在容器外備份,需要改用透過 docker 對內部下指令的方式處理。
# backup test_db 到 test_db_backup.sql
docker exec [CONTAINER] //usr/bin/mysqldump -u [USER] --password=[PASSWORD] --routines --triggers test_db > /home/user/test_db_backup.sql
請留意路徑開始的「//」一定要用雙斜線,[USER] 與 [PASSWORD] 請自行代入資料庫的使用者名稱與密碼,[CONTAINER] 請自行代入 container name。
另外除了備份 sql 檔案外,我還想要自動將備份的資料匯入到新資料庫中,這時候就要另外處理建立新資料庫,以及匯入的手續;這邊我把它寫成一個 shell script,並把資料庫改成變數傳入的方式,方便直接使用
danielhuang030 發表在
痞客邦
留言(0)
人氣()