关于技术支持论坛的支持机器人建议(Discourse AI 与 Discourse Chatbot)

我正在尝试创建一个 AI 机器人,它可以为技术支持论坛上的人工支持团队提供赞扬。目标是在非营业时间提供支持(目前用户必须等到我们开业),并在营业时间提供更快的支持(人工响应速度较慢)。如果机器人无法解决问题,则在营业时间由人工接管并处理。

一些设计目标是:

  1. 它需要从我们历史论坛数据中学习,以便拥有提供支持的领域知识。我们论坛中的数据比一般的互联网知识更具相关性。
  2. 它应该只尝试回答与主题相关的问题。它可以帮助某人排查我们的产品或使用我们的服务,但如果他们询问如何烘烤蛋糕,它不应该尝试提供帮助。它应该坚持与论坛中已存在的主题相似的主题。
  3. 它应该提供一种方式,让用户可以告诉机器人停止回答,以便他们可以改为等待人工处理,如果他们觉得机器人没有帮助。

我看到官方 Discourse AI 插件中有 AI Bot 模块。

还有原始的 Discourse Chatbot。

哪种插件更适合此类应用?我分别阅读了它们,也阅读了 这个主题,它很相似,但我很想获得更明确的建议,如果您有的话。

这些插件中的任何一个会自动学习或使用历史论坛数据进行微调吗?我认为我们可以手动微调 GPT-4,但我希望在可能的情况下利用插件的功能,而不是重复那些更聪明的人已经完成的工作。 :slight_smile:

这些插件中的任何一个是否允许您限制机器人参与的主题,以便它不参与一般性的、离题的对话?

原始 Discourse Chatbot 是打算长期开发和维护吗?还是计划最终被官方插件中的 AI Bot 取代,或者合并到其中? @merefield

4 个赞

我认为 Discourse Chatbot 🤖 的“Agent Mode”可能最适合您的需求。

此插件是第三方插件,由一位充满热情的开发者作为开源项目维护。因此,它突破了可能性的界限,功能也更加丰富。

如果您觉得它对您来说效果很好,我鼓励您寻找开发者并主动为维护做出贡献。

相比之下,另一个(official)插件/模块由 Discourse 团队开发,他们注重稳定性和由他们强大的开发团队支持。

(附注:在这里 @提及他人——尤其是首席执行官和繁忙的开发者——除非有严重需要,否则不是最好的礼仪)

5 个赞

是的,两者都使用 RAG 来利用论坛数据生成回复。

这些对话将在哪里进行?

  • 主题
  • 私信
  • 聊天
  • 外部应用程序
2 个赞

我很乐意为这方面提供帮助。我会联系的。

抱歉,我无意冒犯。我只是提到了那些发布了这些插件的人,以防他们想发表意见。

2 个赞

最初,可能只是私信。我们目前不使用聊天,但它似乎很适合这个目的,因为机器人可以实时回复(不像我们非常忙碌的人类),所以这可能也很好。然后,如果它在私下对话中效果良好,我希望在公开主题中启用它。

2 个赞

ですので、DiscourseAIプラグインのAIBot機能を試してみてはいかがでしょうか。「フォーラムヘルパー」ペルソナから始めるのが、あなたのユースケースにほぼ完璧に合致するはずです。

その後、Discourseの新AIペルソナエディタにアクセスして、あなたのニーズに特化したペルソナを作成できます。searchreadの両方の機能を付与し、優れたシステムプロンプトを作成すれば、すぐに使い始められます。

ここではMetaでこの機能へのアクセスを許可しました。ブラウザをリフレッシュして、実際に試してみてください。

6 个赞

我运行的是 0.0.1 版本,在一个论坛的副本上。它还可以,但似乎不太智能。它主要搜索我们的论坛并提供可能相关的主题列表。它似乎不能以对话的方式解释信息并提供支持。而且我没有 Persona 编辑器。Meta 上的那个似乎效果更好,所以我怀疑我没有最新版本。

