找回密碼
 立即註冊
    查看: 185|回覆: 0

    AI Task 完整用法:在自動化裡問 AI,並且拿到你能直接用的資料

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-25 01:46:30 | 顯示全部樓層 |閱讀模式
    Home Assistant 內建一個叫 AI Task 的動作,可以在自動化跑到一半丟一個問題給 AI,拿到答案再繼續做下去。不需要 HACS,也不需要額外的應用程式。

    這篇是它的完整操作手冊:怎麼建、怎麼呼叫、怎麼要它回結構化的資料、結果怎麼存起來用、以及它出錯的時候你會看到什麼。

    Home Assistant 內建一個叫 AI Task 的動作,可以在自動化跑到一半丟一個問題給 AI,拿到答案再繼續做下去。不需要 HA

    做完這篇你會有什麼


    • 一個會在門沒關十分鐘之後推播提醒的自動化,提醒的措辭每次不一樣
    • 一顆把 AI 回答存下來的感測器,可以放上儀表板
    • 會用 `structure` 直接拿到數字和是非題的答案,不用從一段文字裡摳
    • 知道它失敗的時候長什麼樣,以及怎麼讓自動化不要整條斷掉


    ---

    步驟 1:建立 AI Task 實體

    1-1 先有一個 AI 整合

    設定 → 裝置與服務 → 新增整合,挑一個:


    • OpenAI、Anthropic、Google Generative AI —— 雲端,要 API 金鑰,照用量計費
    • Ollama —— 跑在你自己機器上,不花錢也不上雲,但要有夠力的硬體


    1-2 ⚠ 裝了整合不等於有 AI Task

    這是第一個、也是最常見的卡點。 同一個整合底下有兩種子項目,是分開建的:


    • Conversation(對話) —— 給語音助理用的,處理「你講一句話」
    • AI Task(AI 任務) —— 給自動化用的,處理「丟一包東西進去、拿一包東西出來」


    很多人建了對話子項目,然後在自動化裡怎麼找都找不到 `ai_task.generate_data`,因為 AI 任務那個子項目根本沒建。

    在整合卡片上按新增子項目,選 AI Task。

    你會看到整合卡片上的服務數量加一。

    1-3 確認實體真的存在

    設定 → 工具 → 狀態,篩選欄打 `ai_task`。

    (2026.2 起「開發者工具」從側邊欄搬進了「設定」底下,2026.8 起改名叫工具。找不到的話按 Ctrl+K 直接搜尋「狀態」最快。所有寫「側邊欄的開發者工具」的舊教學都對不上畫面了。)

    你會看到一個 `ai_task.` 開頭的實體,狀態是 `unknown`(正常,它不是狀態型的實體)。

    1-4 設定預設實體

    設定 → 系統 → AI 任務,把剛剛那個實體設成偏好的實體。

    ⚠ 不在「設定 → 系統 → 一般」底下,那裡只有時區跟版本。很多舊教學寫成一般,會讓你在那一頁上下捲半天。

    設好之後,自動化裡寫 `ai_task.generate_data` 就不用指定 `entity_id`。

    1-5 想讓不同的任務用不同的 AI

    同時建兩個以上的 AI Task 實體(例如一個便宜的模型跑日常摘要、一個好一點的跑視覺判讀),然後在動作裡明確指定:
    1. action: ai_task.generate_data
    2. data:
    3.   entity_id: ai_task.cheap_model
    4.   task_name: daily summary
    5.   instructions: ...
    複製代碼

    不寫 `entity_id` 就走 1-4 設的那個。 這是「大部分用便宜的、少數用貴的」最簡單的做法。

    ---

    步驟 2:第一次呼叫(不要直接寫進自動化)

    直接寫進自動化是最慢的路:自動化要等觸發才會跑,跑錯了你還得去翻軌跡。先在工具裡跑一次,看到回傳內容再搬。

    設定 → 工具 → 執行動作,右上角切到 YAML 模式:
    1. action: ai_task.generate_data
    2. data:
    3.   task_name: garage door comment
    4.   instructions: 用繁體中文寫一句好笑的提醒,告訴家人車庫門忘了關。只回那一句話。
    5. response_variable: generated_text
    複製代碼

    按執行動作。

    你會看到底下展開一段回應:
    1. data: 車庫門開著在吹冷氣,電費表已經跑去自首了。
    2. conversation_id: 01JB7X9K4M2N5P8QR3TVWXYZ12
    複製代碼

    回應裡有兩個東西:


    • `data` —— 你要的答案。沒有用 `structure` 的時候是一段純文字
    • `conversation_id` —— 這次對話的識別碼,一般用不到


    以下還有約 81% 的內容
    登入後即可閱讀完整教學

    登入繼續閱讀使用 Google 登入
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    延伸閱讀

    加入惟家 LINE 群 QR Code加入惟家 LINE 群

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-11-10 00:36 , Processed in 0.150898 second(s), 25 queries .

    快速回覆 返回頂部 返回列表