← 開發筆記

往右一滑,讓 AI 告訴你在聽什麼——播放頁旁邊那一頁的設計想法

2026 年 9 月 19 日 · 一個很多人沒發現的功能,以及我們為什麼把它放在那裡
實際操作 — 播放中往右翻一頁 → 兩篇介紹 → 點一個追問(畫面文字為示意,自動循環)
正在播 Bill Evans Trio 的〈Waltz for Debby〉。播放頁只有封面、曲名、進度——沒有多餘的按鈕。 往右翻一頁。頁面底部的兩個小點是唯一的線索。 第一次翻到這首歌,App 用你的金鑰問一次 AI。 兩篇短文:先講演奏者,再講曲子。素材是檔案自己的 tag 與封面。 三個它猜你會想問的問題。 點一個,聊天從底部滑上來——問的還是這首歌,脈絡不會跑掉。 或是打自己的問題。同一個對話裡,它知道你還在聽這首。

它在哪裡、是什麼

在 Lossic iPhone 上播放任何一首歌,打開全螢幕播放頁,往右翻一頁。你會看到兩段文字:第一段介紹正在演奏的人(或樂團),第二段介紹這首曲子——背景、寫作年代、聽的時候可以注意什麼。段落底下有三個問題,是它猜你接下來最可能想問的;點任何一個,聊天視窗從底部滑上來,答案在幾秒後出現,你可以繼續問。

從上架到現在,我們收到不少「原來有這個」的回饋。這代表兩件事:功能本身有人喜歡,以及我們把它藏得太好。這篇筆記兩件事都談——它是怎麼想的,以及為什麼藏在那裡。

隱喻:唱片內頁

買 CD 的人有一個串流使用者沒有的儀式:拆封、抽出內頁、邊聽邊讀。誰演奏的、哪年錄的、製作人寫了什麼、這首曲子從哪裡來。串流把這張紙拿掉了——你得到一首歌的三行字:曲名、演出者、專輯。

Lossic 的目標用戶正是還在買 CD、還在 Bandcamp 付錢、還在收集現場錄音的人。他們是會讀內頁的人。所以這一頁的定位不是「AI 功能」,是把那張紙放回口袋——而且是為你手上這個檔案寫的那一張,不是平台為所有人寫的同一段簡介。

這也決定了它的語氣:一位懂音樂的朋友坐在旁邊,不是百科全書。三到五句,講重點,不確定就少講。

為什麼藏在右邊一頁,而不是一個按鈕

老實說,這是一個有代價的選擇,而這篇筆記本身就是代價的證明。

我們想保住播放頁的乾淨:封面、曲名、進度、三個按鍵。每多一顆按鈕,播放頁就少一分「就是在聽音樂」的感覺。而「翻到旁邊一頁」跟翻內頁的動作是同一個隱喻——它在那裡,你想看的時候翻過去,不想看它就不打擾你。

iOS 的分頁樣式在畫面底部留了兩個小點,那是唯一的線索。我們知道它不夠明顯;也知道如果放一顆「✨ AI」按鈕,發現率會高很多。我們還是選了乾淨。這不是最終答案——如果之後的回饋證明代價太高,我們會調整——但目前為止,我們寧可多寫一篇筆記,而不是多放一顆按鈕。

為什麼是兩篇短文,不是一篇

因為演奏者和作曲家經常不是同一個人,而且在我們的用戶的收藏裡,這是常態而不是例外。

我們自己 Drive 上有一張 Patrick Gallois 的長笛專輯:11 軌,9 位不同的作曲家,演奏者從頭到尾都是 Gallois。如果只寫一篇「關於這首歌」,它要嘛只講作曲家(那演奏者呢?你買的是他的演奏),要嘛混在一起講得都不深。所以拆成兩篇:第一篇專講演奏者——他是誰、以什麼聞名、哪個年代、什麼風格;第二篇專講曲子——背景、寫作動機、聽什麼。作曲家在第二篇裡。如果 tag 裡的 artist 看起來是一個樂團,第一篇就講樂團。

技術上,這兩篇是一次呼叫產生的,中間用一個標記分開。理由不只是省一半延遲和配額——兩篇出自同一次思考,才不會第一篇說他是冷派爵士、第二篇說這首是硬咆勃。

素材只有你檔案裡的 tag

這一頁不是拿曲名去網路上搜一段簡介貼過來。它給模型的是你這個檔案內嵌的 tag:曲名、演出者、專輯演出者、作曲家、專輯、年份。用 Gemini 時,封面圖也一起送——flash 系列是多模態的,而唱片封面上常有 tag 沒有的東西:唱片公司、版本、年代感。

這個選擇有兩個後果,一好一壞,都要說:

可選:Grounding with Google Search

用 Gemini 時,設定裡有一個開關:Grounding with Google Search。打開後,模型在寫這兩篇短文、回答追問之前,可以先查 Google 搜尋,把查到的內容當作依據。對 Lossic 的用戶,這帶來三個實際的好處:

