Conselho sobre um bot de suporte para um fórum de suporte técnico (Discourse AI vs Discourse Chatbot)

Estou tentando criar um bot de IA que possa elogiar nossa equipe de suporte humano para um fórum de suporte técnico. Os objetivos são fornecer suporte fora do horário comercial (atualmente os usuários precisam esperar até abrirmos) e suporte mais rápido durante o horário comercial (os humanos respondem mais lentamente). Se o bot não resolver o problema, os humanos assumirão e o lidarão durante o horário comercial.

Alguns objetivos de design são:

  1. Ele precisaria aprender com nossos dados históricos do fórum para ter o conhecimento de domínio para fornecer suporte. Os dados em nosso fórum são muito mais relevantes do que o conhecimento geral da internet.
  2. Ele deve tentar responder apenas a perguntas sobre o tópico. Ele deve ser capaz de ajudar alguém a solucionar problemas de nossos produtos ou usar nosso serviço, mas se eles perguntarem como assar um bolo, ele não deve tentar ajudar. Ele deve se ater a tópicos semelhantes aos já existentes no fórum.
  3. Ele deve fornecer uma maneira para o usuário dizer ao bot para parar de responder para que ele possa esperar por um humano em vez disso, se sentir que o bot não está ajudando.

Vejo que existe o módulo AI Bot no plugin oficial Discourse AI.

E existe o Discourse AI Chatbot original.

Qual plugin seria melhor para este tipo de aplicação? Li sobre cada um separadamente e este tópico que é semelhante, mas adoraria mais conselhos explícitos se você tiver algum para compartilhar.

Algum desses plugins aprende ou ajusta automaticamente com dados históricos do fórum? Podemos ajustar o GPT-4 manualmente (acho), mas gostaria de utilizar os recursos do plugin quando possível e não duplicar o trabalho que já foi feito por pessoas mais inteligentes. :slight_smile:

Algum desses plugins permite restringir os tópicos em que o bot se envolverá para que ele não se envolva em conversas gerais e fora do tópico?

O Discourse Chatbot original pretende ser desenvolvido e mantido a longo prazo? Ou está planejado para ser eventualmente substituído pelo AI Bot no plugin oficial, ou incorporado a ele? @merefield

4 curtidas

Eu acho que você pode achar o “Modo Agente” de Discourse Chatbot 🤖 o mais adequado às suas necessidades.

Este plugin é de terceiros e mantido como um projeto de código aberto por um único desenvolvedor apaixonado. Como tal, ele expande os limites do que é possível e é bem mais rico em recursos.

Se você achar que ele funciona bem para você, eu o encorajaria a procurar o desenvolvedor e oferecer contribuições para sua manutenção.

