iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
自我挑戰組

與 AI 共舞:打造更高效的日常系列 第 24

探索 ChatGPT 4o with Canvas:從撰寫爬蟲到創作新體驗

  • 分享至 

  • xImage
  •  

前言

🤖 今天,我想分享我使用 OpenAI 最新推出的 ChatGPT 4o with Canvas 的經驗,以及如何在這個過程中嘗試一些新的技術和功能。這段經驗讓我深入了解這款新工具的💪功能,不僅可以幫助我更高效地撰寫💻程式碼,也在創作和程式開發上給我提供了全新的👀視角,並激發了我一些創新的技術💡想法和應用點子。我發現,ChatGPT 4o with Canvas 的互動性非常高,能夠根據我的需求靈活調整和改進程式碼,同時在整個過程中持續為我提供有用的💡建議和🔄反饋,這對我的學習和探索過程帶來了巨大的幫助。總的來說,這次使用的體驗非常令人印象深刻,讓我在各個方面都受益良多。

暫時擱置 Spring AI 的原因

🕒 今天,我選擇暫時擱置深入研究 Spring AI,主要是因為目前缺乏足夠的💪動力。曾經考慮過利用 Spring AI 開發🤖聊天機器人,並將其串接至 Telegram 或 LINE 來協助我的📆日常工作,但考量到目前 ChatGPT 已經非常強大,我開始反思這樣做是否真的必要。特別是 ChatGPT 進階的🗣️語音模型,讓我能夠像與真人一樣進行即時的💬對話。除了在檢索強化生成(RAG)和知識庫的應用之外,ChatGPT 幾乎在各個領域中都有出色的✨表現。因此,我決定把精力投入到探索新的🔧技術上。

靈感來源:HackerCat 的分享

這次的💡靈感來自於 HackerCat 在 📘 Facebook 上的分享。他提到,某次與朋友討論「包養」這個話題時,他隨意在 🔍 Google 上搜尋了一些相關網站,結果發現某個網站存在明顯的🔐資安問題:未登入的情況下,可以預覽部分用戶的資料,而且這些用戶資料的網址是可預測的,意味著可以大量列舉用戶資料。

更令人驚訝的是,這些用戶上傳的照片在網站上顯示為模糊,但這種模糊效果其實是前端處理的。如果直接取得原始圖片,便能看到未經處理的內容。🐱 HackerCat 花了不到兩個小時便發現了這個漏洞,並利用🕷️爬蟲列舉了數萬個會員,下載了數千張圖片。

探索 ChatGPT 4o with Canvas

受到這次分享的啟發,我決定找出這個🌐網站,並利用 ChatGPT 4o with Canvas 撰寫一個🕷️爬蟲腳本,來分析這些公開的📂資料,進一步了解其潛在的🔐資安問題。

ChatGPT 4o with Canvas 是什麼?

🤖 ChatGPT 4o with Canvas 是 OpenAI 最新的✍️寫作與💻程式開發工具,相當於在 ChatGPT 中加入了一個強大的🛠️編輯器。對於✍️寫作,它能夠提供💡建議、🔄反饋,並協助調整文章的長度和閱讀難度。例如,可以將文章從👶小學生的水平提升到🎓研究生專業級別,或是檢查語法、清晰度和一致性。此外,它還可以添加😀 Emoji 來增加趣味性

在💻程式開發方面,Canvas 讓你可以反覆迭代修改程式碼,其功能包括:

  • 📝程式碼審查:根據現有的程式碼提供改進建議。
  • 🪵自動插入日誌:幫助除錯。
  • 💬自動加上註解:幫助理解程式碼的運作。
  • ❌錯誤檢測與修正:自動找出並修正錯誤。
  • 🌐跨語言轉換:將程式碼改寫為其他程式語言,例如從🐍 Python 轉換成 💛 JavaScript 或 ☕ Java。

這些功能均基於 GPT-4o 模型,現已向 ChatGPT Plus 和 ChatGPT Team 用戶開放使用。

實踐過程:撰寫爬蟲腳本

我開始請 🤖 ChatGPT 4o with Canvas 撰寫一個 🐍 Python 🕷️ 爬蟲,目標是列舉該🌐網站的公開會員資料簡介。起初,我以為用戶的編號是從 1️⃣ 開始,但經過測試發現實際是從 🔟000 開始。在 ChatGPT 4o with Canvas 的幫助下,它迅速生成了初步的腳本,使用了 requestsBeautifulSoup4,並加入了隨機 1-3 秒的休眠時間,以避免對伺服器造成過大負擔。

