在前面的图文当ChatGLM3能用搜索引擎时中,我们让ChatGLM3在搜索引擎上进行的简单的搜索,但是仅仅只能搜索一些简单的内容,比如,时间。但是实际搜索中,往往不能满足要求,因为使用的是selenium进行的一个简单google搜索,所以针对复杂的搜索需求,现在对这个功能进行升级。之前我们用的是google搜索,现在我们使用ddgs---duckduckgo search。
DuckDuckGo是一款网际网路搜寻引擎,其注重用户私隐,及避免个性化检索所致的过滤气泡。它与其他搜寻引擎不同的地方在于其不会分析自己的用户、对所有使用同一组关键词的用户显示同样的结果。它也强调返回最佳结果,而不是最多网站连接之结果。它会在搜寻结果中引入其他独立来源的内容,总数多于400个,其中包括像维基百科般的众包网站、其他搜寻引擎(如Bing、Yandex、Yahoo! Search)。在2021年3月,它平均每日处理的搜寻量达98,629,221宗。
重要的是DuckDuckGo提供免费的API使用,只需要简单的pip安装,既可以使用python脚本或者cli进行调用搜索。
所以我们对之前的搜索方式进行升级,首先我们安装DuckDuckGo
pip install -U duckduckgo_search
然后修改原来的注册脚本
def google_results(query):
content = ""
with DDGS() as ddgs:
for r in ddgs.text(query, max_results=5):
content = content + r['title'] + "\n" + r['href'] + "\n" + r['body'] + "\n" + "\n\n"
print(content)
if content == "":
ret