2 个赞

实际上,当我要求它更具体并逐步指导我时,它的表现更好。

2 个赞

我无意很快停止支持 Chatbot。

无论如何,它是开源的,因此欢迎他人的支持和贡献。

该机器人旨在利用您论坛上现有的数据来回答用户的问题。

如果您有超出当前产品范围的特殊需求需要实现,并且有预算用于此,那么您可以随时考虑聘请我来帮助您。

4 个赞

是的,我之前给您发了私信。目前最大的问题是使用哪个插件,我对它们(或机器人)了解不够,无法做出自信的决定。:slight_smile:

我需要一个在这方面很擅长的人来帮助我们开始。我可以支付帮助的费用,如果需要任何特殊功能也可以。

抱歉之前@了您,我不知道这是一种不好的礼仪。

4 个赞

问得好,我不知道这里有多少用户对提到的任何一个 AI 机器人有实际经验,但我可以说,我一直在使用 OpenAI 网站上的 Discourse AI 机器人,即使在开发阶段也是如此。我定期提供反馈和建议,其中许多都列在这个网站上。(list) 而且所有这些都是免费的。

我能否获得一个网站邀请以便更好地了解该网站?

如果您有任何问题,请随时在此处提问或给我发送私人消息。

供您参考

如果您不知道什么是 RAG,这是一个很好的简短介绍。

https://research.ibm.com/blog/retrieval-augmented-generation-RAG

3 个赞

请问您当初是如何决定使用这两个 AI 机器人插件中的哪一个的?(Discourse AI 或 Discourse Chatbot)

1 个赞

我没有决定。唯一的选择是 Discourse 的。

由于 OpenAI Discourse 站点有点老了,它仍然有 Lounge(休息室)类别。Discourse 的 Sam(而不是 OpenAI 的 Sam)授予了 OpenAI 站点的 TL3 用户访问 Discourse AI 机器人的权限。这就是我获得访问权限的方式,并且它被选中了。但是,如果您阅读此处的帖子并体会其中的含义,您可能会发现 Sam 一直在与我们合作以获取反馈,并让了解此类机器人能力的用户通过 Lounge 中的主题来了解。

随着 Discourse AI 机器人的更改,我们会在代码推送和安装后不久看到它们,并会尝试使用它们。

我无法评论插件机器人,也不会猜测。

希望有所帮助。

1 个赞

After taking a look at a few of the topics this is what I learned and recommended.

The site is for support of the Surety home security system.

The goal for the AI used with Discourse forum is (ref)

  • Compliment our human support team for a technical support forum.
  • It would need to learn from our historical forum data.
  • Have the domain knowledge to provide support.
  • It should only attempt to answer on-topic questions.
  • It should provide a way for the user to tell the bot to stop answering so they can wait for a human instead if they feel like the bot isn’t helping.

And here are some of the questions from Ryan

  • Do these automatically learn or fine-tune with historical forum data?
  • Not duplicate work that’s already been done by smarter people.
  • Restrict the topics the bot will engage in so it doesn’t engage in general, off-topic conversations?
  • Is the original Discourse Chatbot intended to be developed and maintained long term?
  • Or is it planned to eventually be replaced by the AI Bot in the official plugin, or folded into it?

Here is a posted question I gave to the Discourse AI bot currently enabled on the version of the site I tried and an answer from ChatGPT.

The question:

I have a IQP4 with a Powerg to hardwire. The wired sensors are working. I wanted to run a test on the bell/siren, but could not find the option on the IQP4. I can test the siren on the panel and it sounds along with the IQ Remote, but the hardwired bell does not. I have to trip the alarm to get the hardwired siren to sound.

Is there a way to test the bell on the powerg to hardwire from the IQP4?


Here is the reply using the Discourse AI bot with GPT-4

image

I found a relevant topic on our forum that may help you with your issue.