它預設關閉,原因是兩個刻意的取捨。第一,我們希望「素材來自你的檔案」是預設行為,查網路應該是你主動要的,而不是默默發生的——開了之後,你的曲目 tag 會成為 Google 搜尋的查詢,這一步應該由你決定。第二,grounding 的請求比純生成慢一些、也算在你金鑰的配額裡。對大多數名盤,tag 加封面已經夠寫出像樣的內頁;grounding 是給你收藏裡那些「網路上幾乎沒人寫過」的碟準備的。開一次試試,你會知道自己的收藏需不需要它。

它用你的語言講,不管 tag 是什麼語言

一個實際踩到的問題:tag 是日文的專輯,模型會傾向用日文回答——因為它看到的「上下文」是日文。但讀者是你,你的語言是繁體中文。所以 prompt 裡有一條寫得很重的規則:整個回應只用讀者的語言,tag 是檔案的語言不是讀者的語言,不要跟著它走;專有名詞保持可辨認即可。

語言可以在設定裡選(跟隨系統、英文、繁中、簡中、日文、韓文)。快取是按語言分開存的——切換語言不會把另一個版本蓋掉,兩份都留著。

你的金鑰,你的 AI

Lossic 沒有內建 AI 額度。你到 Google AI Studio 或 OpenRouter 拿一把免費的 API 金鑰,貼進設定,就啟用了。金鑰存在 iOS 鑰匙圈(跟 Google Drive 的登入 token 同一個地方、同一個理由),App 直接呼叫供應商——中間沒有 Lossic 的伺服器。

這跟播放器對 Drive 的態度是同一件事:你的檔案、你的帳號、你的金鑰,我們只是那個把它們接起來的 app。如果我們內建額度,就得在中間放一台代理伺服器,你的曲目 tag 和封面會經過我們——那正是我們整個架構在避免的事。

預設模型是 gemini-flash-lite:夠快、夠便宜、寫三到五句綽綽有餘;Flash 一點就切。OpenRouter 那邊只給一個選項 openrouter/free,它是自動路由,每次挑一個當下免費的模型——我們試過維護一份「免費模型清單」,結果它比 app 的更新週期還快過期,所以不維護了。

代價很明確:多一步設定,而且「去申請 API 金鑰」對非開發者不是零門檻。沒有金鑰時這一頁會告訴你怎麼設,播放器其他一切照常——故事層是加分,不是門檻。

一首歌只問一次

第一次翻到某首歌的內頁,App 呼叫一次 AI,結果存到本機磁碟。之後再翻、重開 app、隔一個月再聽,讀的都是那一份,不會再打第二次。這既是省你的配額,也是讓體驗穩定——同一首歌不會今天講一套明天講另一套。

覺得寫得不好,右下角有重新生成的按鈕;設定裡也有一鍵清掉所有已生成的內容。清的是內容,不動金鑰和偏好。

追問:三個問題,和一個學到的教訓

兩篇短文的結尾,模型會順手給三個「好奇的聽眾最可能接著問」的問題——用你的語言、從你的角度問。點一個,聊天視窗從底部滑上來,問題已經送出去了。你也可以打自己的問題。

聊天有兩個刻意的限制。上下文有上限(最近 12 輪、6000 字),最新的訊息永遠保留,更早的靜默丟掉——免費模型在長對話上會退化,而且一段短文長度的回答就能吃掉不少 token。對話不存:關掉 app 就沒了。關於正在聽的這首歌的一段閒聊,本質上是即興的;值得留的是那兩篇短文,我們就只留那個。

一個真的踩到的設計教訓:第一版把聊天輸入框固定在內頁的底部。結果它正好落在分頁的翻頁手勢區——點輸入框,頁面翻回去的機率跟鍵盤跳出來一樣高。所以聊天搬進了一個獨立的 sheet,用一顆按鈕或點推薦問題打開。輸入框跟翻頁手勢不再共用同一塊螢幕。

它會說錯

會。每一篇短文底下都有一行小字:「由 AI 依你檔案的 tag 生成,可能有錯」。這不是免責聲明式的敷衍——是我們怎麼看這個功能的定位。

prompt 裡有一句:「不確定的事,寧可少說,不要編細節」。這降低了錯誤率,但不會歸零。所以請把它當成一位懂音樂的朋友的說法:大方向可信、細節值得查證,說錯了你會糾正他,不會因此不再跟他聊。

相對地,這個 app 裡另一類數字——播放速度——是實測的,不是生成的。那篇筆記裡每個毫秒都來自 log。兩種內容、兩種可信度,我們不想混在一起。

所以

下次在 Lossic 裡聽到一首讓你想知道更多的曲子,往右翻一頁。如果你還沒設金鑰,那一頁會告訴你怎麼做,五分鐘。

我們也想聽你的想法:兩篇短文夠不夠?三個問題猜得準嗎?藏在右邊一頁是對的嗎?寫信到 tautiu.dev+lossic@gmail.com。


動畫裡的文字是示意——那兩段介紹和那則回答是我們照著 prompt 的規格手寫的範例,不是某次真實生成的輸出。Bill Evans Trio、Village Vanguard 1961、LaFaro 的事實本身是對的。

你買下的音樂,值得比檔案管理器更好的家。