在前面的文章中,我们介绍了如何使用 AnythingLLM 和 Ollama 搭建私有知识库。虽然这个组合已经具备了处理私有数据和文档的 AI 应用能力,但在实际应用中,我们通常还需要结合 Web 搜索能力,以便获取最新的信息并输出更加有效的结果。Web Search
本文将详细介绍如何在 AnythingLLM 中启用 Web 搜索功能,并配置 Google Search Engine 和 DuckDuckGo 搜索引擎。此外,我还将介绍一下如何在网络受限的情况下,通过 Web Scraping 实现搜索功能。
启用 Web Search
- 选择搜索引擎:选择一个搜索引擎。如果你只是想尝试一下,建议选择
DuckDuckGo
,因为它无需任何配置即可直接使用。 - 打开设置:在 AnythingLLM 的设置界面中,找到“代理技能”选项。
- 启用 Web Search:在代理技能列表中找到
Web Search
,点击开启。

注意: 无论是
DuckDuckGo
还是Google Search Engine
,都需要科学上网才能正常使用。
申请 Google Search API Key
访问 Google Search 控制台:前往 Google Search 控制台 创建一个新的搜索引擎。


自定义搜索引擎:创建完成后,点击“自定义”按钮,进入配置页面。


获取 API Key:在页面底部,点击“开始使用”按钮,然后点击“获取密钥”按钮。
获取搜索引擎 ID:在配置页面中,找到搜索引擎 ID,并记录下来。这个 ID 在后续配置 AnythingLLM 时会用到。

创建 API Key:自定义一个项目名称,勾选“Yes”,然后点击“下一步”。

注意: 申请 API Key 时可能需要使用海外 IP 进行全局代理,否则可能会受到地区限制。

复制 API Key:创建成功后,复制生成的 API Key。
配置 Google Search Engine
回到 AnythingLLM:在 AnythingLLM 的设置界面中,将搜索引擎修改为 Google Search Engine

输入配置信息:在相应的输入框中,填入之前获取的 Search Engine ID
和 API Key
,然后点击保存。

Web Scraping 功能
受限于网络环境,如果 Web Search Agent 无法正常工作,可以使用 AnythingLLM 自带的 web-scraping
功能作为折中方案来进行搜索。
- 未启用 Web Search Agent 时的搜索:当 Web Search Agent 未启用时,直接让 agent 进行搜索,系统会尝试使用
web-scraping
爬取百度页面。

Web Search 不进行搜索
在使用 AnythingLLM 的 Web Search 功能时,可能会遇到 Agent 未按预期进行搜索的情况,以下是两个常见的问题。
1. 没有使用正确的 Agent
问题描述:
当你开启了 Web Search
功能并发送了一段话后,发现 Agent 并没有使用 web-browsing
进行搜索,而是直接基于本地知识库或模型生成回答。
原因分析:
Agent 可能没有正确识别你的意图,或者你没有明确指示它使用 web-browsing
功能。
解决方案:
- 明确指示使用 Web Search:在提示词中明确指定使用
web-browsing
。例如:- 直接提问:“@agent 使用 web-browsing 搜索最近 OpenAI 发布了哪些新功能。”
- 或者明确指示:“@agent 请帮我搜索一下最新的科技新闻。”
- 检查 Agent 配置:确保在 AnythingLLM 的设置中,
Web Search
功能已正确启用,并且选择了合适的搜索引擎(如 Google 或 DuckDuckGo)。
2. 网络错误
问题描述:
当 Agent 尝试进行 Web 搜索时,返回了类似“搜索时遇到错误”或“网络错误”的提示。
原因分析:
- 代理问题:AnythingLLM 是从内部直接发送请求的,即使你的设备开启了全局代理,AnythingLLM 也可能无法正确使用代理。
- API 限制:如果你使用的是 Google Search API,可能会因为 API 配额用尽或配置错误导致请求失败。
结语
通过本文的步骤,可以成功配置 Google Search Engine / DuckDuckGo 搜索引擎,并了解了如何在网络受限的情况下使用 Web Scraping 进行搜索。Google API 每天提供 100 次免费搜索,而 DuckDuckGo 则无需任何配置即可使用。如果网络环境受限,Web Scraping 是一个不错的替代方案。