In the topic Test wired bell on PowerG to hardwire?, the user had a similar issue where they could not find the option to test the bell on the PowerG to hardwire from the IQP4.

Please have a look at this topic for possible solutions. If you still have questions or need further assistance, feel free to ask.


Here is the reply using the Discourse AI bot with GPT-3.5

I found a topic on the Surety Support Forum that discusses testing the wired bell on the PowerG to hardwire connection with the IQ Panel 4 (IQP4). You can find the topic here.

In the topic, the user mentions that they couldn’t find an option to test the bell/siren on the IQP4 itself. However, they were able to test the siren on the panel and it sounded along with the IQ Remote. The hardwired bell, on the other hand, did not sound unless the alarm was tripped.

You can visit the topic for more information and to see if there are any solutions or suggestions provided by other users.


Both the Discourse AI GPT-4 and GPT-3.5 bot found the same topic.



Here is the reply using ChatGPT

I don’t have specific information on the IQ Panel 4’s latest software version or features, as my training only includes knowledge up to January 2022. However, based on general principles of alarm system testing, here are some suggestions that might help you test your hardwired siren connected to the PowerG:

  1. System Test Mode:

    • Check if your alarm panel has a “System Test” or “Walk Test” mode. This mode is typically designed for testing sensors and alarms without triggering a real alarm event. If your panel has this feature, it should allow you to test the siren without setting off a full alarm.
  2. Output Control:

    • Look for an “Output Control” or “Auxiliary Output” option in your alarm panel settings. This feature may allow you to manually trigger outputs, such as the siren, for testing purposes.
  3. Zone Bypass:

    • Some systems allow you to bypass specific zones during testing. If your hardwired siren is associated with a particular zone, you might be able to bypass that zone for testing.
  4. User Manual:

    • Refer to the user manual or documentation that came with your IQ Panel 4. It should provide specific instructions on how to test and control different components of your alarm system.
  5. Technical Support:

    • If you’re unable to find a solution on your own, consider reaching out to the manufacturer’s technical support. They can provide guidance based on the specific features and capabilities of your system.
  6. Panel Software Update:

    • Check if there are any available software updates for your IQ Panel 4. Manufacturers often release updates to add new features or address issues, and an update might include a specific test mode for the siren.

Remember to exercise caution while testing to avoid accidentally triggering a real alarm event. If you’re unsure about any steps, it’s always a good idea to consult the user manual or contact technical support for assistance.

Clearly ChatGPT is giving a more detailed answer. I will go into possible reasons later in the topic.


Note: I do not have access to the Discourse AI plugin by Merefield (Card) (GitHub), it would be nice to see the response to the same question posted here for comparison. :slightly_smiling_face:




Here is my feedback.

The AI for these bots are based on LLMs, the knowledge is limited by the training set. The bots are also using RAG to augment their knowledge by accessing the topics in the forum.

The bots will typically use a system prompt, think persona, which is not a user prompt with the request to the LLM API.

I will let ChatGPT explain the difference.

ChatGPT

What is a system prompt? How is it different from a user prompt?

Completion

A system prompt and a user prompt are terms often used in the context of language models and conversational AI systems like GPT-3.5. Let me clarify the difference between them:

  1. User Prompt:

    • A user prompt is the input provided by a human user to initiate a conversation or request information from the AI system.
    • It’s the text or query that a person types or speaks to interact with the AI model.
    • For example, if you’re using a chatbot or a language model, your input asking a question or making a statement would be the user prompt.
  2. System Prompt:

    • A system prompt, on the other hand, is the initial input or instruction given to the AI model to set the context or guide its behavior for a conversation.
    • It’s used to provide the AI with a starting point or context for generating responses.
    • The system prompt helps shape the tone, style, or content of the AI’s responses, and it serves as a sort of instruction to guide the model’s behavior.
    • While user prompts are specific to the user’s queries or statements, system prompts are more about giving a general context or instruction for the entire conversation.

