跳到主要內容
Open on GitHub

SearxNG 搜尋 API

本頁涵蓋如何在 LangChain 中使用 SearxNG 搜尋 API。它分為兩個部分:安裝與設定,以及特定 SearxNG API 封裝器的參考。

安裝與設定

雖然可以結合 公開的 searx 實例 使用封裝器,但這些實例通常不允許 API 存取(請參閱下方關於輸出格式的註記),並且對請求頻率有限制。建議選擇自架實例。

自架實例:

請參閱此頁面以取得安裝說明。

當您安裝 SearxNG 時,預設情況下唯一啟用的輸出格式是 HTML 格式。您需要啟用 json 格式才能使用 API。這可以透過將以下行新增至 settings.yml 檔案來完成

search:
formats:
- html
- json

您可以發出 curl 請求至 API 端點,以確保 API 正常運作

curl -kLX GET --data-urlencode q='langchain' -d format=json https://127.0.0.1:8888

這應該會傳回包含結果的 JSON 物件。

封裝器

實用工具

若要使用封裝器,我們需要將 SearxNG 實例的主機傳遞給封裝器,並使用

  1. 具名參數 searx_host 建立實例時。
  2. 匯出環境變數 SEARXNG_HOST

您可以使用封裝器從 SearxNG 實例取得結果。

from langchain_community.utilities import SearxSearchWrapper
s = SearxSearchWrapper(searx_host="https://127.0.0.1:8888")
s.run("what is a large language model?")
API 參考:SearxSearchWrapper

工具

您也可以將此封裝器載入為工具(與代理程式一起使用)。

您可以使用以下方式執行此操作

from langchain.agents import load_tools
tools = load_tools(["searx-search"],
searx_host="https://127.0.0.1:8888",
engines=["github"])
API 參考:load_tools

請注意,我們可以選擇性地傳遞要使用的自訂引擎。

如果您想以 json 格式取得包含元數據的結果,您可以使用

tools = load_tools(["searx-search-results-json"],
searx_host="https://127.0.0.1:8888",
num_results=5)

快速建立工具

此範例展示了從同一個封裝器快速建立多個工具的方法。

from langchain_community.tools.searx_search.tool import SearxSearchResults

wrapper = SearxSearchWrapper(searx_host="**")
github_tool = SearxSearchResults(name="Github", wrapper=wrapper,
kwargs = {
"engines": ["github"],
})

arxiv_tool = SearxSearchResults(name="Arxiv", wrapper=wrapper,
kwargs = {
"engines": ["arxiv"]
})
API 參考:SearxSearchResults

有關工具的更多資訊,請參閱此頁面


此頁面是否對您有幫助?