Windows 11 AI 助理: Docker + 本地模型自架區網家庭版 ChatGPT

251011_00_how-to-build-a-local-ai-assistant-on-windows-11 with docker cover 800 x 400

【Windows 11 + Docker + Open WebUI + llama.cpp】是比較常見的自架 AI 助理方式,對比【Windows 11 + AnythingLLM Desktop 版 + Ollama】的組合,最大的差異在於:前者可實現多用戶、不同裝置,使用私人類似 ChatGPT AI 助理的服務;而後者只能單機使用 AI 助理服務。

這篇【零成本私人 AI 助理】的實戰教學文,適合想在家中區域網路打造專屬 AI 助理的讀者。文章分享如何用 Windows 11 + Docker,本地部署無需雲端的家庭版 ChatGPT。內容涵蓋高精度模型下載、靈活抽換模型等核心步驟,輕鬆享受私密、免費的本地 AI 服務!

Llama cpp vs Ollama

llama.cpp 屬於:
【低階推理引擎,非平台】,定位是:支援【開源的 LLM(Large Language Model) 推論引擎(Inference Engine)】
GGUF 模型需要手動管理,雖然不會自動更新或下載模型,但靈活度高。
本身沒有 GUI (圖形化介面),需搭配 Open WebUI、LM Studio、…

Ollama 屬於:
整合 llama.cpp 並提供模型管理、API、GUI 功能的本地平台
自動下載模型、管理版本,僅限於 Ollama 支援的模型
本身沒有 GUI (圖形化介面),需搭配 Open WebUI、AnythingLLM、LM Studio、…

再搭配前端 WebUI 程式,就可實現類似 ChatGPT AI 助理的服務:
方案 A:(Docker + Open WebUI + llama.cpp)
方案 B:(AnythingLLM Desktop 版 + Ollama)

方案 A方案 B
門檻
維護解決服務間的相容問題升級相對簡單
多裝置支援電腦、手機只支援單機使用
模型支援彈性極高受限 Ollama
【Open WebUI + llama.cpp】vs【AnythingLLM + Ollama】

免費 AI 助理 ChatGPT 家庭方案:軟體安裝

採用【方案 A】將下述軟體安裝在電腦中,硬體規格如下:

CPUAMD Ryzen 9500X
DDRDDR5 5600 32GB*2
SSDWD Black 850X
主機板B850M-DS3H
GPU
Open WebUI + llama.cpp 的電腦規格

下載並安裝 Docker Desktop for Windows

網址:https://www.docker.com/products/docker-desktop/
備註:
選擇【Download for Windows – AMD64】
安裝時確保啟用 WSL2 支援
安裝完成後,電腦重新開機
第一次開啟 Docker 時,需要先更新【Windows 子系統 Linux 版】

251011_01_Windows 11 AI 助理 - install Docker for windows and enable wsl2
啟用 WSL2

下載 Llama server – Docker

llama-server.exe 是 llama.cpp 專案的一部分,下載 llama.cpp 壓縮檔。

Llama.cpp github 下載網址:https://github.com/ggml-org/llama.cpp/releases
備註:
根據電腦規格使用正確的 llama.cpp 專案
CPU only 版本:llama-bxxxx-bin-win-cpu-x64.zip
Nvidia GPU 版本:llama-bxxxx-bin-win-cuda-12.4-x64.zip

251011_02_Windows 11 AI 助理 - llama-server download from github
Llama.cpp 安裝檔案

使用 CPU only 版本為範例,將壓縮檔(llama-bxxxx-bin-win-cpu-x64.zip)解壓縮到指定的路徑下,並更改資料夾名稱為【llama.cpp】。專案架構圖如下:

D:\12_AI_Local_Chat\
├── llama.cpp\             ← CPU Only llama資料夾,確保有 llama-server.exe
│   └── llama-server.exe
│   └── ...
├── models\                ← 手動放置 GGUF 模型檔案
│   └── gpt-oss-20b-Q8_0.gguf
├── open-webui\            ← 網頁使用者介面(Web User Interface)

測試方式:

以管理員身分開啟【PowerShell】,切換到專案目錄下的【llama.cpp】,輸入:
.\llama-server.exe –help

測試結果:

看到以下內容,表示 llama.cpp 已成功安裝,且執行檔運作正常!
llama-server.exe –help 能執行,表示執行檔可用,沒有出現錯誤或遺失 DLL。
load_backend: loaded RPC backend from …ggml-rpc.dll,表示後端推理核心 ggml-rpc.dll 已成功載入,llama.cpp 的執行環境已就緒。
沒有錯誤訊息,例如 missing model、failed to load backend、unknown command,代表安裝過程都正確。

251011_03_llama-server.exe --help
驗證 Llama.cpp 教學

GGUF 模型下載

GGUF 模型檔案下載點:https://huggingface.co/
GGUF 模型存放路徑:D:\12_AI_Local_Chat\models\gpt-oss-20b-Q8_0.gguf
範例:
unsloth/gpt-oss-20b-GGUF: https://huggingface.co/unsloth/gpt-oss-20b-GGUF
MaziyarPanahi/Meta-Llama-3-8B-Instruct-GGUF: https://huggingface.co/MaziyarPanahi/Meta-Llama-3-8B-Instruct-GGUF
TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF: https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF

llama.cpp 現在只支援 .gguf 模型格式,舊格式 .bin(GGML / GGJT / GGUF 前版本)已經被淘汰。

