Chat UI 文档

网页搜索

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

网页搜索

聊天 UI 具有强大的网页搜索功能。其工作原理的高级概述如下:

  1. 使用 TASK_MODEL 从用户提示中生成适当的搜索查询
  2. 通过外部提供商(如 Serper)或本地抓取的 Google 结果进行网页搜索
  3. 将每个搜索结果加载到 Playwright 中并抓取
  4. 将抓取的 HTML 转换为以标题为父节点的 Markdown 树
  5. 为每个 Markdown 元素创建嵌入
  6. 使用向量相似度搜索(内积)找到与用户查询最接近的嵌入
  7. 获取相应的 Markdown 元素及其父节点,最多 8000 个字符
  8. 将信息作为上下文提供给模型

提供商

网页搜索支持许多提供商,您也可以使用本地抓取的 Google 结果。

本地

对于本地抓取的 Google 结果,请在您的 .env.local 文件中设置 USE_LOCAL_WEBSEARCH=true。请注意,您可能会达到速率限制,因为我们没有尝试让流量看起来合法。为避免此问题,您可以选择一个提供商,例如官方实例使用的 Serper。

SearXNG

SearXNG 是一个免费的互联网元搜索引擎,它聚合了来自各种搜索服务和数据库的结果。用户既不会被跟踪,也不会被分析。

您可以通过 SEARXNG_QUERY_URL 启用支持,其中 <query> 将被替换为查询关键字。更多信息请参阅官方文档

示例: https://searxng.yourdomain.com/search?q=<query>&engines=duckduckgo,google&format=json

第三方

也支持许多第三方提供商。官方实例使用 Serper。

YDC_API_KEY=docs.you.com api key here
SERPER_API_KEY=serper.dev api key here
SERPAPI_KEY=serpapi key here
SERPSTACK_API_KEY=serpstack api key here
SEARCHAPI_KEY=searchapi api key here

阻止/允许列表

您可以从网页搜索结果中阻止或允许特定网站。使用允许列表时,只有允许列表中的链接会被使用。对于支持的搜索引擎,链接将直接从结果中被阻止。结果中任何与条目**部分或完全匹配**的 URL 都将被过滤掉。

WEBSEARCH_BLOCKLIST=`["youtube.com", "https://example.com/foo/bar"]`
WEBSEARCH_ALLOWLIST=`["stackoverflow.com"]`

禁用 Javascript

默认情况下,Playwright 会执行页面上的所有 Javascript。在某些网页上,这可能会很耗费资源,需要多达 6 个核心才能达到最佳性能。您可以通过设置 WEBSEARCH_JAVASCRIPT=false 来阻止脚本运行。但是,这不会阻止内联在 HTML 中的 Javascript。

< > 在 GitHub 上更新