[哈爸筆記] 讓 AI 擁有地理動向的靈魂:智慧行車導遊兩日開發實錄
最近兩天,我跟我的 AI 夥伴 (Antigravity) 泡在 Travel-Advisor-HUD 這個專案裡。目標很單純:讓我的行車助理不再只是「唸出路名」,而是像個真正懂我的「私人導遊」。 在兩天的密集對話中,我們經歷了幾次關鍵的「卡關」與「破繭而出」,這幾個點我覺得是開發地理感知型 AI (Geographic AI) 最迷人的地方。 🚀 什麼是 Travel Advisor HUD? 這是一個跨裝置的行車助理系統:由 Mac 負責背景運算與大腦邏輯,iPad 則作為沈浸式視覺看板 (HUD)。它能感知你的位置、速度與航向,並結合你過去在 WalkGIS 筆記中的內容,由 Gemini 生成具備人文厚度的即時導覽。 🧩 關鍵卡關與突破 1. 沉重的 Geopandas 與「資料主權」的執念 一開始,我們想用 Python 的 Geopandas 來處理鄉鎮邊界 (SHP) 的空間對位。但在路測邏輯中,Geopandas 顯得過於笨重,且我有一個堅持:「資料主權」。 我不想為了讓 AI 讀數據,就把我珍貴的 walkgis.db (私有筆記) 或內政部的圖資檔案搬來搬去、轉檔轉去。 突破點:我們轉向了 SpatiaLite (SQLite 的空間外掛)。 心得:透過 ATTACH DATABASE 直接掛載原始 DB,並用 VirtualShape 虛擬映射 SHP 檔案。資料「原地不動」,但查詢卻是極速的 SQL 指令。這讓「資料主權」與「運算效能」在這一層完美的對位了。 2. 從「歡迎」到「盤點」的內容層次 原先的導覽很死板:進入新縣市就唸一段 Wiki 簡介。但開車的人真正需要的是:「這裡有沒有我以前記過的東西?」 卡關:AI 雖然強筆強大,但如果你不給它具體的「本地上下文」,它只會說些漂亮但空泛的廢話。 突破點:「行政區點位盤點 (Township Inventory)」機制。 心得:在跨越邊界的瞬間,系統自動在背景先發動一次空間點名,把該鄉鎮內所有關於我的私有筆記 POI 抓出來,做成摘要餵給 Gemini。當 AI 說出:「歡迎來到橫山,這裡有您之前筆記過的內灣車站喔…」時,那種「它真的懂我」的導覽感才算真正建立。 3. Hammerspoon 的定時器與動態設定 Hammerspoon 雖然穩定,但預設的定時器是靜態的。如果我在開車中想調整檢查頻率(比如從 5 分鐘改成 1 分鐘),以往我得停下車,打開 Mac、改代碼、Reload Config。 ...