Open webui Windows 安裝

有兩種安裝方法:

方法 1、

電腦有安裝 git,可以在命令提示字元視窗中輸入以下指令:

git clone https://github.com/open-webui/open-webui.git

方法 2、

電腦沒有安裝 git,在下面網址中下載最新版 Source code(zip) 檔案,然後解壓縮到專案路徑下,把資料夾名稱改成【open-webui】。

https://github.com/open-webui/open-webui

開始安裝

安裝 Node.js v22.20.0(LTS 透過 Docker 包含 npm):https://nodejs.org/zh-tw/download
以管理員身分開啟【PowerShell】,切換到專案目錄下的【open-webui】,輸入:

Set-ExecutionPolicy RemoteSigned

說明:

PowerShell 預設的安全設定 (Execution Policy) 限制了腳本檔案(例如 .ps1)的運行,以防止惡意腳本執行。當輸入 npm 時,可避免被安全原則擋住。

檢查 Node.js 和 npm 是否確實安裝

PS C:\WINDOWS\system32> npm -v
10.9.3
PS C:\WINDOWS\system32> node -v
v22.20.0

說明:

如果顯示版本號,表示 Node.js 已安裝。

暫時停止在 PowerShell 視窗裡,阻止腳本運行。執行以下兩行程式碼:

Set-ExecutionPolicy Bypass -Scope Process
npm install --legacy-peer-deps

升級 NPM 版本:

npm install -g npm@11.6.2

11.6.2 是新版本號碼,可根據當下版本自行修改版本號碼

安裝 Micorsoft Visual Studio 2015-2022

下載網址:https://learn.microsoft.com/zh-tw/cpp/windows/latest-supported-vc-redist?view=msvc-170

沒有安裝的話,會導致Open Webui 無法連接 llama-server.exe。

確認方式:在瀏覽器輸入【http://電腦主機IP:8080/】,連線成功會看到以下畫面:

251011_06_llama-server link
llama server 正常啟動

Docker Windows 防火牆設定

Windows 防火牆允許 Docker 容器對區網開放 TCP Port 3000 的完整步驟:

步驟 1、

打開防火牆設定
1. 按【Win + R】
2. 輸入【wf.msc】
3. 按下【Enter】

步驟 2、

1. 左側選【輸入規則】
2. 右側選【新增規則…】
3. 選【Port】
4. TCP:指定本地 Port:3000, 8080
5. 選【允許連線】
6. 勾選所有網路類型:網域、私人、公用
7. 名稱:Open WebUI TCP 3000

251011_04_Windows 11 firewall port 3000 allow for docker
Windows 防火牆 port 設定

AI 助理區網設定

Step 1、

在 D:\12_AI_Local_Chat\open-webui\package.json,找到這行:

"dev": "npm run pyodide:fetch && vite dev --host",

更改成:

"dev": "npm run pyodide:fetch && vite dev --host 0.0.0.0 --port 3000",

說明:

增加 0.0.0.0 確保可從其它 IP 存取

增加 –port 3000,確保連接埠入口穩定

Step 2、

以管理員身分,登入Open Webui 後,在【管理員控制台】->【設定】->【連線】->【管理 OpenAI API 連線】改成:
http://host.docker.internal:8080/v1

251011_07_open webui setting

常見問題

Q1:如何使用 Llama-cpp CUDA?

A1:假使電腦有安裝 GPU 的話,在【下載 Llama server – Docker】章節中,把專案下的【llama.cpp】資料夾刪除,使用【Nvidia GPU 版本:llama-bxxxx-bin-win-cuda-12.4-x64.zip】的檔案,把資料夾名稱改成【llama.cpp】即可。
前提是電腦要先安裝:
1. GPU 驅動程式(驅動程式版本:553.74 支援 CUDA Toolkit: 12.4)
2. CUDA Toolkit 12.4

Q2:如何讓所有區網裝置使用相同的 open webui 本地模型?

A2:將使用者分類到【群組A】,然後管理員在【管理員控制台】->【設定】->【模型】中,把要模型【可見度】的設定分配給【群組A】即可。

Q3:open webui 如何更新?

A3:以管理員身分開啟【PowerShell】,輸入以下指令:
docker pull ghcr.io/open-webui/open-webui:main

Q4:可以生成會議逐字稿嗎?

A4:可以,但是速度慢!建議使用 Python 與調整 llama.cpp 的參數來實現會議逐字稿。
參考文章:
1. 本地部署 AI 會議紀錄工具實作教學:Windows 11 + GPU 加速
2. AI 會議紀錄神器,上班族自架 Windows 11 + LLaMA 生成中英文摘要實作
3. 語音轉文字教學

Windows AI 助理確實可以取代家庭版 ChatGPT

Windows AI 助理透過 Docker 結合 llama.cpp,本地即可運行大型語言模型,不僅免雲端費用、資料更私密安全,且能離線使用。對家庭用戶而言,足以取代 ChatGPT 基本功能,提供問答、摘要、寫作與語音互動等智慧服務,是打造個人化 AI 助理的理想方案。

251011_08_Windows 11 AI 助理成品
自架家庭版 ChatGPT 成品

以管理員身分開啟【PowerShell】,切換到專案目錄下 D:\12_AI_Local_Chat\
執行 start_local_ai_chat.ps1 你就能使用免費家庭版的 ChatGPT 了!

程式碼:start_local_ai_chat