In the case of GPT-3.5 or similar language models, a conversation typically starts with a system prompt followed by user prompts in an ongoing exchange. The system prompt helps influence the model’s responses throughout the conversation, but it’s the combination of system and user prompts that determines the model’s output.


The reason the bots are not able to give a much more specific answer is because their knowledge base is lacking the user manuals, installation instructions, etc. for these products. Further bots are often not able to extract images and diagrams from such documentation such as wiring diagrams and images used in the installation manuals.

As a start, RAG should be used to expand the knowledge for the AI as much as possible even if it is only the text from the documentation. While the Discourse AI bot can use RAG for all of the topics in the forum I don’t know if they are allowing external information to be added. If not, one idea would be to import all of the documents as PDFs into a category, possibly hidden, and then the Discourse code could get at them easier as they are in the forum and then use Langchain to access the PDFs (ref)

With this the knowledge in there the system prompt can be tweaked to improve the replies but this will still be far from what you seek. You will still most likely get replies like the first with references to information but no step by step instructions when needed. Also there is no way to give feedback about the AI reply that the AI would know is giving feedback. In other words if a user replied to the bot that something is wrong, the bot would read the reply but not understand that it would need to update the knowledge based on that.

To improve the quality of the replies three thoughts come to mind.

  1. Make use of HyDE (Hypothetical Document Embeddings)

“Precise Zero-Shot Dense Retrieval without Relevance Labels” by Luyu Gao, Xueguang Ma, Jimmy Lin and Jamie Callan (pdf )

I actually learned of HyDE from Discourse (ref) and know they are using it.

  1. RLHF ( Reinforcement learning from human feedback). I don’t think either of the bots are capable of this and Discourse might be considering this; would like to hear their feedback if they care to share.

  2. Synthetic data with RLHF. This is really cutting edge and not something I would expect either bot to implement.

One of the most demonstrated and successful ways to train an LLM is to have them train themselves but you need some metric so they know if the result is better or worse. For your site the only way I currently understand to know if a solution is better or worse is for a human to rate the solution from the AI. To get more possible rounds of questions and solutions, the questions are generated by an AI with another AI generating the solution and then the solution is measured and used to improve the AI generating the solution.


To improve the ability of the bot to help users it should perform a series of questions to collect information to better understand the problem similar to the way a medical doctor will for a diagnosis and prognosis.

Another option is to look at similar technology that can be accessed with the AI bot such as Microsoft Copilot.

One item that you did not request or note that is of value is references back to the source. The reason this is important is to check if the AI completion is an hallucination or not. If a reference is included, is a real reference and not a hallucination then the reference can be checked to see if it is from an authoritative source such as a manual and then be known to not be a hallucination. Adding references is easy to do with RAG and should be expected.


Now to address your specific goals.

Compliment our human support team for a technical support forum.

That is more of a statement than a question, so will not answer it as a question.

It would need to learn from our historical forum data.

This was actually part of a larger statement that I broke up. The reason I broke it up is that while you are correct that the historical data in the forum is of value, the base knowledge such as that in the manuals is also needed. The current bots use RAG with the forum post but AFAIK do not know how to access external data.

It should only attempt to answer on-topic questions.

This can be accomplished by tweaking the system prompt. This would also need some of the technology in Discourse AI Post Classifier - Automation rule

It should provide a way for the user to tell the bot to stop answering so they can wait for a human instead if they feel like the bot isn’t helping.

This can be accomplished by tweaking the system prompt.

Do these automatically learn or fine-tune with historical forum data?

Good question. While I have brushed on how to start to solve this earlier, it really is a much harder question than it seems but the large LLM researchers are making much better progress with this and their might be some interesting announcements in the next few months that can make this much easier.

Not duplicate work that’s already been done by smarter people.

