网页搜索
将网页搜索结果添加到 LLM 提示词中。
Note
部分聊天补全来源自带网页搜索功能。在这种情况下,本扩展基本上是多余的。请查看 AI 响应配置面板中的“启用网页搜索(Enable web search)”开关。例如,Claude、Google AI Studio / Vertex AI、OpenRouter、Chutes 等后端均提供该功能。
可用来源
Selenium Plugin
需要安装并启用官方服务器插件。
详情请参见 SillyTavern-WebSearch-Selenium。
支持 Google 和 DuckDuckGo 引擎。
Extras API
需要在主机上安装 websearch 模块以及 Chrome/Firefox 网页浏览器。
支持 Google 和 DuckDuckGo 引擎。
SerpApi
需要 API 密钥。
在此获取密钥:https://serpapi.com/dashboard
SearXNG
需要 SearXNG 实例 URL(私有或公共均可)。搜索结果使用 HTML 格式。
SearXNG 偏好设置字符串:从 SearXNG - preferences - COOKIES - Copy preferences hash 获取。
了解更多:https://docs.searxng.org/
Tavily AI
需要 API 密钥。
在此获取密钥:https://app.tavily.com/
KoboldCpp
必须在文本补全 API 设置中提供 KoboldCpp URL。KoboldCpp 版本必须 >= 1.81.1,并且启动时必须启用 WebSearch 模块:在 GUI 启动器中启用 Network => Enable WebSearch,或者在命令行中添加 --websearch。
参见:https://github.com/LostRuins/koboldcpp/releases/tag/v1.81.1
Serper
需要 API 密钥。
在此获取密钥:https://serper.dev/
Z.AI
需要 API 密钥,请先在聊天补全 API 设置中配置。与 Coding API 订阅不兼容!
在此获取密钥:https://z.ai/manage-apikey/apikey-list/
文档:https://docs.z.ai/api-reference/tools/web-search
使用方法
- 确保你使用的是最新版本的 SillyTavern。
- 通过 SillyTavern 的“下载扩展与素材(Download Extensions & Assets)”菜单安装本扩展。
- 打开“网页搜索(Web Search)”扩展设置,设置你的 API 密钥或连接到 Extras,然后启用扩展。
- 聊天时,网页搜索结果会自然地添加到提示词中。只有用户消息会触发搜索。
- 为了让搜索结果更自然地融入,可以用单反引号包裹搜索查询:
Tell me about the `latest Ryan Gosling movie`.将生成搜索查询latest Ryan Gosling movie。 - 可根据个人喜好进行设置配置。
设置
常规
- Enabled - 开启或关闭本扩展。
- Sources - 设置搜索结果来源。
- Cache Lifetime - 搜索结果为提示词缓存的时长(以秒为单位)。默认 = 一周。
提示词设置
- Prompt Budget - 设置插入文本的最大容量(按文本字符数计算,而非 token)。经验法则:1 个 token 约 3-4 个字符,请根据模型的上下文限制进行调整。默认 = 1500 个字符。
- Insertion Template - 搜索结果插入提示词的方式。支持常规宏及特殊宏:{{query}} 表示搜索查询,{{text}} 表示搜索结果。
- Injection Position - 搜索结果在提示词中的插入位置。选项与作者备注相同:聊天内注入,或系统提示词之前/之后。
搜索激活
- Use function tool - 使用函数调用来激活搜索或抓取网页。必须使用受支持的聊天补全 API,并在 AI 响应设置中启用。启用后将禁用所有其他激活方式。
- Use Backticks - 启用通过单反引号包裹的词来激活搜索。
- Use Trigger Phrases - 启用通过触发词来激活搜索。
- Regular expressions - 提供一个 JS 风格的正则表达式来匹配用户消息。如果匹配成功,将使用给定查询触发搜索。搜索查询支持 `` 宏和 $1 语法来引用匹配的捕获组。示例:正则表达式
/what is happening in (.*)/i配合搜索查询news in $1,可匹配包含what is happening in New York的消息,并触发查询news in New York的搜索。 - Trigger Phrases - 逐个添加会触发搜索的短语。它可以出现在消息中的任何位置,查询从触发词开始,并延伸至总共“Max Words”个词。若要将某条消息排除在处理范围之外,它必须以句点开头,例如
.What do you think?。触发优先级:先按文本框中的顺序,再按用户消息中出现的先后。 - Max Words - 搜索查询中包含的词数(包括触发词)。Google 对每个查询约限制 32 个词。默认 = 10 个词。
页面抓取
- Visit Links - 将从访问的搜索结果页面中提取文本,并保存为文件附件。
- Visit Count - 要访问并解析文本的链接数量。
- Visit Domain Blacklist - 要排除访问的站点域名。每行一个。
- File Header - 文件头模板,插入到文本文件开头,带有额外的 {{query}} 宏。
- Block Header - 链接块模板,随每个链接的解析内容插入。使用 {{link}} 宏表示页面 URL,使用 {{text}} 宏表示页面内容。
- Save Target - 抓取结果的保存位置。可选:触发消息附件、数据银行的聊天附件,或仅图片(如果来源支持)。
- Include Images - 将相关图片附加到聊天中。需要支持图片的来源(见下文)。
更多信息
来自最近一次查询的搜索结果会保留在提示词中,直到找到下一次有效查询。
如果你想在提问时避免意外触发搜索,请以句点开头你的消息。
如果已启用且可用,网页搜索的函数工具将始终覆盖其他触发器。
触发器优先级(当多个同时启用时):
- 反引号。
- 正则表达式。
- 触发词。
若要丢弃此前所有查询的处理,请以感叹号开头用户消息,例如用户消息 !Now let's talk about... 将丢弃这条及它上面的所有消息。
本扩展还提供一个可在 STscript 中使用的 /websearch 斜杠命令。更多信息请参见:STscript 语言参考
/websearch (links=on|off snippets=on|off [query]) – performs a web search query. Use named arguments to specify what to return - page snippets (default: on), full parsed pages (default: off) or both.
Example: /websearch links=off snippets=on how to make a sandwich
搜索结果可以包含哪些内容?
词典说明:
- Answer box:问题的直接答案。
- Knowledge graph:关于该主题的百科知识。
- Page snippets:网页中的相关摘录。
- Relevant questions:相关主题的问答。
- Images:相关图片。
SerpApi
- Answer box。
- Knowledge graph。
- Page snippets(最多 10 条)。
- Relevant questions(最多 10 条)。
- Images(最多 10 张)。
Selenium Plugin 和 Extras API
- Google - answer box、knowledge graph、page snippets。
- DuckDuckGo - page snippets。
Selenium Plugin 还可以额外提供图片。
SearXNG
- Infobox。
- Page snippets。
- Images。
Tavily AI
- Answer。
- Page contents。
- Images(最多 5 张)。
KoboldCpp
- Page titles。
- Page snippets。
Serper
- Answer box。
- Knowledge graph。
- Page snippets。
- Relevant questions。
- Images。
Z.AI
- Page titles。
- Page snippets。