Chat UI 文档

网页搜索

Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

网页搜索

Chat 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。

< > Update on GitHub