Conseils sur un bot de support pour un forum d'assistance technique (Discourse AI vs Discourse Chatbot)

Je cherche à créer un bot d’IA capable de complimenter notre équipe de support humain pour un forum de support technique. Les objectifs sont de fournir un support en dehors des heures de bureau (actuellement, les utilisateurs doivent attendre notre ouverture) et un support plus rapide pendant les heures de bureau (les humains répondent plus lentement). Si le bot ne résout pas le problème, les humains prendraient le relais et le géreraient pendant les heures de bureau.

Quelques objectifs de conception :

  1. Il devrait apprendre des données historiques de notre forum afin d’avoir les connaissances du domaine nécessaires pour fournir un support. Les données de notre forum sont beaucoup plus pertinentes que les connaissances générales d’Internet.
  2. Il ne devrait tenter de répondre qu’aux questions sur le sujet. Il devrait être capable d’aider quelqu’un à dépanner nos produits ou à utiliser notre service, mais s’il demande comment cuire un gâteau, il ne devrait pas tenter d’aider. Il devrait s’en tenir à des sujets similaires à ceux déjà présents sur le forum.
  3. Il devrait fournir un moyen à l’utilisateur de dire au bot d’arrêter de répondre afin qu’il puisse attendre un humain à la place s’il estime que le bot n’aide pas.

Je vois qu’il y a le module AI Bot dans le plugin officiel Discourse AI.

Et il y a le chatbot Discourse AI original.

Quel plugin serait le mieux adapté à ce type d’application ? J’ai lu sur chacun séparément et ce sujet qui est similaire, mais j’aimerais avoir des conseils plus explicites si vous en avez à partager.

Est-ce que l’un de ces plugins apprend ou s’ajuste automatiquement avec les données historiques du forum ? Nous pouvons ajuster GPT-4 manuellement (je pense), mais j’aimerais utiliser les capacités du plugin lorsque c’est possible et ne pas dupliquer le travail déjà effectué par des personnes plus intelligentes. :slight_smile:

Est-ce que l’un de ces plugins vous permet de restreindre les sujets sur lesquels le bot peut s’engager afin qu’il ne s’engage pas dans des conversations générales hors sujet ?

Le chatbot Discourse original est-il destiné à être développé et maintenu à long terme ? Ou est-il prévu de le remplacer éventuellement par le bot d’IA du plugin officiel, ou de le fusionner avec lui ? @merefield

4 « J'aime »

Je pense que le « mode Agent » de Discourse Chatbot 🤖 pourrait le mieux vous convenir.

Ce plugin est un tiers et est maintenu en tant que projet open source par un seul développeur passionné. À ce titre, il repousse les limites de ce qui est possible et est beaucoup plus riche en fonctionnalités.

Si vous trouvez qu’il fonctionne bien pour vous, je vous encourage à rechercher le développeur et à proposer de contribuer à sa maintenance.

