絕境長城之外:以 Firestore vector search 打造低成本、高效的雲端 RAG 應用
RAG(Retrieval Augmented Generation) 是一套 AI framework,能夠在不需要重新訓練 LLM 的前提下,讓開發者得以新增其他的外部資訊,以這些新增的資訊來改善 LLM 回答的精準度。在 2026 的今天已經是一項廣為人知的技術了。
RAG(Retrieval Augmented Generation) 是一套 AI framework,能夠在不需要重新訓練 LLM 的前提下,讓開發者得以新增其他的外部資訊,以這些新增的資訊來改善 LLM 回答的精準度。在 2026 的今天已經是一項廣為人知的技術了。
GitHub notification 對開發者來說是一向很方便的工具,可以用來追蹤 issue、pull request 和提及 (mention)。但某天我的通知標記忽然就這麼卡住了,即使已讀了所有內容也他還是非常頑固的卡在那裡,在又拖了幾個月之後我才終於花了點時間研究發生了什麼事。
Python 的效能瓶頸在幾年前一直為人詬病,
但在開發者的努力之下,Python 3.4 開始出現了 Asyncio 可以在特定情境下提升效能,
到了 Python 3.13 更出現了可選擇性關閉 GIL 的 Free-threaded (PEP-703) 設計,
結合過去的 Multiprocessing 和 Multithreading,
我整理了一下這三項技術適合的原理、差異和使用情境做了幾篇紀錄。
這一篇先簡單介紹三者的基本概念和適用情境。
幾個月前用 rsync 從 Macbook 備份資料到 NAS 上的時候出現了點問題,
rsync 會看似正常的在螢幕上跑一陣子然後卡死不動,
從螢幕輸出會看到他原本一邊同步一邊在吐正在同步中的檔案,
今天遇到一個問題,
安裝過 nvm 後安裝 global package 的路徑就被改變了,
導致想要移除之前安裝過的 global package 時沒辦法直接用 npm uninstall -g 移除。
怎麼發現這件事的呢?
很久以前我在 global 裝過一個 package 可以直接在 terminal 呼叫 command 執行,