# 为什么我的AI论坛助手在回答问题时遇到困难？

**URL:** <https://meta.discourse.org/t/why-is-my-ai-forum-helper-struggling-to-answer-questions/352848>\
**Category:** Support\
**Tags:** ai, ai-bot\
**Created:** [2025年二月18日 07:11 UTC](https://meta.discourse.org/t/why-is-my-ai-forum-helper-struggling-to-answer-questions/352848 "2025-02-18T07:11:32Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2025年二月18日 07:11 UTC](https://meta.discourse.org/t/why-is-my-ai-forum-helper-struggling-to-answer-questions/352848/1 "2025-02-18T07:11:32Z")

</div>

我们许多人对人工智能的一个误解是，我们的期望是：

```mermaid
graph TD
    Question -->|"昂贵的人工智能魔法"| Answer
    Answer["完美的答案"]

```

花费大量金钱购买旗舰模型，结果却不尽如人意，这可能会让人感到非常沮丧。

在本主题中，我想花一些时间调整期望，并指出 Discourse AI 提供的各种功能，以帮助获得更好的答案。

### Discourse AI 实际工作原理

现实情况更为微妙。当您提出问题时，会发生以下情况：

```mermaid
graph TD
    Question --> Consolidation[问题整合]
    Consolidation --> RAG[RAG 系统]
    RAG --> ToolSelection[工具选择]
    ToolSelection --> Search[搜索]
    ToolSelection --> Categories[类别]
    ToolSelection --> Tags[标签]
    Search --> Context[收集上下文]
    Categories --> Context
    Tags --> Context
    Context --> Answer[生成答案]

```

1. 首先会整合并理解您的问题
2. 我们的 RAG 系统会搜索可用的知识（可选）
3. 根据搜索结果，它会决定使用哪些工具（可选）
4. 工具会收集特定信息
5. 所有信息会合并以生成答案

### 上下文至关重要

在使用人工智能系统回答问题时，上下文是关键。

像 GPT-4 或 Claude 3.5 Sonnet 这样的大型语言模型 (LLM) 都是在海量公共数据上进行训练的。然而，有两个限制因素使其在回答特定领域问题方面不够理想：

1. LLM 是基于 **公共** 数据进行训练的
2. LLM 有一个训练截止日期，这意味着几个月前的公共数据很可能在数据集中缺失

对于封闭论坛而言，数据集中没有任何内容，因此上下文变得更加关键。

**上下文** 是指我们在 LLM 回答问题之前提供给它的信息，以帮助它正确回答。

### 如何获取上下文？

可以通过以下几种方式提供上下文：

- **通过 RAG（检索增强生成）自动获取** - 当我们将文档上传到某个角色时，我们可以在回复之前搜索文档中的答案。我们首先整合您的问题，然后使用语义搜索来搜索内容。这有助于指导使用哪些工具。
- **通过工具自动获取** - LLM 可以使用工具（例如搜索或阅读主题）来根据 RAG 指导查找其他信息。
- **手动获取** - 您可以粘贴大量文本，然后向 LLM 提出有关该文本的问题。

### 基于工具的上下文

Discourse Forum Helper 使用搜索、阅读主题和帖子、列出类别或标签等工具。

当您向 Forum Helper 提问时，模型首先使用 RAG 来理解可能相关的内容，然后决定哪些工具将有助于获得更好的答案。

 ![该图像描绘了一个 Discourse 界面，其中 Sam Saffron，被确认为联合创始人，询问他过去进行的活动，而 Forum Helper Bot 则搜索过去一周与 Sam 相关的最新帖子。（由 AI 标注）](https://global.discourse-cdn.com/meta/original/4X/b/7/2/b7221171e0c6239bc9b2c4eaa1c08ea2fe10fa25.png)

在此示例中，您可以看到我询问了论坛助手我最近在做什么，它反过来决定搜索过去一周 Sam 发布的内容，并获得了 21 个结果。

要了解模型从这次搜索中获得了什么 **新上下文** ，您可以启用设置：`AI bot debugging allowed groups`

它会在每个帖子的底部添加一个调试按钮，点击后可以显示提供给 LLM 的确切 **上下文** 。

 ![该图像显示了一个工具结果内容的屏幕截图，与服务的故障排除和错误报告相关，其中包含详细的问题列表及其描述，包括投票渲染、链接、示例文本以及用于类别搜索的 AI 角色。（由 AI 标注）](https://global.discourse-cdn.com/meta/original/4X/7/7/9/7797b727732efa5428b42572b62628386449d5bd.png)

Discourse 搜索工具的选项非常丰富：

> <https://github.com/discourse/discourse-ai/blob/f750bd2c409c99e69f1ea036f51acc886ea363f5/lib/ai_bot/tools/search.rb#L12-L73>

这既是好事也是坏事。如果选项太多，LLM 经常会做出次优的选择，我们试图将选项数量保持在……不太高的水平……但根据您的需求，您可能更倾向于使用自定义工具进行搜索。

### 如果我没有得到预期的结果该怎么办？

鉴于 **上下文至关重要** ，首先要确认的是：

1. RAG 系统是否找到了相关的上下文来指导工具？
2. LLM 是否根据该指导使用了正确的工具？
3. 工具是否找到了预期的结果？

例如，看这个失败案例：

 ![该图像显示了一个论坛帖子，其中联合创始人 Sam Safron 请求紧急处理的错误，而 ForumHelper Bot 根据最近的报告提供了建议。（由 AI 标注）](https://global.discourse-cdn.com/meta/original/4X/6/b/6/6b6a706774a42b74fe20c29c1fb772b9ad128c8c.png)

这是 RAG 指导和工具使用方面的典型失败。

LLM 搜索了：

`bug critical urgent broken order:latest status:open status:public`

此搜索的关键字部分相当糟糕，只产生了一个结果，语义搜索很难找到结果，因为任何时候有人大喊大叫，它都会将其视为紧急情况。

可能产生更好结果的是：

查找过去两周内报告的所有按 op\_likes 排序的未关闭错误。但是，此特定子集的信息目前无法通过搜索功能获得，需要自定义工具。

鉴于这里存在巨大的差异和细微差别，首先要做的是监控用户与您的机器人现有的交互，并 **尽可能多地收集失败案例** 。

### 如何处理失败的案例？

当出现交互失败时，您有几种选择：

1. 您可以改进系统提示，以更好地提示机器人。
2. 您可以在论坛上记录信息，为机器人提供更好的搜索结果——您可以优先处理您的文档类别，使其更有可能被找到。
3. 您可以上传包含更多上下文的文档，我们将把文档分成片段，并将最接近的片段提供给整合后的问题，以帮助机器人定位。
4. 如果您的角色主要关注搜索，则强制使用搜索工具。
5. 您可以开发自定义工具以更好地满足您的需求。
6. 您可以增加提供给 LLM 的上下文量（更多搜索结果等）。

### 人工智能可能很模糊，解决一个问题可能会带来另一个问题

请注意，创建“完美”的人工智能问答机器人是一个旅程。创建受监控的反馈循环并定期评估其表现，将使您能够随着时间的推移不断改进它。

请注意技术的构建方式，如果您需要访问 10,000 篇帖子的上下文来回答一个问题，那么使用当前的上下文窗口将整个帖子列表输入到上下文中可能不可行。

关键在于理解，获得更好的结果是一个迭代的过程。

---

<div class="post-metadata">

**Author:** ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)\
**Post date:** [2025年七月27日 16:35 UTC](https://meta.discourse.org/t/why-is-my-ai-forum-helper-struggling-to-answer-questions/352848/2 "2025-07-27T16:35:26Z")

</div>

Sam，这篇写得太棒了，尤其适合没有开发背景的人！❤

这绝对应该添加到 [AI bot - Personas](https://meta.discourse.org/t/ai-bot-personas/306099/1) 的首帖中。

---

<div class="post-metadata">

**Author:** ![tpetrov](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tpetrov/32/164643_2.png) [@tpetrov](https://meta.discourse.org/u/tpetrov)\
**Post date:** [2025年九月15日 15:33 UTC](https://meta.discourse.org/t/why-is-my-ai-forum-helper-struggling-to-answer-questions/352848/3 "2025-09-15T15:33:08Z")

</div>

谢谢你，Sam！

这非常有见地。我一直认为 RAG 文档是与工具（通常是搜索和阅读）协同工作的。例如，使用工具在论坛上获取答案，并使用 RAG 添加额外的知识，例如博客文章、外部文档等。然后从所有这些中选择最相关的。

我曾用提示来指导角色如何使用该上下文，但没想到：

> [@sam](#):
>
> 模型首先使用 RAG 来了解可能相关的内容

这是否可以通过提供一些关于论坛结构、示例问答的文档来说明？

> [@sam](#):
>
> 你的问题首先被整合和理解

你能否详细说明一下问题是如何被整合的？

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2025年九月15日 23:42 UTC](https://meta.discourse.org/t/why-is-my-ai-forum-helper-struggling-to-answer-questions/352848/4 "2025-09-15T23:42:12Z")

</div>

例如：

1. 人工智能将非常长的对话整合为：“Tony 想了解问题整合是如何工作的，以及如何提供示例”
2. 对文本“Tony 想了解问题整合是如何工作的，以及如何提供示例”执行检索增强生成（RAG），寻找相似的片段（例如，“问题整合通过 XYZ 工作”）
3. 然后将与所问问题相近的片段作为预先存在的上下文添加到对话中

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2025年十月15日 16:28 UTC](https://meta.discourse.org/t/why-is-my-ai-forum-helper-struggling-to-answer-questions/352848/5 "2025-10-15T16:28:38Z")

</div>

9 篇帖子已拆分为新主题：[探索 Discourse AI 的重新排序选项](https://meta.discourse.org/t/exploring-reranking-options-for-discourse-ai/385725)
