開源大型語言模型(Open-access models)具有權重透明與可自由部署的優勢,但由於其知識停留在預訓練截止點,在面對最新學術研究、即時技術文件或特定領域資訊時,極易產生事實幻覺。Hugging Face 所推出的開源對話平台 HuggingChat(底層由 chat-ui 驅動)原生提供了兩種互補的增強機制:內建連網搜尋(Web Search)與社群工具(Community Tools),使研究人員與開發者能以極低門檻為開源模型注入可驗證的即時網路來源。
本文將完整說明如何在 HuggingChat 官方介面及自託管環境中配置網路檢索、串接與開發 Gradio 工具 Space,並結合 Command R+、Llama 3.1、Qwen 2.5 等開源模型打造具備溯源能力的研究智慧體。
一、隨開即用:在 HuggingChat 中啟用內建連網搜尋
針對日常文獻探索與即時事實查驗,HuggingChat 整合了標準的檢索增強生成(RAG)工作流程。
介面操作流程
- 開啟 HuggingChat 網頁端(
https://huggingface.co/chat)。 - 在模型選單中挑選指令遵循與推理能力出色的基礎模型(例如 Meta Llama 3.1 70B、Cohere Command R+ 或 Qwen 2.5 72B)。
- 在底部訊息輸入列中,點擊地球圖示開啟 Search web(連網搜尋)開關。
- 輸入調研問題(例如:「DeepSeek-V3 最新發布的技術報告中有哪些關鍵基準測試數據?」)。
檢索管道的底層運作原理
HuggingChat 並非單純將搜尋結果摘要貼入模型輸入,而是由後端的 chat-ui 自動化執行六階段 RAG 流程:
- 搜尋關鍵字提煉: 內建任務模型分析使用者提示詞的真實意圖,轉換為最適合搜尋引擎的關鍵字組合。
- 網路檢索: 伺服端向外部搜尋服務(如 Serper 或 SearXNG)發送請求,取得權威來源連結。
- 網頁抓取與清理: 透過無頭瀏覽器 Playwright 異步造訪目標網頁,解析並將原始 HTML 轉換為乾淨的 Markdown 格式文字。
- 語意分塊與向量化: 將長篇網頁內容依語意切分成文字區塊,並透過輕量化嵌入模型(如
gte-small)生成向量。 - 相似度重排: 依使用者查詢計算語意相關性,挑選關聯度最高的情境片段(通常限制在 8,000 字元內)注入系統脈絡。
- 生成與引用: 模型結合注入的事實資訊完成回答,並在正文與下方提供可點擊的來源參照標籤。
二、進階延伸:設定與串接自訂社群工具(Community Tools)
通用搜尋引擎常受限於網站架構,且難以直連特定論文庫或內部資料庫。HuggingChat 推出的 Community Tools 機制允許開發者將任何公開的 Hugging Face Space(Gradio 應用程式)直接封裝為模型可調用的外部工具。
第一步:準備或建立 Gradio 工具 Space
只要是一個公開、具備標準輸入輸出介面的 Gradio Space,皆可作為工具串接。
- 使用官方範本: Hugging Face 提供了如
nsarrazin/rag-tool-template的標準範本。複製該 Space 後,將 PDF 或 Markdown 檔案放入sources/目錄,即可快速生成專屬文獻 RAG 介面。 - 撰寫自訂 Python 工具: 在免費的 CPU Basic 規格 Space 中編寫
app.py。例如建立一個輕量級 ArXiv 文獻檢索工具:
import gradio as gr
import urllib.request
import xml.etree.ElementTree as ET
def search_arxiv(query: str, max_results: int = 3) -> str:
url = f"http://export.arxiv.org/api/query?search_query=all:{urllib.parse.quote(query)}&max_results={max_results}"
response = urllib.request.urlopen(url).read().decode("utf-8")
root = ET.fromstring(response)
results = []
for entry in root.findall("{http://www.w3.org/2005/Atom}entry"):
title = entry.find("{http://www.w3.org/2005/Atom}title").text.strip()
summary = entry.find("{http://www.w3.org/2005/Atom}summary").text.strip()
results.append(f"Title: {title}\nSummary: {summary}\n")
return "\n---\n".join(results) if results else "No papers found."
demo = gr.Interface(
fn=search_arxiv,
inputs=[gr.Textbox(label="Query"), gr.Number(label="Max Results", value=3)],
outputs="text",
title="ArXiv Search Tool"
)
demo.launch()
第二步:在 HuggingChat 中註冊工具
- 進入工具管理頁面
https://huggingface.co/chat/tools,點擊 Create New Tool(或直接前往https://huggingface.co/chat/tools/new)。 - 在 Hugging Face Space URL 輸入欄中貼上 Space 網址(例如
https://huggingface.co/spaces/your-username/arxiv-search)。 - 系統會自動解析 Gradio 介面定義,偵測參數名稱與型態。
- 填寫核心設定欄位:
- Tool Description(工具描述): 用簡潔準確的文字寫明功能與呼叫情境(例如:“Searches ArXiv for recent AI preprints based on query terms”)。大型語言模型依據此描述決定是否觸發此工具。
- AI Function Name(函數名稱): 設定以底線分隔的唯一小寫名稱(如
search_arxiv_preprints)。 - 參數設定(Arguments):
- Required(必填): 模型必須傳入具體數值才能呼叫。
- Optional(選填): 提供預設值,模型可視需要進行覆蓋。
- Fixed(固定值): 寫死固定參數,對模型隱藏,適用於預設分類或權限標記。
- 點擊儲存後,該工具即收錄至個人工具庫中。
三、打造專屬研究助手:設定具備連網能力的 Assistant
為避免每次發起新對話時都手動重複設定,可透過 HuggingChat Assistants 將整個研究流程固定下來:
- 開啟助手建立頁面:
https://huggingface.co/chat/settings/assistants/new。 - 基本資訊設定: 為助手命名(例如:「AI 學術前沿檢索助手」)並設定頭像。
- 選擇底座模型: 優先選用經過原生工具呼叫微調的開源模型。Cohere Command R+ 與 Llama 3.1 70B 在多步驟函數調用與引用一致性上表現格外優秀。
- 撰寫系統提示詞(System Instructions): 明確規範事實查證準則與工具呼叫時機:
你是一名嚴謹的研究分析助手。 在回答任何關於最新論文、開源專案或基準效能的問題時,必須先呼叫 web search 或自訂檢索工具取得權威資訊。 嚴禁脫離檢索到的文字內容進行無依據的推論或猜測。 回答中必須明確附上檢索來源的標題與網址。 - 掛載能力與工具:
- 勾選 Web search,讓助手具備預設網路檢索能力。
- 在 Community Tools 中選取至多 3 個已建立或社群公開的工具 Space。
- 點擊 Create 儲存。建立完成的 Assistant 可透過獨立網址公開分享,也能供團隊內部評測使用。
四、企業與實驗室私有化:自託管 chat-ui 設定
針對注重資料隱私與合規要求的高校實驗室或企業研發團隊,Hugging Face 將整體前後端程式碼完全開源於 huggingface/chat-ui。
核心環境變數配置
在專案根目錄的 .env.local 檔案中設定模型端點與檢索服務:
# 資料庫儲存
MONGODB_URL=mongodb://localhost:27017
MONGODB_DB_NAME=chat-ui
# 相容 OpenAI 協定的推論節點(可串接 vLLM、Ollama、llama.cpp 或 Hugging Face 路由)
OPENAI_BASE_URL=https://router.huggingface.co/v1
OPENAI_API_KEY=hf_your_huggingface_access_token
# 網路搜尋服務設定
SERPER_API_KEY=your_serper_api_dev_key
# 亦可串接內網自行架設的 SearXNG 實例:
# SEARXNG_QUERY_URL=http://localhost:8080/search?q=<query>&format=json
# 網頁抓取與嵌入安全控制
USE_LOCAL_WEBSEARCH=false
WEBSEARCH_ALLOWLIST=[]
WEBSEARCH_BLOCKLIST=[]
完成設定後執行 npm install 與 npm run dev,即可於內網環境啟動具備網頁爬蟲、向量搜尋與開源模型 RAG 的完整對話系統。
實務考量與權衡建議
- 模型規模與工具調用可靠性: 8B 及以下的小型模型在處理複雜工具參數時較易出現格式錯誤,或在缺乏搜尋結果時編造假網址。進行嚴肅的學術驗證時,建議採用 70B 級別模型或專為檢索設計的 Command R+。
- 回應延遲與即時性平衡: 純文字推論通常可在 1–3 秒內完成,但加入網路爬蟲、向量化與重排的連網流程約需額外耗時 3–6 秒。對於大量固定的文獻資源,建議預先建立持久化向量 Space,避免每次重複進行全網爬取。
- 查驗原始參考片段: 開源 RAG 的核心價值在於透明性。閱讀模型總結的結論時,應點擊引用標籤檢視檢索回傳的原文,防範內容摘要過程中可能發生的理解偏差。
藉由 HuggingChat 的內建連網搜尋與社群工具體系,開源模型不再受限於靜態訓練資料,而能成為兼具即時檢索、事實驗證與深度分析能力的現代化科研利器。