📌 本文重點
- UI-Mate 讓 AI 直接「看畫面、動滑鼠鍵盤」
- 用自然語言或示範錄製,就能生成桌面操作流程
- 可與現有 Python 腳本與 RPA 流程整合,減少人工操作
用一句話說:UI-Mate 就是一個「看得懂螢幕、聽得懂人話、會自己動滑鼠鍵盤」的桌面機器人,幫你把重複性的桌面操作交給 AI 來做。
核心功能:這三件事搞懂就能用
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 腳本發指令 + 真實執行
接下來要做的是把模型輸出的動作「真的」執行在桌面上:
- 安裝桌面操作套件(以 Windows 為例):
pip install pyautogui mss
- 寫一個簡單「桌面代理 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)
- 把兩段程式串起來:
- 每步:用
mss截圖 → 丟給 UI-Mate → 解析 JSON → 用pyautogui執行 - 加上錯誤處理(超時、視窗關閉等),就能形成一個簡單的桌面機器人。
怎麼接到既有自動化腳本 / 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 桌面機器人