En revanche, l’autre plugin/module (#officiel) a été développé par l’équipe Discourse en mettant l’accent sur la stabilité et sera pris en charge par leur impressionnante équipe de développement.

(P.S. ce n’est pas la meilleure étiquette de mentionner les gens ici - en particulier les PDG et les développeurs occupés - sauf en cas de besoin sérieux)

5 « J'aime »

Oui, les deux utilisent RAG pour exploiter les données du forum dans leurs réponses.

Où ces conversations auraient-elles lieu ?

  • Sujets
  • MP
  • Chat
  • Application externe
2 « J'aime »

Je serais heureux de payer pour obtenir de l’aide à ce sujet. Je vais le contacter.

Désolé, je ne voulais pas être impoli. Je mentionnais simplement les personnes qui ont publié des informations sur ces plugins au cas où elles voudraient donner leur avis.

2 « J'aime »

Initialement, probablement juste des MP. Nous n’utilisons pas actuellement le chat, mais il semble que cela pourrait bien fonctionner pour cela, car un bot peut répondre en temps réel (contrairement à nos humains très occupés), ce qui pourrait également être bien. Ensuite, si cela fonctionne bien dans les conversations privées, je voudrais l’activer sur les sujets publics.

2 « J'aime »

Je pense donc que vous devriez essayer notre fonctionnalité AIBot dans le plugin DiscourseAI. Commencez avec notre persona « Forum Helper », elle correspond presque parfaitement à votre cas d’utilisation.

Ensuite, vous pouvez aller dans Nouvel éditeur de persona IA pour Discourse pour créer une persona spécialisée sur vos besoins. Donnez-lui les capacités search et read et écrivez une bonne invite système, et vous êtes prêt à partir.

Je vous ai donné accès à la fonctionnalité ici sur Meta, actualisez votre navigateur pour la voir et jouer avec.

6 « J'aime »

Je fais tourner la version 0.0.1 sur une copie de notre forum. C’est correct, mais ça ne semble pas très intelligent. Il cherche principalement sur notre forum et fournit une liste de sujets qui pourraient être pertinents. Il ne semble pas interpréter l’information et fournir un support conversationnel. Et je n’ai pas l’éditeur de persona. Celui sur Meta semble mieux fonctionner, donc je soupçonne que je n’ai pas la dernière version.

2 « J'aime »

En fait, cela fonctionne mieux lorsque je lui demande d’être plus spécifique et de me guider à travers les étapes.

2 « J'aime »

Je n’ai aucune intention de cesser de prendre en charge Chatbot de sitôt.

Il est de toute façon open source, donc le soutien et la contribution d’autres personnes sont les bienvenus.

Le bot est conçu pour exploiter les données existantes sur votre forum afin de répondre aux questions des utilisateurs.

Si vous avez des exigences particulières qui nécessitent une mise en œuvre allant au-delà de l’offre actuelle et que vous avez le budget nécessaire, vous pouvez toujours envisager de m’embaucher pour vous aider.

4 « J'aime »

Oui, je vous ai envoyé un message privé à ce sujet plus tôt. À ce stade, la grande question est de savoir quel plugin utiliser et je n’en sais pas assez à leur sujet (ou sur les bots en général) pour prendre une décision éclairée. :slight_smile:

J’ai besoin de quelqu’un qui soit bon dans ce domaine pour nous aider à démarrer. Je peux payer pour l’aide, et pour des fonctionnalités spéciales si nous en avons besoin.

Désolé de vous avoir mentionné plus tôt, je ne savais pas que c’était une mauvaise étiquette.

4 « J'aime »

Bonne question, je ne sais pas combien d’utilisateurs ici ont une expérience pratique avec l’un ou l’autre des bots d’IA mentionnés, mais je peux dire que j’utilise le bot Discourse AI sur le site OpenAI, même au stade de développement. Je donne régulièrement des commentaires et des suggestions, dont beaucoup sont répertoriés sur ce site. (list) Je fais également tout cela gratuitement.

Serait-il possible d’obtenir une invitation sur le site pour mieux comprendre celui-ci ?

Si vous avez des questions, n’hésitez pas à les poser ici ou à m’envoyer un message privé.

Pour information

Si vous ne savez pas ce qu’est le RAG, voici une bonne introduction courte.

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

3 « J'aime »

Puis-je demander comment vous avez décidé lequel des deux plugins de bot IA utiliser en premier lieu ? (Discourse AI ou Discourse Chatbot)

1 « J'aime »

Je n’ai pas décidé. Le seul choix concernait celui de Discourse.

Étant donné que le site Discourse d’OpenAI est un peu plus ancien, il possède encore la catégorie Lounge. Sam de Discourse, et non Sam d’OpenAI, a accordé aux utilisateurs TL3 du site OpenAI l’accès au bot IA de Discourse. C’est ainsi que j’ai eu accès et qu’il a été choisi. Cependant, si vous lisez le post ici et entre les lignes, vous pourriez voir que Sam travaille avec nous pour obtenir des retours et avoir des utilisateurs qui sauraient ce qu’un tel bot est capable de faire via des sujets dans le Lounge.

Au fur et à mesure que des modifications sont apportées au bot IA de Discourse, nous les voyons peu de temps après que le code est poussé et installé, et nous essaierons.

Je ne peux rien dire sur le bot Plugin et je ne spéculerai pas.

J’espère que cela aide.

1 « J'aime »

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 « J'aime »

Merci pour votre aide et pour un post aussi complet !

J’ai écrit cela avant de connaître RAG. Je voulais juste dire qu’il doit utiliser nos données historiques de forum, pas nécessairement être entraîné dessus.

Oui, après vos retours et ceux des autres, une catégorie cachée comme base de connaissances semble être la bonne approche.

Je ne voudrais de toute façon pas qu’un utilisateur puisse mettre à jour la base de connaissances. Seul le personnel devrait pouvoir le faire. Ce serait fantastique si le personnel pouvait examiner et noter les réponses du bot, mais cela ne semble pas possible avec RAG.

C’est cool !

Bon point. Je me demande quelle référence il devrait fournir si la source se trouve dans notre base de connaissances cachée ?

Cette question était mal formulée en raison de ma naïveté quant au fonctionnement des LLM. RAG devrait suffire pour l’instant.

Ce que je voulais dire, c’est que je ne veux pas développer de code personnalisé pour des fonctionnalités que merefield ou l’équipe de développement de Discourse ont déjà intégrées dans leurs plugins. Je veux utiliser ce qui est déjà disponible et n’améliorer que lorsque c’est nécessaire.

Merci encore Eric !

2 « J'aime »

Bon point. Heureux que vous ayez noté cela, j’aurais dû le préciser dans ma réponse.

Cela semble bien s’intégrer à la file d’attente de révision. C’est l’appel de Discourse.

Non.

RAG est l’une des nombreuses technologies nécessaires pour obtenir ce que vous recherchez. Dans le cas de la notation de la réponse de l’IA, cela est différent de l’objectif de RAG. Le retour humain pour une complétion générée fait partie de la technologie RLHF.

Ça l’est !

La plupart de ces technologies sont si nouvelles et évoluent si rapidement qu’il faut être ouvert aux idées de n’importe qui et de n’importe où.

La même chose que si vous étiez un humain et que vous le notiez dans une réponse à une personne réelle. Je penserais au nom du manuel, à la date de publication, à la section et au paragraphe.

Merci d’avoir partagé cela. Je vois de nombreux messages de nombreux utilisateurs et je vous dirai que c’est un plaisir de vous aider.

C’était drôle, mais beaucoup ne sauront même pas pourquoi. La technologie évolue si rapidement que je suis sûr que beaucoup créent du code un mois, puis réalisent qu’il a maintenant été intégré à une technologie et que ce qu’ils ont créé est maintenant redondant et peut même être obsolète. Si vous prenez le temps d’en apprendre davantage sur Langchain, vous pourriez voir des utilisateurs noter qu’ils ont abandonné presque tout le code de leur application et ont simplement commencé à utiliser Langchain.

Une autre source pour apprendre cela est les cours courts de DeepLearning.AI (actuellement gratuits).

De rien.

Posez plus de questions, c’est pourquoi je vous aide. Plus les gens posent de questions sur cette technologie, plus nous pouvons nous aider mutuellement à atteindre nos objectifs.

3 « J'aime »

Eric, j’ai déjà répondu à cela plus haut.

Ma réponse n’était pas assez claire ?

Avec tout le respect que je vous dois, je ne suis pas sûr de ce que ces questions ont à voir avec les « équipes de Discourse » ?

Le dépôt est écrit et maintenu par moi-même, comme cela devrait être clair d’après l’URL, l’historique des commits et son sujet de plugin ?

Si à un moment donné Chabot devait changer d’organisation GitHub, ce serait probablement pour Pavillion.

1 « J'aime »

Quand je lis cela, je pense au bot que vous voyez lorsque vous rejoignez Discourse pour la première fois. @discobot
Si la déclaration avait utilisé le mot plugin, j’aurais pensé à votre plugin et je n’aurais pas répondu comme je l’ai fait.

1 « J'aime »

Je ne suis pas sûr de ce que vous entendez par « masquée », mais je suppose que le Chatbot et le plugin IA n’utiliseront le RAG que sur le contenu des catégories publiquement accessibles.

Exactement, donc je comprends qu’au lieu de télécharger dans une catégorie puis de les extraire, l’approche la meilleure de nos jours serait de télécharger ces documents PDF en tant que fichiers et de les utiliser dans un assistant ? Cela pourrait être combiné avec du RAG à la volée à partir du contenu du forum.

2 « J'aime »

Il pourrait être avantageux d’avoir une catégorie utilisée pour RAG mais non visible par les utilisateurs car elle n’est pas organisée/présentée d’une manière conviviale pour l’utilisateur final. Pour des choses comme les manuels d’utilisation bruts ou peut-être des scripts courants que le bot pourrait suivre.

2 « J'aime »