許願池的誕生現場,和一個晚上做出來的 LINE 對話製造機

為了把社群裡的三句話做成一張部落格配圖,我先「手刻」了一個假對話框(手是 AI 的);刻完才想通:這件事本身就該是一個工具。

LINE 對話製造機

這篇講的東西

誕生現場

許願池是怎麼來的?完整現場就是下面這段對話,發生在 LINE 的 C# 社群:

16:08 87%
C# Taiwan交流聚會(1947)
中年攻城屍
現在有AI 是有點想做side project 只是不知道要做什麼
下午3:42
LSa
中年攻城屍現在有AI 是有點想做side project 只是不知道要做什麼
~寫個sideproject 幫你想做甚麼sideproject~
下午4:04
已讀 1158 下午4:06
LSa~寫個sideproject 幫你想做甚麼sideproject~
做一個許願池發社群上給大家許願
小白++ 愛瓜 吃瓜 好吃瓜
欸 好耶
下午4:06
我要許願(x
下午4:06
然後許願池side project自動由ai寫
下午4:08

中年攻城屍丟了一句「現在有 AI,是有點想做 side project,只是不知道要做什麼」,底下聊開了。LSa 接了一記漂亮的迴旋:「~寫個 sideproject 幫你想做甚麼 sideproject~」。我看到的時候心想,那乾脆做一個許願池,讓大家把想要的東西丟進來;小白++ 再補一刀:「然後許願池 side project 自動由 ai 寫」。

許願池就這樣誕生了。謝啦,三位。它後來怎麼設計、怎麼被自己收到的願望反過來改進,寫在設計篇,這篇不重複。

為了一張配圖

這幾天我把部落格改版,About 頁想放上面這段誕生現場。直接截圖不行:聊天室裡有其他人的訊息和頭像,馬賽克塗完就不能看了。所以我決定「手刻」一個假的 LINE 對話框,泡泡、暱稱、時間戳、引用回覆,一格一格刻。

說「手刻」其實不太老實:刻的是 AI,我在旁邊出嘴,「引用的灰框字再小一點」「時間戳要貼在泡泡右下」。這年頭的手工藝大概就是這樣了,手是 AI 的,龜毛是自己的。

刻到引用回覆的灰色小框時我想通了一件事:這個假對話框,值得變成一個誰都能用的工具。做教學的、寫文章的、做行銷素材的,誰沒有「想放一段對話示意圖,又不能截自己聊天室」的時候?

當天晚上它就上線了。

一個晚上,幾十輪驗收

流程還是那套甲方思維:我開規格、下發包、做驗收,程式是 AI 寫的。第一版半小時就能用,剩下的整個晚上都在當一個囉唆的甲方:

每一條都是看著畫面挑出來的毛病。AI 寫程式很快,但「像不像」這件事,還是要人來拍板。

三個坑,工程向的記錄

匯出的圖跟預覽不一樣。 一開始用 html2canvas 把畫面轉 PNG,結果引用回覆的名字消失、浮水印畫到畫布外面。追下去發現兩個雷:它畫不出 inline-block 元素裡 block 子元素的直接文字;它回傳的 canvas 還殘留著 scale 變換,你以為畫在右下角,其實畫到畫布外面去了。最後整個換掉,改用 SVG foreignObject 讓瀏覽器自己渲染,所見即所得,html2canvas 降級成 Safari 的備援。

PWA 改版要重整兩次才生效。 Service Worker cache-first 的老問題:使用者手上永遠是上一版。頁面導航改成 network-first 之後,改版一次重整就生效,離線時才退回快取。

分享連結會吃爆免費額度。 分享功能一開始把整段對話塞進網址的 hash,連結長到四萬字元。改用短網址之後又想起 Cloudflare KV 免費版每天只能寫一千次(iPAS 模擬考站撞過這面牆)。這次直接寫進 D1:不開新庫(免費帳號上限十個,我已經用到八個),在既有的庫裡加一張表;短碼用內容的 SHA-256 雜湊,同一段對話永遠是同一個碼,重複分享連寫入都省了。

人和 AI 用同一份腳本

整個工具的狀態就是一份 JSON:人物、頭像、訊息、手機設定,全部在裡面。人用滑鼠點著改,AI 用 repo 裡附的 skill 直接生成腳本。這篇文章裡那格會動的對話框,就是我叫 AI 產腳本、工具吐出來的嵌入碼,原封不動貼進 Markdown。

所以分享有三種形狀:匯出 PNG(跟預覽像素一致)、嵌入 HTML(貼進任何網頁就能顯示)、分享短連結(對方打開就是同一段對話,可以接手繼續改)。

認真的防詐聲明

這工具僅供創作示意。匯出預設帶「示意圖」浮水印,可以手動關,但關之前請想一下為什麼要關。台灣的 LINE 詐騙已經夠猖獗了:做教學、寫文章配圖、還原情境,都歡迎;拿去詐騙、毀謗、偽造證據的,請自重。repo 裡給 AI 用的 skill 也寫明了同一條界線。

之後

工具已經收進行銷工具箱。MIT 開源,想加深色佈景、表情回應,或整套搬去做別的通訊軟體的樣式,直接 fork 拿去改,它就是你的了。

以前靈感來的時候,有時候會寫個備忘,然後,就被忘了。

一句話總結這一天:靈感的保存期限很短,現在的 AI 工具鏈,短到可以在它被忘以前,就把東西做出來。