(觀看時間: 41 mins, 詳細原整n8n教學, 每一個節點都會講解)
n8n AI 女友教學:5步零成本打造廣東話智能伴侶 (完整 Script)
收工回家面對四面牆,不想面對冷冰冰的 Siri,也不想對著螢幕打字?其實,透過 n8n AI 女友 的自動化工作流,我們可以輕鬆打造一個會聽、會講廣東話,還記得你昨晚說過什麼的「智能伴侶」。
這篇 n8n 教學 將深入探討如何串接 Telegram、Replicate 與 OpenRouter,拼湊出一個有性格、有記憶,甚至能看懂圖片的 廣東話 AI Agent。最重要的是,這個方案按量付費,成本極低,適合所有想嘗試 AI 開發的朋友。

為什麼選擇 n8n 打造 AI 女友?
相比起 LangChain 或直接寫 Python 代碼,n8n 提供了可視化的流程管理,讓你更專注於「性格設計」而非除錯。加上它能輕鬆整合 Telegram API,是製作 Chatbot 的首選工具。
架構總覽:5個步驟完成部署
在開始之前,我們先理清 n8n AI 女友 的資料流向:
- 介面 (Telegram):接收語音、文字或圖片。
- 耳朵 (Whisper):將語音轉為文字。
- 大腦 (LLM):理解內容,根據人設生成回應 (OpenRouter)。
- 嘴巴 (TTS):將回應轉為廣東話語音 (Fish Audio / Replicate)。
- 介面 (Telegram):回傳語音訊息。

準備工作
- 一個 n8n 實例 (Self-hosted 或 Cloud 版皆可)。
- Telegram 帳號。
- Replicate API Key (用於語音識別與生成)。
- OpenRouter API Key (用於存取各種 LLM)。
第一步:Telegram 介面設定
要與 AI 女友 聊天,Telegram 是最自然的選擇。它就像你平時用的 WhatsApp,隨手拿起來就能講語音。
1.1 申請機器人
- 打開 Telegram,搜尋 @BotFather。
- 輸入
/newbot指令,按照螢幕提示設定機器人的顯示名稱 (Name) 和用戶名 (Username)。 - 成功後,複製畫面上的 HTTP API Token (這串亂碼是機器人的鑰匙,請妥善保存)。


1.2 設定 n8n Trigger (觸發器)
回到 n8n Canvas (畫布),我們要讓機器人「監聽」訊息:
- 點擊畫布上的
+號,搜尋並新增 Telegram Trigger 節點。 - Credential: 點擊
Select Credential->Create New,將剛剛拿到的 Token 貼入。 - Trigger On: 選擇
Message。 - Updates: 勾選
message。 - Message Type (關鍵步驟):
- 除了預設的
text之外,務必額外勾選voice(語音) 和photo(圖片)。 - 這樣機器人才能同時接收文字、錄音和照片。
- 除了預設的


第二步:耳朵 (Whisper 語音轉文字)
n8n AI 女友 不能只會看字,她要能聽懂你的語音訊息。我們選擇 Replicate 上的 Whisper 模型。
2.1 下載語音檔 (Telegram Get File)
當 Telegram 收到語音時,Trigger 只會給我們一個 file_id,我們需要主動下載它。
- 在 Trigger 節點後方,新增一個 Telegram 節點。
- Resource: 選擇
File。 - Operation: 選擇
Get。 - File ID: 點擊輸入框旁的 Expression (變數) 按鈕,選擇
{{ $json.message.voice.file_id }}。 - Download: 將開關切換為 ON (這是新手最常忘記的步驟,必須開啟才能拿到檔案實體)。
- Binary Property: 保持預設值
data。