I will take that to mean that the LLM should not digress on what it knows. That depends on how the model is trained on new knowledge. It is possible to make the model worse and even harder to get a model to unlearn. AFAIK neither of the Discourse AI bots have the ability to learn, meaning change the weights in the LLM, but they do have the ability to use RAG with topic post. So bad topic post, garbage in, can create garbage out.

Restrict the topics the bot will engage in so it doesn’t engage in general, off-topic conversations?

This would be similar to Discourse AI Post Classifier - Automation rule

Is the original Discourse Chatbot intended to be developed and maintained long term?

Will leave that one for the Discourse staff.

Or is it planned to eventually be replaced by the AI Bot in the official plugin, or folded into it?

Will leave that one for the Discourse staff.

6 个赞

感谢您的帮助和如此详尽的帖子!

我是在知道 RAG 之前写的。我只是想说它需要使用我们历史论坛数据,而不一定是在其上进行训练。

是的,在您和其他人的反馈之后,一个隐藏的类别作为知识库似乎是可行的。

我不想让用户能够更新知识库。只有工作人员应该能够做到这一点。如果工作人员能够审查和评价机器人的回复,那将是极好的,但这似乎不可能与 RAG 一起实现。

这很酷!

说得好。我想知道如果源在我们隐藏的知识库中,它应该提供什么作为参考?

由于我对 LLM 的工作原理很天真,这个问题措辞不当。RAG 目前应该足够了。

我的意思是,我不想为 merefield 或 discourse 开发团队在其插件中已经构建的功能开发自定义代码。我想使用现有的东西,只在必要时进行增强。

再次感谢 Eric!

2 个赞

说得好。很高兴你指出了这一点,我本应在回复中说明。

这似乎可以很好地接入审核队列。这是 Discourse 的说法。

不行。

RAG 是实现你所寻求的东西所需的众多技术之一。在对 AI 回复进行评分的情况下,这与 RAG 的目的不同。对生成完成的人类反馈是 RLHF 技术的一部分。

确实如此!

这项技术的大部分都非常新,而且发展迅速,任何人、任何地方的想法都应该被接受。

与你作为人类在回复真人时注明一样。我认为应该是手册名称、出版日期、章节和段落。

感谢分享。我看到许多用户发帖,我告诉你,很高兴能帮助你。

这很有趣,但很多人甚至不知道为什么。技术发展如此之快,我敢肯定,很多人一个月前还在编写代码,然后才意识到该技术已经内置了,他们创建的代码现在已经过时,甚至可能已经淘汰。如果你花时间了解 Langchain,你可能会看到用户说他们抛弃了几乎所有的应用程序代码,而只是开始使用 Langchain。

另一个学习途径是 DeepLearning.AI 短期课程(目前免费)。

不客气。

请提出更多问题,我就是为此而帮助你的。人们对这项技术提出的问题越多,我们就越能互相帮助,实现我们的目标。

3 个赞

Eric,我已经上面回答过了。

我的回答不够清楚吗?

恕我直言,我不确定这些问题与“Discourse Staff”有什么关系?

从 URL、提交历史和其插件主题来看,应该很清楚该仓库是由我编写和维护的?

如果 Chabot 任何时候要迁移 GitHub 组织,它可能会迁移到 Pavillion。

1 个赞

当我读到这句话时,我想到的是你首次加入 Discourse 时看到的那个机器人。@discobot
如果这句话使用了 plugin 这个词,我就会想到你的插件,而不是像现在这样回应。

1 个赞

我不确定您说的“隐藏”是什么意思,但我假设聊天机器人和 AI 插件都只会使用公开类别中的内容进行 RAG。

没错,所以我的意思是,与其上传到某个类别然后提取它们,不如现在最好的方法是将这些 PDF 文档上传为文件,并在助手中使用它们?这可以与论坛内容的即时 RAG 相结合。

2 个赞

可能有一个类别用于 RAG,但对用户不可见会很有益,因为它没有以对最终用户友好的方式进行组织/呈现。例如,原始用户手册或机器人可能遵循的常见脚本。

2 个赞