讓桌面自己動的 UI-Mate 實戰筆記

讓桌面自己動的 UI-Mate 實戰筆記

📌 本文重點

  • UI-Mate 讓 AI 直接「看畫面、動滑鼠鍵盤」
  • 用自然語言或示範錄製,就能生成桌面操作流程
  • 可與現有 Python 腳本與 RPA 流程整合,減少人工操作

用一句話說:UI-Mate 就是一個「看得懂螢幕、聽得懂人話、會自己動滑鼠鍵盤」的桌面機器人,幫你把重複性的桌面操作交給 AI 來做。

模型主頁:https://huggingface.co/tencent/UI-Mate-27B


核心功能:這三件事搞懂就能用

1. 視覺理解:給截圖,它看得懂 UI

UI-Mate-27B 的核心是一個多模態模型:
– 你提供「螢幕截圖」+
– 一段自然語言說明(例如:請幫我打開 Chrome 並登入後台)
– 它輸出一段結構化動作序列:滑鼠移動、點擊、鍵盤輸入等

💡 關鍵: 只要一張截圖加一句需求,模型就能直接產出可執行的桌面操作步驟。

實際可以怎麼用:
1. 先準備好一個測試畫面(例如:公司後台登入頁)。
2. 截圖保存為 screen.png。
3. 把截圖和指令丟給 UI-Mate,看它給出怎樣的「下一步操作」。

你會拿到類似這樣的結構化輸出(示意):

{
  "actions": [
    {"type": "move", "x": 540, "y": 320},
    {"type": "click", "button": "left"},
    {"type": "keyboard", "text": "your_email@example.com"},
    {"type": "key", "value": "TAB"},
    {"type": "keyboard", "text": "your_password"},
    {"type": "click", "x": 620, "y": 410}
  ]
}

接下來你只要寫一個小腳本讀這個 JSON,真的去移動滑鼠、輸入文字,桌面就會「自己操作」。

2. 自然語言指令:講人話就能控制桌面

UI-Mate 的互動方式很直覺:
– 你不需要寫流程圖,也不必一開始就拆成「步驟 1、步驟 2」
– 只要描述結果:
-「幫我批量把 Excel 檔案匯入這個 ERP 系統」
-「打開 Outlook,把今天的報表寄給 A 組所有人」

模型會自己規劃步驟,並在每一步:
1. 讀取最新截圖
2. 思考現在畫面狀態(按鈕位置、輸入框、表格等)
3. 給出下一步滑鼠鍵盤操作

你可以這樣實作一個最小可用版本:
– 外層自己寫「迴圈」:
1. 每步:截圖 → 丟給 UI-Mate → 執行動作
2. 執行完再截圖下一幀
– UI-Mate 負責:理解畫面 + 決定下一步

行動建議:
– 先選一個你每天重複 10 次以上的操作(例如:下載報表、貼到另一個系統),用自然語言完整描述「你平常怎麼做」,當成指令丟給 UI-Mate,看它的步驟規劃是否合理。

3. 示範錄製重用:示範一次,變成可重複流程

UI-Mate 還有一個「示範引導模式」(demo-guided mode):
– 你親自操作一次完整流程
– 系統記錄下:每一步的截圖 + 你的操作
– 模型會從這次成功示範中,歸納出一個「可泛化的流程」

這跟傳統 RPA 的差別在於:
– 傳統 RPA:錄的是「座標腳本」,畫面稍微變一下就壞掉
– UI-Mate:每次執行時都重新「看畫面」,按「字樣、位置關係」來找按鈕,不是死記座標

💡 關鍵: UI-Mate 不是重播固定座標,而是每次重新看 UI,用文字與位置關係判斷該點哪裡。

可以這樣玩:
1. 用你熟悉的桌面錄製工具(或自製簡單 recorder)記錄一步步操作與截圖。
2. 把「示範過程」餵給 UI-Mate,請它輸出一個「可重複使用的任務描述 + 動作模板」。
3. 下次只要換資料(不同 Excel、不同客戶),讓 UI-Mate 根據新畫面、自動套同一個流程。

行動建議:
– 選一個流程性質很穩定、但資料每天不同的任務(例如:每日匯入銷售數據),試著用「示範一次 → 重用」方式,取代你手動教同事的 SOP。


