本指南介绍如何启用和配置 AI 搜索功能,该功能是 Discourse AI 插件的一部分。
所需用户等级:管理员
与 相关话题 类似,AI 搜索可帮助您使用语义文本相似性查找最相关的主题,这些主题超出了传统搜索所使用的精确关键词匹配。这有助于发现那些非精确匹配但与初始搜索仍然相关的主题。如果您找不到想要的内容,AI 搜索可以提供帮助!
功能
- 语义文本相似性:超越单纯的关键词匹配,使用语义分析查找文本相似性
- AI 快速搜索:当找到很少的常规结果时,在搜索菜单弹出窗口中自动添加 AI 结果(通过
ai_embeddings_semantic_quick_search_enabled启用) - 在全页搜索中可以切换 AI 搜索的开启/关闭状态
- 可选的 HyDE(假设文档嵌入):使用大型语言模型 (LLM) 来扩展查询以获得更好的结果
- 结果以
图标表示 - 对匿名用户和已登录用户都适用
启用 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 配置它们。
- OpenAI
- Anthropic
- Azure OpenAI
- 具有 Anthropic 访问权限的 AWS Bedrock
- 为 DiscourseAI 自托管开源 LLM
- Google Gemini
配置
- 进入
Admin→Plugins→Discourse AI→Features→Embeddings查找所有 AI 搜索设置 - 启用
ai_embeddings_enabled以启用嵌入 - 启用
ai_embeddings_semantic_search_enabled以在全页搜索中激活 AI 搜索 - 可选地启用
ai_embeddings_semantic_quick_search_enabled以在搜索菜单弹出窗口中添加 AI 结果 - 可选地启用
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 提供商创建的假设主题/帖子会与该文档的嵌入一起临时缓存。嵌入数据存储在我们存储您的主题、帖子和用户的同一个数据库中,它是该数据库中的另一个数据表。
“嵌入”的“语义模型”是什么样的?它是如何“训练”的,有没有办法测试它是否能准确应用于我们“专业化”社区的主题?
- 默认情况下,我们使用预训练的开源模型,例如这个。我们已部署给许多客户,发现它对小众和通用社区都表现良好。如果性能对您的用例不够好,我们有更复杂的模型可供选择,但根据我们的经验,默认选项是一个可靠的选择。