接下來,我設置了三種不同的情境給 🤖 ChatGPT:

  1. 用戶設置了隱私保護,無法取得資料。
  2. 用戶資料已移除,無法取得資料。
  3. 成功取得用戶資料的情況。

我希望它能將用戶資料儲存為 📁 JSON,並將📸圖片下載到本地,檔案名稱以用戶的🆔命名。ChatGPT 4o with Canvas 很快生成了腳本,但初始版本有些問題。它使用了 BeautifulSoup.find 去解析一個 class,但該 class 有三個匹配的元素,分別代表不同的資訊。

我告訴它,第一個匹配的元素應處理其中的 📋 row,將其視為🔑鍵值對組合作為元資料;第二個匹配的元素是用戶的📝自我介紹;第三個匹配的元素則是用戶理想的❤️約會對象描述。經過這些改進後,程式運行得更加順利,並加入了中斷續跑的功能,每次處理完一個編號就會將進度儲存到 📄 progress.txt

當我解析了約一兩千筆資料後,感覺效率有些慢,於是請 🤖 ChatGPT 4o with Canvas 幫我實現多執行緒,開啟 8️⃣ 個執行緒,並處理鎖🔒機制。它也迅速進行了相應的修改,現在這個🕷️爬蟲運行得非常順暢。值得一提的是,整個程式我沒有手動修改任何一行程式碼,全部都是由 ChatGPT 4o with Canvas 自動生成的

https://ithelp.ithome.com.tw/upload/images/20241004/20168288OrcimZH6Jv.png

使用 ChatGPT 4o with Canvas 的體驗

透過這次的實踐,我對 🤖 ChatGPT 4o with Canvas 有了更深入的了解。它在撰寫小型程式時非常實用,能夠快速生成可用的💻程式碼,並透過互動式的方式進行優化。它能即時提供💡建議,並根據我的需求進行調整,讓程式碼變得更為精簡且易於維護。尤其是在一些重複性高、需要快速迭代的自動化腳本方面,它展現了很高的效率。然而,對於大型專案,考慮到上下文的處理複雜性,感覺它可能還是有一些局限性。大型專案通常需要更嚴謹的結構設計和多模組之間的協作,這些方面目前還難以完全依賴 ChatGPT。因此,我目前將它定位為撰寫自動化流程腳本和快速開發原型的輔助工具

此外,我也試用了它的💻程式碼審查功能來檢查程式碼需要改進的地方。這個功能不僅能指出明顯的❌錯誤,還能建議一些最佳實踐,讓程式碼的可讀性和效率得到提升。由於程式碼本來就是 ChatGPT 4o with Canvas 幫我撰寫的,這也算是一種「自我驗證」,而這種自我審查過程中,我也學到了不少編程的好習慣和改進技巧。

未來展望

這次的經驗讓我見識到了 🤖 ChatGPT 4o with Canvas 的💪功能,不僅提升了開發效率,例如在撰寫🕷️爬蟲腳本時顯著縮短了🕒開發時間,甚至連這篇文章的內容,也是在 ChatGPT 4o with Canvas 的幫助下進行大量的✍️修飾與✨潤色。這樣的過程讓我更加熟悉如何利用這些工具來提升創作品質和效率📈。

接下來,受到 Will 保哥的啟發,我計劃明日主題為研究如何使用 🤖 ChatGPT 來練習英文對話,作為 Speak App 外的第二選擇。我的想法是設置日常生活場景來進行模擬對話,並且針對一些特定情境練習詞彙和表達方式,例如在商店🛍️購物、訂餐廳🍽️或者參加會議📅等場景。此外,我希望 ChatGPT 能幫助糾正語法錯誤❌,並提供具體的改進建議💡,以便更快提高我的英文口語和寫作能力,最終達到能夠流暢交流的水平🌟。這些模擬對話和反饋將能極大地提高我應對不同情境的語言能力,也讓我更有信心應對現實中的英語挑戰💬。

🙏 感謝大家的閱讀,期待在未來能與各位分享更多的技術心得!


上一篇
Spring AI 應用解析:探索 Naive RAG 的核心流程與基本實作
下一篇
利用 ChatGPT AVM 提升英語能力:實用技巧與心得分享
系列文
與 AI 共舞:打造更高效的日常30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言