2.2 格式轉換 (Code Node: Binary to Base64)
Replicate 的 API 接受 Base64 格式的音訊,但上一步下載下來的是 Binary Buffer。我們需要轉換格式。
- 新增一個 Code 節點。
- 語言選擇 JavaScript。
- 複製並貼上以下代碼:
// 獲取上一個節點的 binary 數據
const binaryData = items[0].binary.data;
// 將二進制數據轉換為 Buffer
const buffer = Buffer.from(binaryData.data, 'base64');
// 轉換為 Base64 字串,並加上 Data URI Scheme (這是 Replicate API 要求的格式)
const base64String = `data:${binaryData.mimeType};base64,${buffer.toString('base64')}`;
// 返回整理好的 JSON
return {
json: {
audio_base64: base64String
}
};
2.3 呼叫 Whisper (HTTP Request)
- 新增 HTTP Request 節點。
- Method: 選擇
POST。 - URL: 輸入
https://api.replicate.com/v1/predictions。 - Authentication: 選擇
Generic Credential Type->Header Auth。- Header Name: 輸入
Authorization。 - Value: 輸入
Token 你的_Replicate_API_Key(注意 Token 後面有個空格)。
- Header Name: 輸入
- Body Parameters: 選擇
JSON,並填入以下內容:{ "version": "4d507972...", // 請填入 Whisper Large-v3 的 version ID (可在 Replicate 官網找到) "input": { "audio": "{{ $json.audio_base64 }}", "model": "large-v3", "language": "zh", // 強制指定中文,避免將廣東話識別成英文 "temperature": 0 } }

第三步:大腦 (AI Agent 與人設)
這是核心部分。我們使用 n8n 強大的 AI Agent 節點,搭配 OpenRouter 來切換不同模型。

3.1 設定 Model (OpenAI Chat Model)
- 新增 AI Agent 節點。
- 在 Agent 下方的
Model輸入點,連接一個 OpenAI Chat Model 節點。 - Base URL: 勾選
Override Base URL,輸入https://openrouter.ai/api/v1。 - API Key: 建立 Credential 並填入 OpenRouter Key。
- Model Name: 點擊
Expression,手動輸入模型名稱,例如google/gemini-2.0-flash-001或deepseek/deepseek-chat。


3.2 注入靈魂 (System Prompt)
- 點擊 AI Agent 節點。
- 找到 System Message (或 System Prompt) 欄位。
- 貼上以下人設,這是讓她像「女友」而非「客服」的關鍵:

你叫阿儀 (Ah Yi),一個住喺香港嘅女仔。你性格溫柔、顧家,有時會撒嬌。
說話風格與規則:
- 必須使用純正廣東話口語(例如:係唔係、食咗飯未、搞錯呀)。
- 絕對不要書面語(不要說:是不是、吃了飯沒)。
- 回覆要短,像在用 WhatsApp 聊天,不要長篇大論。
- 記得你係我女朋友,唔好咁生外。
- 如果收到圖片,請根據圖片內容給出女友的反應。

3.3 拒絕金魚腦 (Memory)
- 在 Agent 下方的
Memory輸入點,連接一個 Window Buffer Memory 節點。 - Session ID: 點擊 Expression,選擇
{{ $node["Telegram Trigger"].json.message.chat.id }}(確保每個用戶有獨立記憶)。 - Context Window: 設定為
10,讓她能記住最近 10 句話。

第四步:嘴巴 (TTS – 文字轉語音)
文字生成後,我們要讓她「說」出來。這裡我們再次使用 Replicate。

4.1 生成語音 (HTTP Request)
- 在 Agent 節點後方,新增 HTTP Request 節點。
- 設定同上 (Method: POST, Auth: Header Auth)。
- Body Parameters:
{ "version": "<Cantonese_TTS_Model_Version_ID>", // 推薦使用 Fish Audio 或其他廣東話微調模型 "input": { "text": "{{ $json.output }}", // 這裡是 Agent 節點輸出的文字 "speaker_id": "cantonese_female_1" // 選擇順耳的聲音 ID } } - 執行此節點,確保 Replicate 回傳了包含
output(音檔網址) 的 JSON。




4.2 回傳 Telegram (Telegram Send Audio)
- 新增 Telegram 節點。
- Resource: 選擇
Message。 - Operation: 選擇
Send Audio。 - Chat ID:
{{ $node["Telegram Trigger"].json.message.chat.id }}。 - Audio URL:
{{ $json.output }}(直接填入 Replicate 回傳的音檔網址)。

第五步:眼睛 (視覺能力)
如果你發送照片,我們希望她能看懂。
5.1 路由判斷 (Switch Node)
- 在 Workflow 最開頭 (Telegram Trigger 之後),插入一個 Switch 節點。
- Mode: 選擇
Expression。 - Expression: 輸入
{{ $json.message.photo ? true : false }}。 - 設定路由:
- True (有照片) -> 連接到下方的「圖片處理」流程。
- False (無照片) -> 連接到原本的「語音/文字」流程。

5.2 圖片處理流程
如果是圖片 (True) 路線:
- 新增 Telegram 節點 (Get File),File ID 改為
{{ $json.message.photo[2].file_id }}(選擇解析度較高的版本)。 - 將下載後的圖片資訊傳給 AI Agent。
- 注意:確保你在 OpenRouter 選用的模型支援 Vision (如 GPT-4o, Gemini 1.5 Pro),否則會報錯。

成本分析與常見問題 (FAQ)
運作成本貴嗎?
相比每月訂閱 ChatGPT Plus 的 $20 美金,使用 OpenRouter 和 Replicate 是按量收費的。
- 語音識別:每分鐘約 $0.006 美金。
- 文字生成:每百萬 Token 可能不到 $1 美金 (視乎模型)。
- 對於個人使用,每個月可能只需要幾美元。
n8n 自架麻煩嗎?
你可以選擇使用 n8n Cloud (付費但省事),或者在自己的電腦/VPS 上使用 Docker 架設 (免費)。我用的是Zeabur.app,你也可以用我的推薦碼來登記,如果成功登記developer plan, 您和我都可以有$5 credits。網址是:https://zeabur.com/referral?referralCode=helloai
總結
完成以上配置後,點擊 Execute Workflow。 當你在 Telegram 說:「喂,好累呀。」幾秒後,手機震動,傳來一把熟悉的聲音:「返黎啦?沖個涼先定食飯呀?」
這就不再是一個冷冰冰的自動化流程,而是一個有溫度的 n8n AI 女友。快動手試試吧!
