接續上一篇「Open WebUI 安裝使用說明」,本篇將對連網功能進行實測。不過先說結論,根據這段時間的研究,本地 AI 的連網搜尋能力,最終取決於財力多寡。
部署本地 AI 系列文章:
(圖片出處: Z-Image-Turbo)
一、Open WebUI 基本設定
1. 搜尋結果 bug
還不知道這件事的話再提醒一下,如果搜尋結果是「未找到任何來源」,但展開後可看到網路搜尋的所有動作,代表 Open WebUI 捨棄了搜尋結果。
而這正是 Open WebUI 0.9.6 與 0.9.5 的 bug,請參考上一篇「Open WebUI 安裝使用說明」改安裝 0.9.4 版。
2. 修改上下文長度
LM Studio 預設的上下文長度是 4096 token,對於一般對話沒問題,但進行網路搜尋時,一次搜尋多個網頁,返回的資料量相當龐大,如上圖,系統提示 4096 不夠,此次搜尋至少要 8846,因此報錯。
所以請回 LM Studio,按照系列文第一篇「LM Studio 安裝優化部署」→「五、效能優化技巧」→「3. 修改上下文長度」,建議改成至少 16832,或是設定比錯誤訊息更高的數值。
3. 記住系統提示詞
系列文第一篇「LM Studio 安裝優化部署」→「四、各種使用問題解決」→「2. 顯示繁體中文」,曾提過如何為模型設定提示詞,但 Open WebUI 載入 LM Studio 的模型後,提示詞設定將無法生效,導致 AI 可能會用簡體中文、或英文回答。。
在 LM Studio 啟動伺服器的畫面,最右邊分頁切換到「Inference」,這裡可以設定提示詞,例如將某段文字存成「繁中提示詞」模板,將來可直接選取套用。
這裡設定的提示詞可以在 Open WebUI 產生作用,但可惜的是,每次 LM Studio 重新載入模型,都要重新選取提示詞模板,比較麻煩。
可以在 Open WebUI 設定特定模型的系統提示詞,操作流程如下:
- 進入帳號的管理員控制台 → 設定 → 模型
- 如上圖,填入系統提示詞
- 捲到底部按「儲存並更新」即可
二、免費搜尋引擎的問題
1. 免費搜尋引擎的選擇 如果不想使用付費 API 的話,Open WebUI 內建了一些免費搜尋引擎的使用方式:- DDGS:就是 DuckDuckGo,而 DDGS 後端可選擇 Google、Bing、Yahoo 等知名的搜尋引擎
- SearXNG:選擇自架免費開源搜尋引擎 SearXNG 的話,選擇性更多,例如百度(Baidu)、搜狗(Sogou)
就像上圖,出現「An error occurred while searching the web」訊息,代表 DDGS 已經無法搜尋。
3. 自架 SearXNG
如果想使用「SearXNG」的話,Windows 下安裝很麻煩,我找到這個「SearXNG for Windows」,下載後執行 .bat 檔就能使用。
上圖是 Open WebUI 設定 SearXNG 的方式,網址填入以下即可:
http://localhost:8888/
4. 無法取得即時搜尋結果
SearXNG 用起來跟 DDGS 的主要差別:
- Google 短時間內多次使用最容易被封鎖。
- 使用百度、搜狗的話,台灣資訊比較難搜尋到。
- Bing、Yahoo 比較不會封鎖,但搜尋結果仍有其他問題。
無法找出台積電收盤價暫且放一邊,搜尋時間為 2026/6/25,但搜尋結果為 2026/6/24,代表是根據快取頁面資料回答,SearXNG 無法取得即時搜尋結果。
5. 搜尋結果不佳
最近台灣大家關注的「喪屍煙彈」,來測試一下搜尋效果:
從結果可以判斷出,無論是用 Bing 或 Yahoo 搜尋:
- 因為對台灣用語不熟悉,所以背後應該是翻譯成其他語言進行搜尋
- 導致搜尋結果非常離譜,參考網頁有英文也有日文
三、Tavily API 中文搜尋不佳
1. Tavily 設定 先用比較熱門、容易申請的 Tavily 來測試搜尋功能。Tavily 每月有 1000 次免費 API 呼叫額度,可按以下流程申請 API 金鑰: A. 進入「Tavily 官網」→ 使用 Google 帳號就能註冊
B. 登入後如上圖,可看到 API KEY,按紅框圖示複製起來。
C. 進入 Open WebUI,按照之前步驟進入帳號的管理員控制台 → 設定 → 網路搜尋
如上圖,網頁搜尋引擎選擇「Tavily」,金鑰貼上剛剛複製的 API KEY,按「儲存」完成設定。
2. 搜尋效果
基本上 Tavily 是專為 AI 搜尋而設計的搜尋服務,搜尋結果會返回 json 摘要格式,易於後續處理。
不過搜尋結果稍微怪怪的,台積電價位怎麼變成美元了,原來這是美股的收盤價:
- 代表 Tavily 沒有為中文特別優化,會以英文搜尋為主
- 也許只是剛好台積電會有兩種股價,搜尋結果不合中文習慣
- 但搜尋樣本放大後,還是得面對整體中文搜尋結果不夠好的實情
三、Google 付費搜尋為最佳選擇
1. 付費 API 才是首選 經由前面的測試結果可以歸納出,想要提昇搜尋品質,必須往這些方向尋找:- 能提供即時搜尋結果
- 中文搜尋結果品質佳
- 付費 API
- 免費方案:每月 250 次搜尋,每小時最多 50 次
- 最便宜方案:每月 USD 25,每月 1000 次搜尋,每小時最多 200 次
- 免費方案:額度為 2500 次搜尋
- 最便宜方案:USD 50,50000 次搜尋,每秒最多 50 次搜尋,6 個月內有效
四、爬取 JS 動態產生的內容
1. JS 動態網頁搜尋效果 不是所有網頁都是靜態 HTML 內容,有些即時性的資料,網站需要從後端讀取資料庫再用 JS 動態載入,最好的例子便是中央氣象署,可以開啟網頁原始碼,就能發現網頁上的資料找不太到。
試著用 Qwen3.5-9B 查詢天氣,他很誠實地告知只爬到什麼樣的內容、抓不到 JS 產生的資訊,因為 Open WebUI 預設只能爬取靜態網頁資料。
2. 啟用 JS 爬取功能
以下說明如何讓 Open WebUI 啟用 JS 爬取功能:
進入帳號的管理員控制台 → 設定 → 網頁搜尋 → 網頁載入引擎 → 選擇「Playwright」→ 按「儲存」。
有了這個功能,中央氣象署動態產生的網頁資訊就能讀取了。但事情還沒完,因為 Playwright 並非 Open WebUI 內建功能,這是一個第三方工具,系統必須先安裝 Playwright 才能讓設定生效,否則 log 畫面會報錯,以下分別說明 pip 與 uv 環境如何安裝。
3. pip 安裝 playwright 功能
如果之前使用 pip 安裝的話,流程最方便,windows 打開命令字元視窗,依序執行以下指令即可:
pip install playwright
playwright install chromium
pip install unstructured
4. uv 安裝 playwright 功能
使用 uv 安裝的話會比較麻煩,流程不少:
A. windows 打開命令字元視窗,依序執行以下指令:
uv tool install --python 3.11 [email protected] --with playwright --with unstructured
uv tool update-shell
以上指令請自行修改版本號。
B. 繼續執行以下指令,找出 uv 工具目錄:
uv tool dir
C. 繼續執行以下指令,安裝 Chromium:
"你的 uv 工具路徑\open-webui\Scripts\python.exe" -m playwright install chromium
D. 最後還要修改 Open WebUI 的啟動 bat 檔,只要改這一行:
uv tool run --python 3.11 --with playwright --with unstructured [email protected] serve --host 127.0.0.1 --port 8080
請自行修改版本號,主要差異為啟動指令要加入字串 "--with playwright --with unstructured" 才能讓 playwright 生效。
五、搜尋主控權交給 AI 模型
1. 需要分析、交叉判斷的問題 前面的舉例算是比較簡單的問題,當測試比較需要分析、交叉判斷的問題,就發現了 Open WebUI 的侷限性,例如我問了「MLB 美國職棒在 2021~2025 這五年的 MVP 得主」,這題會比想像中困難一些,因為 AI 需要先了解 MLB 有美聯、國聯兩個聯盟,才能找出這 5 年共 10 個 MPV 得主。 結果我手上機器能跑的 AI 模型全軍覆沒,表現較佳的大致是:qwen3.5-9b > qwen3-14b > 其他(gemma-4-12b, Llama-3.1-8B...)
大致可以歸納出:
- qwen 的表現遠優於其他模型
- qwen 越高版本表現越好,模型參數較高無法超越版本世代間的差距
qwen3.5-9b 全部 10 個 MPV 得主有 5 個答對,3 個對一半,10 分滿分的話算是得 6.5 分。
2. Open WebUI 運作原理
要提昇 Open WebUI 的連網搜尋品質,首先必須知道他的運作原理:
- 觸發搜尋:使用者提問時,Open WebUI 先使用內建的簡單語言模型,分析出可使用的搜尋關鍵字,交由使用者設定的搜尋引擎、或 API 進行搜尋。
- 取得搜尋結果列表:返回的搜尋結果,是「網址 + 摘要」,非完整內容
- 抓取網頁內容:Open WebUI 從摘要判斷出哪些網址有重要內容,這階段才實際爬取網頁內容
- 檢索精鍊:這部份比較複雜,但簡單說就是將爬取的所有內容,只找出比較相關、精要的部份
- 產生提示詞:將提煉後的內容,交給 AI 模型進行思考、分析,再回答使用者
- 由 AI 模型決定是否需要以及何時需要搜尋。
- Open WebUI 不再介入搜尋流程,由模型自行處理返回的摘要資料,及後續的網頁爬取
- 模型根據爬取的資料進行分析,如果覺得有需要的話,再次可以搜尋,重複以上流程,直到找到答案為止。
- 為了實現可靠的代理工具調用(就是代理模式),請使用高級模型
- 模型參數大於 30B 的話,使用代理模式效果較佳
- 模型參數小於 30B 的話,可能產生格式錯誤的 json ,或無法執行多次搜尋的步驟
- 文件明確告知,如果 AI 模型不夠大,請接受函式呼叫功能不可靠的事實。
六、測試函式呼叫功能
雖然我無法測試大模型的效果,不過至少可以測試一下,啟用 AI 模型的函式呼叫功能後,效果有沒有比較好。 1. 啟用函式呼叫功能
- 進入帳號的管理員控制台 → 設定 → 模型
- 如上圖,點擊模型的鉛筆圖示進行編輯
- 展開「進階參數」
- 將「函式呼叫」由預設值改為「原生」
- 捲到底部按「儲存並更新」
同樣使用手上效果最好的 Qwen3.5-9B,上圖紅框可看到顯示「search_web」,代表這是由模型進行的動作,確定「函式呼叫」功能有執行。
來進行打分:
- 全部 10 個 MPV 得主有 6 個答對,滿分 10 分得 6 分
- 看起來比原始效果還少了 0.5 分,但我認為回答品質比較高
- 原始效果感覺上只確認了 2025 這年的資料(得 2 分),其他 4 年都是從模型訓練的資料庫撈答案,所以錯誤很多,有 3 個回答都是只對一半
- 而函式呼叫功能是真的全部自己查,有回答的 6 個全對。
上圖是 LM Studio 搜尋模型的畫面,如果該模型有「榔頭圖示」,代表該模型有針對「工具使用」進行訓練,也就是「函式呼叫」功能有經過訓練。
七、總結
簡單總結本篇要點,本地 AI 連網想要提升搜尋品質,必須從這幾點做起,缺一不可:- 搜尋來源:使用付費 Google 搜尋引擎,可確保搜尋方向正確
- 爬取網頁:Open WebUI 必須安裝、啟用 playwright 功能,才能爬取 JS 動態產生的網頁內容
- 搜尋主動權:AI 模型必須啟用函式呼叫功能,由 AI 主導搜尋流程,才能進行反覆搜尋,直到取得所需資料
- 使用大模型:模型參數大於 30B 才能在 Open WebUI 執行連網搜尋時表現良好
- 硬體配備:要能跑得動模型參數大於 30B,至少需要顯卡 RTX 3090、RTX4090,顯卡記憶體 24GB 以上的規格
部署本地 AI 系列文章:
沒有留言:
張貼留言注意事項:
◎ 勾選「通知我」可收到後續回覆的mail!
◎ 請在相關文章留言,與文章無關的主題可至「Blogger 社團」提問。
◎ 請避免使用 Safari 瀏覽器,否則無法登入 Google 帳號留言(只能匿名留言)!
◎ 提問若無法提供足夠的資訊供判斷,可能會被無視。建議先參考這篇「Blogger 提問技巧及注意事項」。
◎ CSS 相關問題非免費諮詢,建議使用「Chrome 開發人員工具」尋找答案。
◎ 手機版相關問題請參考「Blogger 行動版範本的特質」→「三、行動版範本不一定能執行網頁版工具」;或參考「Blogger 行動版範本修改技巧 」,或本站 Blogger 行動版標籤相關文章。
◎ 非官方範本問題、或貴站為商業網站,請參考「Blogger 免費諮詢 + 付費諮詢」
◎ 若是使用官方 RWD 範本,請參考「Blogger 推出全新自適應 RWD 官方範本及佈景主題」→ 不建議對範本進行修改!
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 為了過濾垃圾留言,所有留言不會即時發佈,請稍待片刻。
◎ 本站「已關閉自刪留言功能」。