Open Canvas-本地使用 OpenAI Canvas功能
最近 OpenAI 推出了 Canvas ,開始流行在 ChatGPT 上頭寫程式、寫郵件等等,馬上就有人推出本地端一樣的服務 Open Canvas ,解放了你只能在 OpenAI 上使用的困境,除了 Git 以外,也馬上有了 docker 版本,可以快速體驗


最近 OpenAI 推出了 Canvas ,開始流行在 ChatGPT 上頭寫程式、寫郵件等等,馬上就有人推出本地端一樣的服務 Open Canvas ,解放了你只能在 OpenAI 上使用的困境,除了 Git 以外,也馬上有了 docker 版本,可以快速體驗


可以在 windows, mac, Linux 上使用,自動地透過滑鼠鍵盤來控制你的電腦畫面,還支援螢幕截圖
安裝 pyautogui
pip install pyautogui
使用 pyautogui
import pyautogui
螢幕截圖
pyautogui.screenshot('screenshot.png')滑鼠控制
pyautogui.moveTo(100, 100, duration = 1.5) #用1.5秒移動到x=100,y=100的位置 pyautogui.dragTo(100, 100, duration=2, button='right') #用2秒按住滑鼠右鍵到x=100,y=100的位置 pyautogui.click(clicks=2, interval=0.5, button='right') #雙擊左鍵並且中途間隔0.5秒
鍵盤控制
pyautogui.keyDown('ctrl')
pyautogui.press('a')
pyautogui.keyUp('ctrl') #全選的功能鍵效果
pyautogui.hotkey('ctrl', 'shift', 'esc') #開啟工作管理員的快捷鍵
使用 docker 時候,常常遇到被占用的 port 要處理,這邊記錄下正確的處理方法
netstat -ano | findstr 8080
會得到下面的輸出,最後面一個是 PID

tasklist | findstr 8080
舉例來說,我要刪除佔用了 port 50912 的程式,由上圖知道他的 PID 是 6664,那就輸入以下指令即可
taskkill /T /F /PID 6664
終於來到電影中的AI操作電腦的情節了,動動嘴巴就可以控制電腦,AI 透過 LLM 模型,知道你的意圖,在看你的電腦畫面,去決定要點選甚麼樣的位置,或是輸入甚麼樣的資訊,原來可以這麼簡單就實現用嘴巴操作電腦

請先到這邊,https://www.anthropic.com/api,取得 API Key,等等 docker 建立的時候會用到
Linux / Mac
export ANTHROPIC_API_KEY=%your_api_key%
docker run \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
-v $HOME/.anthropic:/home/computeruse/.anthropic \
-p 5900:5900 \
-p 8501:8501 \
-p 6080:6080 \
-p 8080:8080 \
-it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latestWindows
export ANTHROPIC_API_KEY=%your_api_key%
docker run `
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY `
-v $HOME/.anthropic:/home/computeruse/.anthropic `
-p 5900:5900 `
-p 8501:8501 `
-p 6080:6080 `
-p 8080:8080 `
-it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest如果遇到別人包裝好的 docker (99%都是),常會遇到沒有 root 密碼的情形,這時候有幾個解決方法,列舉如下
docker exec -u 0 -it mycontainer bash
或是下面的指令也可以
docker exec -u root -it --workdir / <containerName> bash
passwd root
apt-get install sudo usermod -aG sudo dev
https://stackoverflow.com/questions/28721699/root-password-inside-a-docker-container
近期留言