Discourse AI - AI搜索

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

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

相关主题 类似,AI 搜索可帮助您使用与传统搜索的精确关键字匹配不同的语义文本相似性来查找最相关的主题。这可以发现与初始搜索不完全匹配但仍然相关的主题。如果您找不到所需内容,AI 搜索将为您提供帮助!

功能

  • 语义文本相似性:超越关键字匹配,使用语义分析查找文本相似性
  • AI 快速搜索
  • 在全页搜索中启用/禁用 AI 搜索
  • 结果由 :sparkles: 图标指示
  • 适用于匿名和已登录用户

启用 AI 搜索

先决条件

要使用 AI 搜索,您需要 Embeddings 和一个大型语言模型 (LLM)。

Embeddings

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

大型语言模型 (LLM)

Discourse 托管客户和自托管用户必须配置至少一个来自提供商的大型语言模型 (LLM)。

要开始配置,您可以访问 Discourse AI - 大型语言模型 (LLM) 设置页面

配置

  1. 转到 Admin 设置 → Plugins → 搜索或查找 discourse-ai 并确保它已启用
  2. 启用 ai_embeddings_enabled 以启用 Embeddings
  3. 启用 ai_embeddings_semantic_search_enabled 以激活 AI 搜索

技术常见问题解答

展开以查看 AI 搜索逻辑大纲
mermaid height=255,auto
sequenceDiagram
    User->>+Discourse: 搜索“游戏化”
    Discourse->>+LLM: 创建一个关于“游戏化”的帖子,主题为“Discourse,一个开源互联网论坛系统。”
    LLM->>+Discourse: 游戏化涉及将游戏设计元素(如积分、徽章、级别和排行榜)应用于非游戏上下文...
    Discourse->>+EmbeddingsAPI: 为“游戏化涉及将游戏设计...”生成 Embeddings
    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 搜索如何工作?

  • 初始搜索查询通过 LLM 运行,LLM 创建一个假设的主题/帖子。之后,对该帖子进行 Embeddings,然后搜索您的网站以查找与搜索查询相似的匹配项。最后,它使用 Reciprocal Rank Fusion (RFF) 将排名靠前​​的结果与常规搜索结果进行重新排序。

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

  • LLM 数据由第三方提供商处理,请参阅您特定的提供商了解更多详情。默认情况下,Embeddings 微服务与托管您现有论坛的其他服务器一起运行。这里没有第三方参与,该特定信息永远不会离开您私有数据中心的内部网络。

数据去哪里?

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

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

  • 默认情况下,我们使用预训练的开源模型,例如这个。我们已部署给许多客户,并发现它在利基社区和通用社区中都表现良好。如果性能不足以满足您的用例,我们有更复杂的模型可供使用,但根据我们的经验,默认选项是一个可靠的选择。
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 的用户偏好设置面板