在昨天的 Day 19 中,我們成功實現了 LINE 語音訊息自動轉文字(STT),讓使用者能透過「口述」無摩擦地發布任務。今天我們要繼續將多模態(Multimodal)輸入層推向極致——導入視覺圖像辨識(Vision / OCR)!
在日常工作與生活中,待辦事項常常散落於手寫筆記本、會議白板、紙本發票,或是隨手截圖的通知畫面。今天我們要透過 n8n 接收 LINE 傳來的圖片,並串接 OpenAI GPT-4o Vision API 進行結構化文字與意圖萃取,實現「拍下白板或筆記,自動提煉並建立 Notion/Google Calendar 任務」的全自動管線!
message.type == "image"。{{ $json.body.events[0].message.id }}
{{ $json.body.events[0].replyToken }}
在 n8n 中新增 HTTP Request 節點,下載圖片二進位檔案:
Method:GET
URL:[https://api-data.line.me/v2/bot/message/](https://api-data.line.me/v2/bot/message/){{ $json.body.events[0].message.id }}/content
Headers:Authorization: Bearer <LINE Access Channel Token>
Response Format:選擇 File / Binary Data。
使用 n8n 的 Code 節點或內建工具,將圖片 Binary Data 轉碼為 base64 字串,準備餵給 Vision API。
HTTP Request 節點,呼叫 OpenAI Chat Completions 端點:POST
[https://api.openai.com/v1/chat/completions](https://api.openai.com/v1/chat/completions)
Authorization: Bearer <OpenAI API Key>
{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "請辨識這張圖片中的手寫筆記或文字內容,提取出待辦事項清單。請僅輸出標準 JSON 格式:[{\"task\": \"任務名稱\", \"priority\": \"High|Medium|Low\", \"time\": \"ISO時間或空字串\", \"has_exact_time\": true|false}]"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,{{ $json.base64Image }}"
}
}
]
}
]
}
📸 *圖片視覺辨識完成!*
✅ *已自動提取並建立 2 筆待辦任務*:
1. 📋 購買會議水果|⏰ 今晚 18:00
2. 📋 整理 Q3 財務報表|⏰ 下週五前
今天我們完成了「文字、語音、圖像」三種全方位多模態輸入的最後一塊拼圖,讓 AI 待辦系統無論面對何種情境都能輕鬆輸入。明天「Day 21」我們將進入 AI Agent 的進階核心——「Dify Workflow 進階編排:整合 Web Search 網頁搜尋與自動補充行程資訊」!