# 网络搜索

将网络搜索结果添加到 LLM 提示中。

# 可用源

# Selenium 插件

需要安装并启用官方服务器插件。

有关更多详细信息,请参见 SillyTavern-WebSearch-Selenium

支持 Google 和 DuckDuckGo 引擎。

# Extras API

需要在主机上安装 websearch 模块和 Chrome/Firefox 网络浏览器。

支持 Google 和 DuckDuckGo 引擎。

# SerpApi

需要 API 密钥。

在此处获取密钥:https://serpapi.com/dashboard

# SearXNG

需要 SearXNG 实例 URL(私有或公共)。使用 HTML 格式作为搜索结果。

SearXNG 偏好字符串:从 SearXNG - 偏好 - COOKIES - 复制偏好哈希获取

了解更多:https://docs.searxng.org/

# Tavily AI

需要 API 密钥。

在此处获取密钥:https://app.tavily.com/

# KoboldCpp

必须在文本完成 API 设置中提供 KoboldCpp URL。KoboldCpp 版本必须 >= 1.81.1,并且必须在启动时启用 WebSearch 模块:在 GUI 启动器中启用网络 => 启用 WebSearch 或将 --websearch 添加到命令行。

参见:https://github.com/LostRuins/koboldcpp/releases/tag/v1.81.1

# Serper

需要 API 密钥。

在此处获取密钥:https://serper.dev/

# 如何使用

  1. 确保您使用的是最新版本的 SillyTavern。
  2. 通过 SillyTavern 中的"下载扩展和资产"菜单安装扩展。
  3. 打开"网络搜索"扩展设置,设置您的 API 密钥或连接到 Extras,并启用扩展。
  4. 网络搜索结果将在您聊天时有机地添加到提示中。只有用户消息触发搜索。
  5. 为了更有机地包含搜索结果,用单个反引号包装搜索查询:告诉我关于 `最新的瑞恩·高斯林电影`。 将产生搜索查询 最新的瑞恩·高斯林电影
  6. 可选地,根据您的喜好配置设置。

# 设置

# 通用

  1. 启用 - 打开和关闭扩展。
  2. 源 = 设置搜索结果源。
  3. 缓存生命周期 - 搜索结果为您的提示缓存的时间(以秒为单位)。默认 = 一周。

# 提示设置

  1. 提示预算 - 设置插入文本的最大容量(以文本字符为单位,不是令牌)。经验法则:1 个令牌约 3-4 个字符,根据您模型的上下文限制进行调整。默认 = 1500 个字符。
  2. 插入模板 - 结果如何插入到提示中。支持通常的宏 + 特殊宏:{{query}} 用于搜索查询,{{text}} 用于搜索结果。
  3. 注入位置 - 结果在提示中的位置。与作者笔记相同的选项:作为聊天中注入或在系统提示之前/之后。

# 搜索激活

  1. 使用函数工具 - 使用函数调用来激活搜索或抓取网页。必须使用支持的聊天完成 API 并在 AI 响应设置中启用。启用时禁用所有其他激活方法。
  2. 使用反引号 - 启用使用单个反引号括起来的单词激活搜索。
  3. 使用触发短语 - 启用使用触发短语激活搜索。
  4. 正则表达式 - 提供 JS 风格的正则表达式来匹配用户消息。如果正则表达式匹配,将使用给定查询触发搜索。搜索查询支持 `` 和 $1 语法来引用匹配的组。示例:搜索查询 news in $1/what is happening in (.*)/i 正则表达式将匹配包含 what is happening in New York 的消息,并使用查询 news in New York 触发搜索。
  5. 触发短语 - 逐个添加将触发搜索的短语。它可以在消息中的任何位置,查询从触发词开始并延伸到"最大单词"总数。要将特定消息排除在处理之外,它必须以句点开头,例如 .What do you think?。触发器优先级:首先按文本框中的顺序,然后是用户消息中的第一个。
  6. 最大单词数 - 搜索查询中包含多少单词(包括触发短语)。Google 每个提示限制约为 32 个单词。默认 = 10 个单词。

# 页面抓取

  1. 访问链接 - 文本将从访问的搜索结果页面中提取并保存到文件附件中。
  2. 访问计数 - 将访问和解析多少链接以获取文本。
  3. 访问域名黑名单 - 要排除在访问之外的网站域名。每行一个。
  4. 文件标题 - 文件标题模板,插入到文本文件的开头,具有额外的 {{query}} 宏。
  5. 块标题 - 链接块模板,与每个链接的解析内容一起插入。对页面 URL 使用 {{link}} 宏,对页面内容使用 {{text}} 宏。
  6. 保存目标 - 在哪里保存抓取结果。可能的选项:触发消息附件,或数据银行的聊天附件,或仅图像(如果源支持它们)。
  7. 包含图像 - 将相关图像附加到聊天。需要支持图像的源(见下文)。

# 更多信息

最新查询的搜索结果将保持在提示中,直到找到下一个有效查询。 如果您想提出额外问题而不意外触发搜索,请用句点开始您的消息。

触发器优先级(如果启用了多个):

  1. 反引号。
  2. 正则表达式。
  3. 触发短语。

要丢弃所有以前的查询进行处理,请用感叹号开始用户消息,例如,用户消息 !Now let's talk about... 将丢弃此消息及其上方的每条消息。

此扩展还提供了 /websearch 斜杠命令以在 STscript 中使用。更多信息在此处:STscript 语言参考

stscript
/websearch (links=on|off snippets=on|off [query]) – 执行网络搜索查询。使用命名参数指定要返回的内容 - 页面片段(默认:开)、完整解析页面(默认:关)或两者。

示例:/websearch links=off snippets=on how to make a sandwich

# 搜索结果中可以包含什么?

同义词库:

  • 答案框:问题的直接答案。
  • 知识图谱:关于主题的百科知识。
  • 页面片段:网页的相关摘录。
  • 相关问题:类似主题的问题和答案。
  • 图像:相关图像。

# SerpApi

  1. 答案框。
  2. 知识图谱。
  3. 页面片段(最多 10 个)。
  4. 相关问题(最多 10 个)。
  5. 图像(最多 10 个)。

# Selenium 插件和 Extras API

  1. Google - 答案框、知识图谱、页面片段。
  2. DuckDuckGo - 页面片段。

Selenium 插件可以额外提供图像。

# SearXNG

  1. 信息框。
  2. 页面片段。
  3. 图像。

# Tavily AI

  1. 答案。
  2. 页面内容。
  3. 图像(最多 5 个)。

# KoboldCpp

  1. 页面标题。
  2. 页面片段。

# Serper

  1. 答案框。
  2. 知识图谱。
  3. 页面片段。
  4. 相关问题。
  5. 图像。