如何通过api访问SearXNG
本文示例SearXNG http api和langchain api两种访问方式。
假设SearXNG已经安装,具体过程参考
Mac M1探索AnythingLLM+SearXNG-CSDN博客
1 requests访问SearXNG
api: /search
经过测试发现,SearXNG通过cookies设置启用和禁用哪些搜索引擎。
如果未设置cookies,则返回为空。
精简版cookies示例如下
disabled_engines=
"wikidata__general\054
duckduckgo__general\054
google__general\054
brave__general";
enabled_engines=
bing__general'
代码示例如下
import json
import requestsquery = "LLM"
url = "http://127.0.0.1:8080/search?q={}&format=json".format(query)ck_txt = 'disabled_engines="wikidata__general\054duckduckgo__general\054google__general\054brave__general"; ' \'enabled_engines=bing__general'cookies = {}
for ck in ck_txt.split(";"):k, v = ck.split("=")cookies[k.strip()] = v.strip()response = requests.get(url, cookies=cookies)resp_data = json.loads(response.text)
results = resp_data["results"]
for d in results:print(d)
2 langchain访问SearXNG
api: SearxSearchWrapper
1)安装langchain_community
pip install langchain_community
2)运行搜索
程序示例如下
from langchain_community.utilities import SearxSearchWrapper
s = SearxSearchWrapper(searx_host="http://localhost:8080")
print(s.run("what is a large language model?"))
未获取到有效返回,初步看应该是langchain未设置搜索引擎所致。
No good search result found
reference
---
SearxSearchWrapper
https://python.langchain.com/api_reference/community/utilities/langchain_community.utilities.searx_search.SearxSearchWrapper.html
高效使用SearxNG Search API:实用指南与示例
https://juejin.cn/post/7448507035399995432
探索SearxNG Search API:在LangChain中完美集成的指南
https://juejin.cn/post/7448507035399995432
SearxNG 搜索
https://python.langchain.ac.cn/docs/integrations/tools/searx_search/