Em contraste, o outro plugin/módulo (#oficial) foi desenvolvido pela Equipe Discourse com ênfase na estabilidade e será suportado por sua impressionante equipe de desenvolvimento.

(P.S. não é a melhor etiqueta mencionar pessoas aqui - especialmente CEOs e Desenvolvedores ocupados - a menos que haja uma necessidade séria)

5 curtidas

Sim, ambos usam RAG para alavancar dados do fórum em suas respostas.

Onde essas conversas aconteceriam?

  • Tópicos
  • Mensagens Privadas
  • Chat
  • Aplicação externa
2 curtidas

Eu ficaria feliz em pagar por ajuda com isso. Entrarei em contato.

Desculpe, não quis ser rude. Eu estava apenas mencionando as pessoas que postaram sobre esses plugins caso quisessem dar sua opinião.

2 curtidas

Inicialmente, provavelmente apenas mensagens privadas. Atualmente não usamos chat, mas parece que funcionaria bem para isso, já que um bot pode responder em tempo real (ao contrário de nossos humanos muito ocupados), então isso também seria bom. Então, se funcionar bem nas conversas privadas, eu gostaria de habilitá-lo em tópicos públicos.

2 curtidas

Então, eu acho que você deveria experimentar nosso recurso AIBot no plugin DiscourseAI. Comece com nossa persona “Fórum Helper”, ela se encaixa perfeitamente no seu caso de uso.

Depois disso, você pode ir para Novo Editor de Persona de IA para Discourse para criar uma persona especializada em suas necessidades. Dê a ela as capacidades de search (pesquisar) e read (ler) e escreva um bom prompt de sistema e você estará pronto para começar.

Eu dei acesso ao recurso aqui no Meta, atualize seu navegador para ver e brincar com ele.

6 curtidas

Estou executando a versão 0.0.1 em uma cópia do nosso fórum. Está OK, mas não parece muito inteligente. Ele basicamente pesquisa em nosso fórum e fornece uma lista de tópicos que podem ser relevantes. Não parece interpretar as informações e fornecer suporte de forma conversacional. E eu não tenho o editor de persona. Aquele no Meta parece funcionar melhor, então suspeito que não tenho a versão mais recente.

2 curtidas

Na verdade, ele se sai melhor quando peço para ser mais específico e me guiar pelas etapas.

2 curtidas

Não tenho intenção de descontinuar o suporte para Chatbot tão cedo.

De qualquer forma, é de código aberto, então o suporte e a contribuição de outros são bem-vindos.

O bot foi projetado para aproveitar os dados existentes em seu fórum para responder às perguntas dos usuários.

Se você tiver alguns requisitos especiais que precisam ser implementados e que vão além da oferta atual e tiver orçamento para isso, você sempre pode considerar me contratar para ajudá-lo.

4 curtidas

Sim, enviei uma mensagem privada sobre isso mais cedo. Neste ponto, a grande questão é qual plugin usar e eu não sei o suficiente sobre eles (ou sobre bots em geral) para tomar uma decisão confiante. :slight_smile:

Preciso de alguém que seja bom nisso para nos ajudar a começar. Posso pagar pela ajuda e por recursos especiais, se precisarmos de algum.

Desculpe por ter te marcado antes, eu não sabia que era má etiqueta.

4 curtidas

Boa pergunta, não sei quantos usuários aqui têm experiência prática com algum dos bots de IA mencionados, mas posso dizer que tenho usado o bot Discourse AI no site da OpenAI mesmo em fase de desenvolvimento. Regularmente dou feedback e sugestões, muitos estão listados neste site. (list) Também faço tudo isso de graça.

Seria possível eu receber um convite para o site para entender melhor o site?

Se tiver perguntas, sinta-se à vontade para perguntar aqui ou me enviar uma mensagem privada.

FYI

Se você não sabe o que é RAG, esta é uma introdução curta e agradável.

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

3 curtidas

Posso perguntar como você decidiu qual dos dois plugins de bot de IA usar em primeiro lugar? (Discourse AI ou Discourse Chatbot)

1 curtida

Eu não decidi. A única escolha foi para o do Discourse.

Como o site OpenAI Discourse é um pouco mais antigo, ele ainda tem a categoria Lounge. Sam do Discourse, não Sam da OpenAI, concedeu aos usuários TL3 do site OpenAI acesso ao bot de IA do Discourse. Foi assim que ganhei acesso e ele foi escolhido. No entanto, se você ler a postagem aqui e nas entrelinhas, poderá ver que Sam tem trabalhado conosco para obter feedback e ter usuários que saberiam do que tal bot era capaz por meio de tópicos na Lounge.

À medida que as alterações são feitas no bot de IA do Discourse, nós as vemos logo após o código ser enviado e instalado e tentaremos usá-lo.

Não posso dizer nada sobre o bot Plugin e não irei especular.

Espero que ajude.

1 curtida

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 curtidas

Obrigado pela sua ajuda e por um post tão completo!

Eu escrevi isso antes de saber sobre RAG. Eu só quis dizer que ele precisa usar os dados históricos do nosso fórum, não necessariamente ser treinado neles.

Sim, após o feedback seu e de outros, uma categoria oculta como base de conhecimento parece ser o caminho a seguir.

Eu não gostaria que um usuário pudesse atualizar a base de conhecimento de qualquer maneira. Apenas a equipe deveria ser capaz de fazer isso. Seria fantástico se a equipe pudesse revisar e classificar as respostas do bot, mas não parece que isso seja possível com RAG.

Que legal!

Bom ponto. Eu me pergunto o que ele deveria fornecer como referência se a fonte estiver em nossa base de conhecimento oculta?

Esta pergunta foi mal formulada devido à minha ingenuidade sobre como os LLMs funcionam. RAG deve ser suficiente por enquanto.

O que eu quis dizer foi que não quero desenvolver código personalizado para recursos que merefield ou a equipe de desenvolvimento do discourse já construíram em seus plugins. Quero usar o que já está disponível e apenas aprimorar quando necessário.

Obrigado novamente, Eric!

2 curtidas

Bom ponto. Que bom que você observou isso, eu deveria ter dito isso na minha resposta.

Parece que isso se integraria bem à fila de revisão. Essa é a chamada do Discourse.

Não.

RAG é uma das muitas tecnologias necessárias para obter o que você busca. No caso de avaliar a resposta da IA, isso é diferente do propósito do RAG. O feedback humano para uma conclusão gerada faz parte da tecnologia RLHF.

É mesmo!

A maior parte dessa tecnologia é tão nova e avança tão rápido que se deve estar aberto a ideias de qualquer pessoa e de qualquer lugar.

O mesmo que se você fosse um humano e estivesse anotando em uma resposta a uma pessoa real. Eu pensaria no nome do manual, na data de publicação, na seção e no parágrafo.

Obrigado por compartilhar isso. Vejo muitas postagens de muitos usuários e direi que é um prazer ajudá-lo.

Isso foi engraçado, mas muitos nem saberão o porquê. A tecnologia está avançando tão rápido que tenho certeza de que muitos estão criando código em um mês e depois percebendo que ele já foi incorporado a uma tecnologia e o que criaram agora é redundante e pode até estar obsoleto. Se você dedicar um tempo para aprender sobre Langchain, poderá ver usuários observando que descartaram quase todo o código de seu aplicativo e apenas começaram a usar o Langchain.

Outra fonte para aprender isso são os cursos curtos da DeepLearning.AI (atualmente gratuitos).

De nada.

Por favor, faça mais perguntas, é por isso que estou ajudando você. Quanto mais perguntas as pessoas fizerem sobre essa tecnologia, mais poderemos nos ajudar a alcançar nossos objetivos.

3 curtidas

Eric, eu já respondi isso acima.

Minha resposta não foi clara o suficiente?

Com todo o respeito, não tenho certeza do que essas perguntas têm a ver com a “equipe do Discourse”?

O repositório é de autoria e mantido por mim, como deve ficar claro pelo URL, histórico de commits e seu Tópico de plugin?

Se em algum momento o Chatbot for movido para uma organização GitHub, provavelmente será para a Pavillion.

1 curtida

Quando leio isso, penso no bot que você vê quando entra no Discourse pela primeira vez. @discobot
Se a declaração usasse a palavra plugin, eu teria pensado no seu plugin e não teria respondido como fiz.

1 curtida

Não tenho certeza do que você quer dizer com “oculta”, mas presumo que tanto o Chatbot quanto o plugin de IA usarão RAG apenas em conteúdo de categorias publicamente acessíveis.

Exatamente, então entendo que, em vez de fazer upload para uma categoria e depois extraí-los, hoje em dia a melhor abordagem para isso seria fazer o upload desses documentos PDF como arquivos e usá-los em um assistente? Isso poderia ser combinado com RAG sob demanda do conteúdo do fórum.

2 curtidas

Pode ser benéfico ter uma categoria que seja usada para RAG, mas que não seja visível para os usuários porque não está organizada/apresentada de forma amigável para o usuário final. Para coisas como manuais de usuário brutos ou talvez scripts comuns que o bot possa seguir.

2 curtidas