適合誰用:四種典型場景

1. 重複性後台系統操作

  • 例如:
  • 每天登入多個 SaaS 後台,下載報表、貼到內部系統
  • 每週批次更新客戶狀態
  • 你可以:
  • 把這些步驟示範一次
  • 用 UI-Mate 產生可重複的「桌面任務」
  • 未來只改輸入條件(日期、客戶名),交給 AI 操作

2. 桌面版軟體批量設定

  • 例如:
  • VPN 客戶端批量新增設定檔
  • 本地 ERP/會計軟體批量開立客戶資料
  • 傳統腳本難點在於:UI 複雜、不易找到穩定 API
  • UI-Mate 直接「看畫面」,幫你點選和輸入。

3. 跨 app 搬資料

  • 例如:
  • 從 Outlook 下載附件 → 存到指定資料夾 → 打開 Excel 做簡單整理 → 貼到公司內部系統
  • 原本要寫一堆整合腳本或 RPA 流程
  • 現在可以:
  • 用自然語言描述「從哪裡拿資料、要丟去哪裡」
  • UI-Mate 在不同程式之間切換畫面、操作滑鼠鍵盤

4. 給不會寫程式的同事用的「桌面機器人」

  • 對象:
  • 業務、行政、財務等非工程同事
  • 玩法:
  • 工程師先搭好「UI-Mate 服務」和一個簡單的 Web / 桌面介面
  • 同事只要:
    • 輸入指令(或從下拉選任務)
    • 確認螢幕共享權限
  • 剩下交給 UI-Mate 自己在他們的桌面操作

怎麼開始:Hugging Face + 本地部署實戰

以下以在本地機器上跑 UI-Mate-27B 為主線,預設你有一台具備較強 GPU 的機器(例如 48GB VRAM 以上),或準備先在雲端機器試用。

步驟 0:硬體與環境準備

建議環境:
– GPU:單張 48GB VRAM(或多卡切分),若用量化(如 4-bit)可略降需求
– 系統:Ubuntu 20.04 / 22.04 或 Windows + WSL
– Python:3.10 或以上

行動:

conda create -n uimate python=3.10 -y
conda activate uimate
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
pip install transformers accelerate safetensors pillow

💡 關鍵: 若使用 4-bit 等量化,可以在較小 VRAM 的 GPU 上嘗試跑 UI-Mate-27B。

步驟 1:從 Hugging Face 下載權重

模型頁面:https://huggingface.co/tencent/UI-Mate-27B

行動:

huggingface-cli login  # 輸入你的 HF token
# 下載模型(示例,可改路徑)
huggingface-cli download tencent/UI-Mate-27B --local-dir ./uimate-27b

如果你不想預先全部拉下來,也可直接用 from_pretrained 動態下載(見下一步)。

步驟 2:跑一個最小 Demo

以下是一個「給一張截圖 + 一句指令,讓 UI-Mate 回傳動作計劃」的簡單腳本:

from transformers import AutoModelForCausalLM, AutoTokenizer
from PIL import Image
import torch, json

MODEL_PATH = "tencent/UI-Mate-27B"  # 或改成本地路徑

device = "cuda" if torch.cuda.is_available() else "cpu"

print("Loading model...")
model = AutoModelForCausalLM.from_pretrained(
    MODEL_PATH,
    torch_dtype=torch.float16,
    device_map="auto"
)

tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)

# 1. 準備截圖與指令
image = Image.open("screen.png")  # 先手動截一張
user_instruction = "在這個畫面中,幫我輸入帳號和密碼,然後按登入。"  

# 2. 組合多模態輸入(形式視官方範例為準)
inputs = tokenizer(
    user_instruction,
    return_tensors="pt"
).to(device)

# 一般會有圖像編碼器,這裡假設模型內已處理;實作時請對照官方範例

with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=512
    )

reply = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("Model output:\n", reply)

# 若模型以 JSON 格式輸出動作,可直接解析
try:
    actions = json.loads(reply)
    print("Parsed actions:", actions)
except json.JSONDecodeError:
    print("請依官方格式調整 prompt,確保輸出為 JSON。")

實務上請以 UI-Mate 官方示例程式為準,Hugging Face 頁面的 README 通常會附完整 demo,先照抄跑通,再慢慢改成你的場景。

