dsh-web-search-session:使用會話模型與自建檢索後端路由 DSH 聯網搜索

DSH 自帶的聯網搜索按官方 token 額度計費。即便已經自配網關,這部分調用仍會走官方通道,費用在不知不覺中累積。該插件通過讓聯網搜索跟隨當前會話所選模型(該次調用同樣計入 dsh-cost-meter 賬本並歸入本會話),並配合自建檢索後端取回真實網頁來源,來解決這一問題。

安裝

使用官方命令安裝:

dsh plugin add dsh-web-search-session

安裝後重啓 DSH。插件通過 bundle patch 把 web 行的 searchProvider 切換爲 session。

如果需要從源碼安裝,在具備 plugin_manager 工具的會話中,對插件目錄執行 install_bundle,target 填目錄絕對路徑。安裝會寫入當前 profile 並應用 patch,無需手工編輯配置文件。

功能特性

  • 會話路由:改寫檢索詞時使用當前會話的 provider/model,而非固定模型。
  • 自建檢索:支持 SearXNG(免密鑰,推薦)、Tavily、Brave,端點與密鑰均可配置。
  • 可控回退:無路由或檢索失敗時,按 noRoute 選擇回退官方提供方、用原始問題檢索或直接報錯。
  • 憑據隔離:密鑰僅通過憑據服務或環境變量引用,不寫入插件與設置文件。
  • 可視化配置:在「插件」頁直接配置地址、密鑰與調用次數。

配置說明

配置項寫在 profile 的 cordis.patch.yml 中;標有「界面」的項也可在插件頁直接修改。

字段 類型 默認 說明
backend string none 檢索後端:none / searxng / tavily / brave
endpoint string '' 後端基址;留空時使用該後端默認端點
apiKeyEnv string '' 密鑰引用名;留空時使用該後端的默認名
sessionPlanning boolean true 是否用會話模型改寫檢索詞
noRoute string official 無路由或檢索失敗時:official / raw / error
providerId string session 本插件註冊的提供方 id,須與 web.searchProvider 一致
officialProviderId string deepseek-official 回退時委派的官方提供方 id
maxQueries number 3 單次請求最多調用後端幾次,範圍 1–20
maxResults number 8 返回來源條數上限,最大 20
planMaxTokens number 512 檢索詞改寫的輸出 token 上限
planTimeoutMs number 20000 檢索詞改寫超時(毫秒)
searchTimeoutMs number 20000 單次後端檢索超時(毫秒)
debug boolean false 輸出檢索詞與來源數量的調試日誌

後端與密鑰

後端 默認端點 密鑰變量
searxng http://127.0.0.1:8888 不需要
tavily https://api.tavily.com TAVILY_API_KEY
brave https://api.search.brave.com BRAVE_API_KEY

憑據解析優先級

密鑰不寫入插件或設置文件,按以下優先級解析:

  1. 憑據服務,引用名取 apiKeyEnv,留空時取該後端的默認名;
  2. 同名環境變量。

缺少憑據屬確定性配置錯誤,不會靜默回退官方提供方。

工作原理

  1. 讀取當前會話的 provider/model 路由。
  2. 由該模型把用戶問題改寫爲若干檢索詞,受 sessionPlanning 與 maxQueries 約束。
  3. 併發調用所選後端,按 URL 去重後返回不超過 maxResults 條來源。
  4. 任一步驟失敗時按 noRoute 處理。

兼容性要求

  • Node.js >= 20
  • DSH >= 0.1.7-rc.2(該版本起內置 @deepseek-ai/schemastery >= 3.18.3,設置項的即時生效依賴其 .volatile())

快速開始示例

  1. 準備一個 SearXNG 實例,確認 http://<host>:8888/search?q=test&format=json 返回 JSON。
  2. 打開「插件 → 已安裝 → dsh-web-search-session」,把平臺地址指向該實例。
  3. 正常發起一次聯網搜索。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