今天早上,我讓 ChatGPT Work 搭配 GPT-6 Astra (Max) 完成了一件很棒的事情。我請它根據我的住址,規劃出從我家出發並能環繞一圈的 5 公里和 10 公里跑步路線,並要求它使用 OpenStreetMap (OSM) 資料。

經過 27 分鐘的運算,它精確地完成了我的要求,不僅提供了嵌入式的視覺化地圖,還能下載 GPX 和 GeoJSON 檔案。這就是它規劃出的 5 公里路線圖。

當我詢問它是如何規劃路線時,它回覆說:「我使用 Nominatim 定位地址,並透過 Overpass 下載當地的 OpenStreetMap 道路和路徑資料,然後在本地計算出環狀路線。」

令人沮喪的是,ChatGPT 的使用者介面中,我無法看到它實際執行的程式碼和詳細操作。我認為這種缺乏透明度的設計是一個反功能。

當我想到要索取它使用的 Python 程式碼時,ChatGPT 已經無法提供了。這似乎是因為對話串已被壓縮。我認為任何使用壓縮技術的 LLM 系統,都應該保留壓縮前的文字,並透過代理工具呼叫來提供這些文字,以避免這類問題發生。

至於地圖的顯示,則是使用了「視覺化技能」。它建立了一個名為 /workspace/el-granada-5k-share.html 的檔案,直接嵌入到 ChatGPT 的使用者介面中。

以下是該 HTML 檔案的開頭部分。其中,<script type="application/json"> 元素包含了渲染跑步路線和地圖所需的完整幾何資料,並透過 D3 函式庫進行繪製。

D3 函式庫是從「視覺化技能」中允許的 CDN 位置載入的。內容安全政策 (CSP) 僅允許 cdnjs.cloudflare.com、esm.sh、cdn.jsdelivr.net、unpkg.com、fonts.googleapis.com、fonts.gstatic.com 和 fonts.bunny.net 等外部資源,其他來源則會被靜默阻擋。