選擇處理方式。
Mac:在設定 → undefined設定提供商,或在本機 AI管理下載的模型。iPhone/iPad:在設定選擇undefined、本機 AI Beta或Mac 本機 AI。
設定 Mac、iPhone、iPad 和 Apple Watch 上的聊天,連接 Mac 本機 AI,或使用相容的自訂伺服器。
了解 Apple Watch 的 HRV 量度結果,以及 WatchMuse 如何根據個人基線估算壓力。你也可以用示例數值試算。
雲端 AI 需要網絡,部分服務需要 API 金鑰。已下載且支援的模型可在執行它的裝置上運算,不請求雲端 AI。使用 Mac 本機 AI 時,仍需能連接 Mac。下載模型需要網絡。
在 Mac、iPhone 和 iPad 使用基本聊天功能,不需要 Apple Watch。Mac 不包含 Mood 和天氣。
Mac:在設定 → undefined設定提供商,或在本機 AI管理下載的模型。iPhone/iPad:在設定選擇undefined、本機 AI Beta或Mac 本機 AI。
只填寫所選服務需要的資料。Mac 自訂伺服器使用相容的 HTTPS 地址,不需要金鑰或模型欄位。內置千問是獨立的網上服務,設有用量限制。
在聊天中選好服務,先傳送文字。附圖需要服務與模型支援;Mac 裝置連線目前只支援文字。
Mac 功能預覽 · 已對照 2026 年 10 月 4 日的現行程式碼,不代表 Mac 版本已在 TestFlight 開放。
模型下載並在 Mac 執行。iPhone 或 iPad 將本次請求,以及聊天設定包含的上下文交給 Mac;Mac 產生回答後傳回。模型檔案不會因此下載到其他裝置。
使用同一區域網絡,或你已正確設定、可存取 Mac 的私人 VPN。WatchMuse 不會自動提供公網中轉。裝置連線採用經認證的 TCP/TLS,不是 HTTP API。
配對碼包含地址、連接埠和認證金鑰,請像密碼一樣保管,只交給自己的裝置。一般配對毋須手動填寫連接埠。
修改連接埠前,先在 Mac 關閉裝置連線,儲存 1024–65535 範圍內的連接埠,再重新開啟。複製新配對碼,為每台裝置重新配對。
不要將連接埠轉發到公網,也不要關閉認證或加密。若私人 VPN 無法解析 .local 名稱,可在Mac 連線的進階連線設定填寫可存取的 Mac 私人網絡地址。
登入同一 Apple ID 不代表已建立連線。iCloud 聊天同步與 Mac AI 配對是兩回事。
Mac 需要開機、保持喚醒,並執行 WatchMuse。關閉視窗後,裝置連線仍可在選單列運作;完全退出 App 會停止服務。
App 會記住裝置存取開關,下次開啟時嘗試恢復服務。退出後沒有獨立背景服務繼續執行。重新啟動或啟動失敗後,請再次檢查就緒狀態。
這條連線目前只處理文字,包括按聊天設定整理的文字上下文。Mac 本機可處理圖片,不代表遠端連線可傳送圖片。連線失敗不會自動改用雲端 AI。
每次只執行一個本機生成工作。下載、驗證或其他本機回答可能令 Mac 忙碌;新請求可能被拒絕,而不是排隊。耗時過長的請求亦會逾時。
速度取決於硬件、模型大小、可用記憶體和目前負載。記憶體建議不是流暢運行保證;資源不足時,先試較小的支援模型。
Mac 的設定 → 一般 → 透過 iCloud 同步聊天是可選功能,使用共享聊天封存。其他裝置亦需開啟聊天備份;Mac 版本必須具備有效簽署、iCloud 能力及可用的 iCloud 帳戶。
封存包含已儲存的訊息,以及隨訊息保存的附件、引用和文件擷取文字。不包含模型檔案、API 金鑰或 Mac 配對金鑰,這些需要在各裝置分別設定。
關閉同步會停止後續同步,不會自動刪除已有雲端資料。聊天不保證即時同步,也不能代替裝置到 Mac 的網絡連線。
先接受 App 使用條款,開啟裝置連線並查看狀態。監聽服務就緒後才會出現配對碼。啟動失敗時,檢查本機網絡權限、連接埠佔用和鑰匙圈存取。簽署或應用程式身份改變可能影響舊憑證的讀取,請使用預期的已簽署版本。
配對只儲存連線資料,並非網絡測試。確認 Mac 已喚醒、App 正在執行、服務已就緒,且兩端在區域網絡或私人 VPN 上互通。檢查該 App 的本機網絡及防火牆權限,不要關閉整個防火牆。重新核對地址和連接埠;若已改變,請用新配對碼配對。
喚醒 Mac,重新開啟 WatchMuse,等裝置服務就緒後再試。關閉視窗和完全退出 App 不同。
關閉裝置連線、儲存新連接埠、重新開啟,再用新配對碼為每台裝置配對。舊配對碼仍包含舊連接埠。
等下載、驗證和生成工作完成。確認目前 LocalAI 目錄包含全部所需檔案,並已接受適用的模型條款,再按使用此模型。請按錯誤提示排查;下載完成不等於已切換。
先確認開啟的是預期簽署和應用程式身份的 App。不同識別碼可能使用不同容器、偏好和鑰匙圈權限。在 Mac 的設定 → 一般,現行程式碼提供「Recover Previous Data」「Import Downloaded Models…」及「Import Previous Settings…」,入口可能仍顯示英文。選擇舊 LocalAI 資料夾或偏好檔案;模型會驗證並複製,不會移走原檔。密碼和權限不會匯入,匯入設定後需重新啟動。不要先刪除舊資料。
等候目前的本機回答、下載或驗證完成,避免多台裝置連續重試。若請求逾時,改用簡短問題或較小模型。
先在已配對的 iPhone 測試文字提問,確認 Mac 配對和手錶存取開關。再在 Watch 重新整理模型資料,選擇 Mac,或跟隨 iPhone 的 Mac 路徑。保持 iPhone 在附近;背景轉送中斷時,重新開啟它上面的 WatchMuse。毋須向手錶下載模型。
以下是雲端服務的設定方式,本機 AI 請參閱上方指南。只有需要金鑰的服務才須填寫。模型可能因平台和版本不同而改變,請以 App 內清單為準。
| AI 服務 | 設定方法 | App 預設模型 / 可選模型 |
|---|---|---|
| 千問 AI Qwen AI | 為 WatchMuse 提供的網上服務,有獨立的存取條件與用量限制。與可下載的千問模型是兩回事。 | 由 WatchMuse 伺服器決定。 |
| OpenAI | 按照 OpenAI 官方指南建立 API 密鑰,再輸入至 App。OpenAI 密鑰指南 | 請查看 App 內的模型選項;Mac 與流動裝置的預設值可能不同。 |
| Gemini | 在 Google AI Studio 建立 API 密鑰,再輸入至 App。Gemini 密鑰指南 | 請查看 App 內的模型選項;Mac 與流動裝置的預設值可能不同。 |
| DeepSeek | 在 DeepSeek 開放平台申請 API 密鑰,再輸入至 App。DeepSeek 密鑰指南 | 請查看 App 內的模型選項;Mac 與流動裝置的預設值可能不同。 |
| Claude | 在 Claude Console 建立 API 密鑰,再輸入至 App。Claude 密鑰指南 | 請查看 App 內的模型選項;Mac 與流動裝置的預設值可能不同。 |
| Perplexity Sonar | 在 Perplexity API Console 建立 API 密鑰,再輸入至 App。Sonar 密鑰指南 | 請查看 App 內的模型選項;Mac 與流動裝置的預設值可能不同。 |
| OpenRouter | 建立一個 OpenRouter API 密鑰,再從 App 的模型列表選擇模型,毋須為其他平台逐一加入密鑰。OpenRouter 密鑰指南 | 請查看 App 內的模型選項;Mac 與流動裝置的預設值可能不同。 |
| 自訂伺服器 | 輸入完整的 HTTPS 接口 URL。該接口必須接收 App 發出的請求,並傳回指定格式的回應,一般網頁地址無法使用。查看接口格式 | 由你自己的伺服器決定。 |
模型是否可用、是否支援圖片,以及用量限制和收費,視乎所選服務、模型和帳戶而定。請以 App 的模型列表及服務供應商的最新文件為準。密鑰只需輸入至 App,本網站不會要求你提交 API 密鑰。
APPLE WATCH
問題排解點開問題,快速找到解決方法。
請在「設定 → AI 與聊天」中保持「回覆通知」開啟。網絡請求和背景工作能持續多久由 watchOS 決定;App 被暫停或終止後,無法保證每個需時較長的請求都能完成。重新開啟對話,可查看已儲存的內容。
請為 WatchMuse 開啟定位服務,再試一次「更新目前位置」。Apple 天氣暫時無法使用時,如已開啟後備服務,WatchMuse 可改用 Open-Meteo。你也可以手動輸入城市。
請允許讀取健康資料,並確認 Apple Watch 最近有記錄 HRV。WatchMuse 讀取的是 Apple Watch 已儲存的最新量度結果,無法強制進行新的 HRV 量度。身心狀態分級僅供參考,並非醫療診斷。
安裝或更新後,先開啟一次 WatchMuse,確認相關的心情、壓力或天氣功能已開啟,再等待 watchOS 重新整理時間軸。如有需要,可從錶面移除該複雜功能後重新加入。
請在 watchOS 設定檢查通知權限,並確認 WatchMuse 內對應的提醒已開啟。睡眠保護可能會主動暫停心情提醒;watchOS 亦可能為節省電量而延後背景工作。
透過一個相容的 HTTPS 接口,WatchMuse 即可連接 Ollama、自行託管的模型或雲端模型。你的伺服器負責將 WatchMuse 的簡單請求轉換為模型所需的格式。
使用相容的 HTTPS 接口。Mac 的這個選項毋須填寫 API Key 或選擇模型,由伺服器決定模型。它與 Mac 裝置連線並非同一功能。
請輸入接口本身的 URL,而非 Ollama 控制台或模型網頁的地址。WatchMuse 以 UTF-8 編碼的 JSON 傳送 HTTP POST 請求,問題放在 message 內。未有附圖時,伺服器應同時接受圖片欄位為 null 或未提供的情況。
接口必須在請求逾時前傳回成功的 2xx 狀態碼、Content-Type: application/json,以及一個非空的 reply 字串。
{
"message": "Hello",
"imageBase64": null,
"mimeType": null
}
{
"reply": "Hello from your model."
}
在支援附圖的聊天介面,選擇圖片並輸入問題即可,App 會處理編碼。不要把一長串 Base64 貼到一般聊天輸入框內。以下說明供開發或測試自訂伺服器接口時使用。
Base64 將圖片檔案的二進位資料轉成文字,方便放入 JSON;它不是圖片網址,也不是檔案路徑。
{
"message": "這張圖片裏有甚麼?",
"imageBase64": "REPLACE_WITH_FULL_BASE64",
"mimeType": "image/jpeg"
}REPLACE_WITH_FULL_BASE64 是佔位文字,傳送前必須換成圖片的完整 Base64。不要直接傳送這段佔位文字。
以下指令只讀取本機圖片並輸出編碼,不會上傳檔案。將路徑換成自己的圖片路徑,再把輸出填入 imageBase64。
base64 -i "/path/to/photo.jpg" | tr -d '\r\n'[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\photo.jpg"))下方 Ollama 閘道中的 qwen2.5 是文字模型範例。測試圖片時,需改用已安裝並支援圖片輸入的模型。 Ollama 圖片輸入文件 ↗
Base64 並非加密。請使用 HTTPS;私人圖片建議在本機編碼,不要上傳至不可信的線上轉換網站。
curl -X POST "https://your-domain.example/watch-ai" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"message": "Reply with the word ready.",
"imageBase64": null,
"mimeType": null
}'
{ "reply": "ready" }
import express from "express";
const app = express();
app.use(express.json({ limit: "20mb" }));
app.post("/watch-ai", async (request, response) => {
const { message, imageBase64, mimeType } = request.body ?? {};
if (typeof message !== "string" || !message.trim()) {
return response.status(400).json({ error: "message is required" });
}
const userMessage = { role: "user", content: message };
if (imageBase64 && mimeType?.startsWith("image/")) {
userMessage.images = [imageBase64];
}
try {
const ollamaResponse = await fetch("http://127.0.0.1:11434/api/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "qwen2.5",
messages: [userMessage],
stream: false
})
});
if (!ollamaResponse.ok) {
return response.status(502).json({ error: "Model request failed" });
}
const result = await ollamaResponse.json();
const reply = result?.message?.content?.trim();
if (!reply) {
return response.status(502).json({ error: "Model returned no answer" });
}
return response.json({ reply });
} catch {
return response.status(503).json({ error: "Model is unavailable" });
}
});
app.listen(3000, "127.0.0.1");
請提供 App 版本、裝置、系統版本、所選 AI 方式和完整錯誤訊息。連接 Mac 時,也請說明服務是否顯示已就緒。不要傳送配對碼、金鑰或私人對話內容。
[email protected]