Discourse AI - AI 搜索

:bookmark: 本指南介绍如何启用和配置 AI 搜索功能,该功能是 Discourse AI 插件的一部分。

:person_raising_hand: 所需用户等级:管理员

相关话题 类似,AI 搜索可帮助您使用语义文本相似性查找最相关的主题,这些主题超出了传统搜索所使用的精确关键词匹配。这有助于发现那些非精确匹配但与初始搜索仍然相关的主题。如果您找不到想要的内容,AI 搜索可以提供帮助!

功能

  • 语义文本相似性:超越单纯的关键词匹配,使用语义分析查找文本相似性
  • AI 快速搜索:当找到很少的常规结果时,在搜索菜单弹出窗口中自动添加 AI 结果(通过 ai_embeddings_semantic_quick_search_enabled 启用)
  • 在全页搜索中可以切换 AI 搜索的开启/关闭状态
  • 可选的 HyDE(假设文档嵌入):使用大型语言模型 (LLM) 来扩展查询以获得更好的结果
  • 结果以 :sparkles: 图标表示
  • 对匿名用户和已登录用户都适用

启用 AI 搜索

先决条件

要使用 AI 搜索,您需要配置嵌入 (Embeddings)。如果您启用了 HyDE(假设文档嵌入)以提高搜索质量,则可以选择性地需要一个大型语言模型 (LLM)。

嵌入 (Embeddings)

如果您使用的是我们的托管服务,我们将提供一个默认选项。对于自托管用户,请遵循 Discourse AI - Embeddings 中的指南。

大型语言模型 (LLM)(可选 — 用于 HyDE)

仅当您启用 ai_embeddings_semantic_search_use_hyde 设置时才需要 LLM,该设置使用 LLM 从搜索查询中创建假设文档,然后再对其进行嵌入。这可以提高结果质量,但会增加延迟和成本。

要开始使用,您可以从 Discourse AI - Large Language Model (LLM) settings page 配置它们。

配置

  1. 进入 AdminPluginsDiscourse AIFeaturesEmbeddings 查找所有 AI 搜索设置
  2. 启用 ai_embeddings_enabled 以启用嵌入
  3. 启用 ai_embeddings_semantic_search_enabled 以在全页搜索中激活 AI 搜索
  4. 可选地启用 ai_embeddings_semantic_quick_search_enabled 以在搜索菜单弹出窗口中添加 AI 结果
  5. 可选地启用 ai_embeddings_semantic_search_use_hyde 以使用 HyDE 来改进结果(需要 LLM)

技术常见问题解答

展开以查看 AI 搜索逻辑大纲(启用 HyDE 时)
mermaid height=255,auto
sequenceDiagram
    User->>+Discourse: 搜索 "游戏化" 
    Discourse->>+LLM: 创建一篇关于“游戏化”的关于“Discourse,一个开源的互联网论坛系统”的文章<br>  “Discourse, an open source Internet forum system.”
    LLM->>+Discourse: 游戏化涉及将游戏设计元素如<br>积分、徽章、等级和排行榜应用于非游戏背景...
    Discourse->>+EmbeddingsAPI: 为“游戏化涉及应用游戏设计...”生成嵌入
    EmbeddingsAPI->>+Discourse: [0.123, -0.321...]
    Discourse->>+PostgreSQL: 给出最接近 [0.123, -0.321...] 的话题
    PostgreSQL->>+Discourse: 话题: [1, 5, 10, 50]
    Discourse->>+User: 话题: [1, 5, 10, 50]

AI 搜索如何工作?

  • 当启用 HyDE(ai_embeddings_semantic_search_use_hyde)时,搜索查询会通过 LLM 运行,LLM 会创建一个假设的主题/帖子。然后从该假设帖子生成嵌入,并用于在您的网站上搜索相似的匹配项。当禁用 HyDE(默认设置)时,搜索查询将直接被嵌入并用于相似性匹配。在两种情况下,结果都会与常规搜索结果合并,使用倒数排名融合 (RRF) 来重新排序前几条结果。

主题/帖子数据是如何处理的?

  • 启用 HyDE 时,LLM 数据由第三方提供商处理;请参阅您的特定提供商了解更多详细信息。默认情况下,嵌入微服务与其他托管您现有论坛的服务器一起运行。这里没有第三方参与,这些特定信息绝不会离开您的内部网络,我们会在虚拟私有数据中心内处理。

数据去了哪里?

  • 启用 HyDE 时,LLM 提供商创建的假设主题/帖子会与该文档的嵌入一起临时缓存。嵌入数据存储在我们存储您的主题、帖子和用户的同一个数据库中,它是该数据库中的另一个数据表。

“嵌入”的“语义模型”是什么样的?它是如何“训练”的,有没有办法测试它是否能准确应用于我们“专业化”社区的主题?

  • 默认情况下,我们使用预训练的开源模型,例如这个。我们已部署给许多客户,发现它对小众和通用社区都表现良好。如果性能对您的用例不够好,我们有更复杂的模型可供选择,但根据我们的经验,默认选项是一个可靠的选择。
6 个赞

我注意到 ai embeddings semantic search hyde model 有一个小的 UI 错误。重现步骤:

  1. 安装 AI Discourse 插件
  2. 打开设置 → 配置 Gemini 密钥
  3. 启用 ai embeddings semantic search enabled
  4. ai embeddings semantic search hyde model 显示 Google - gemini-pro (未配置)

在启用所有配置并刷新页面后,“未配置”才会消失。

2 个赞

我认为这是我们网站设置页面的一个限制,对此我感到抱歉,很高兴您能够解决它。

1 个赞

关于语义学的一个问题。在一些 AI 模块中,我看到提到使用 Gemini,而在另一些模块中,我看到提到 Gemini-Pro。它们指的是不同的模型(Gemini Nano、Pro 和 Ultra)还是同一个 LLM?如果是这样,那么 Gemini 本身指的是什么,以及拥有 Gemini 的付费或免费订阅是否有区别?

1 个赞

有不同的 Gemini 模型,就像您指出的那样。根据您拥有的模型(很可能是 pro,因为它目前是免费的),您只需在相关设置中插入 API 密钥即可。该设置适用于您拥有的任何 Gemini 模型。

这取决于您以及您想如何使用 Gemini,但两者都应该可以工作。

更多信息请参见此处:

1 个赞

有什么方法可以将某些内容注入到 LLM 的初始提示中,或者在嵌入传递给常规搜索之前对其进行操作?

我正在尝试提升(或可能拆分)员工回复(更权威)与社区回复。

2 个赞

目前,我们不支持 AI 搜索中的任何自定义 LLM 提示注入,但这可能是未来要添加的功能。

我建议提交一个 #功能请求

2 个赞

我刚开始使用AI搜索,感觉还不错。我找不到不总是用它的理由。有没有办法只显示AI的结果(除了用CSS隐藏.fps-result但不隐藏.ai-result)?

另外,你能详细说明在哪里找到快速搜索吗?

[引用=“Discourse,帖子:1,话题:282420”]
我在快速搜索中看到一个AI选项?

  • AI快速搜索选项通过跳过创建假设帖子来实现更快的AI搜索。有时这个选项更快,并提供更相关的结果,但有时则不尽如人意。
    [/引用]
1 个赞

嘿,那只是暂时在 Meta 上作为一项实验提供。我已经从 OP 中删除了它——感谢您指出这一点。

我们正在使用 Discourse Algolia Search 进行标题中的自动完成搜索。我们可以继续使用 Discourse AI - AI Search 吗?

帖子已拆分为新主题:未显示 Discourse AI 的用户偏好设置面板