步驟 3:用 Python 腳本發指令 + 真實執行

接下來要做的是把模型輸出的動作「真的」執行在桌面上:

  1. 安裝桌面操作套件(以 Windows 為例):
pip install pyautogui mss
  1. 寫一個簡單「桌面代理 loop」:
import pyautogui, time, json
from mss import mss

# 假設這是從 UI-Mate 拿到的 JSON
plan = {
  "actions": [
    {"type": "move", "x": 500, "y": 300},
    {"type": "click", "button": "left"},
    {"type": "keyboard", "text": "demo_user"}
  ]
}

for step in plan["actions"]:
    if step["type"] == "move":
        pyautogui.moveTo(step["x"], step["y"], duration=0.2)
    elif step["type"] == "click":
        pyautogui.click(button=step.get("button", "left"))
    elif step["type"] == "keyboard":
        pyautogui.typewrite(step["text"], interval=0.05)
    time.sleep(0.2)
  1. 把兩段程式串起來:
  2. 每步:用 mss 截圖 → 丟給 UI-Mate → 解析 JSON → 用 pyautogui 執行
  3. 加上錯誤處理(超時、視窗關閉等),就能形成一個簡單的桌面機器人。

怎麼接到既有自動化腳本 / RPA 流程

多數團隊已經有一堆:
– Python 自動化腳本
– 現成 RPA 流程(如 UiPath、Power Automate)

你可以把 UI-Mate 當成「一個新步驟」插進去,而不是全部重寫。

實戰示例:Python 腳本 + UI-Mate 處理「UI 部分」

假設你原本有一個腳本:
– 從資料庫抓訂單 → 輸出 CSV
– 然後要人手動開某個老舊桌面系統,把這些訂單一筆筆輸入

改造方式:
1. 保留原本「資料庫 → CSV」的 Python 程式
2. 新增一個 fill_orders_with_uimate() 函式:
– 負責:
1. 打開舊系統
2. 逐筆讀取 CSV
3. 對每一筆訂單:
– 截圖
– 呼叫 UI-Mate:請依照示範流程,把這筆訂單填入畫面上對應欄位。
– 執行模型輸出的滑鼠鍵盤動作

整體流程變成:

原本 Python 程式:
  資料庫 → CSV  → (人手動輸入)

改造後:
  資料庫 → CSV → UI-Mate 桌面代理 → 舊系統

與 RPA 工具共存的方式

如果你公司已經有 RPA 工具(例如 UiPath):
– 把 UI-Mate 當成「一個 API」:
1. 在本地或伺服器上跑一個簡單的 Flask/FastAPI 服務,提供 /plan-actions endpoint:
– Input:截圖 + 任務描述
– Output:UI-Mate 計劃好的動作 JSON
2. 在 RPA 流程裡新增一個步驟:
– 呼叫這個 API 拿動作
– 用 RPA 自己的「滑鼠/鍵盤活動」元件,執行 JSON 裡的動作

這樣的好處:
– 原有 RPA 流程不必大改
– 跟 IT 合規的整合點很清楚:只是一個額外的內部 API


小結:建議你的第一個實驗任務

如果你只想花半天試試 UI-Mate,這樣安排:
1. 選一個每天都在做、步驟固定的桌面任務(例如:登入兩個系統、下載/上傳一份報表)。
2. 用 Hugging Face Demo 或本地部署,先跑通:
– 截圖 + 自然語言指令 → UI-Mate 回傳動作
3. 寫一個小 Python 腳本,真的在桌面執行那些動作。
4. 最後,再把這個任務掛到你現有的自動化腳本或 RPA 裡,讓 UI-Mate 僅負責「用眼睛看 UI 的那一段」。

做到這一步,你就多了一個「會看畫面、會動滑鼠」的 AI 同事,可以逐步把更多枯燥的桌面操作交給它。

🚀 你現在可以做的事

  • 打開 UI-Mate-27B 模型頁,按 README 示範先跑通官方 demo
  • 在自己的機器上依照文中指令建立 uimate 環境並試跑一次截圖 + 指令的最小腳本
  • 選一個固定桌面任務,設計截圖迴圈 + pyautogui 執行,做出你的第一個 UI-Mate 桌面機器人

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *