Consejos sobre un bot de soporte para un foro de soporte técnico (Discourse AI vs Discourse Chatbot)

Estoy intentando crear un bot de IA que pueda felicitar a nuestro equipo de soporte humano en un foro de soporte técnico. Los objetivos son brindar soporte fuera del horario comercial (actualmente los usuarios deben esperar hasta que abramos) y un soporte más rápido durante el horario comercial (los humanos tardan más en responder). Si el bot no resuelve el problema, los humanos se harían cargo y lo manejarían durante el horario comercial.

Algunos objetivos de diseño son:

  1. Necesitaría aprender de los datos históricos de nuestro foro para tener el conocimiento del dominio necesario para brindar soporte. Los datos de nuestro foro son mucho más relevantes que el conocimiento general de Internet.
  2. Solo debería intentar responder preguntas sobre el tema. Debería poder ayudar a alguien a solucionar problemas de nuestros productos o a usar nuestro servicio, pero si preguntan cómo hornear un pastel, no debería intentar ayudar. Debería ceñirse a temas similares a los que ya existen en el foro.
  3. Debería proporcionar una forma para que el usuario le diga al bot que deje de responder para que puedan esperar a un humano en su lugar si sienten que el bot no está ayudando.

Veo que existe el módulo AI Bot en el plugin oficial de Discourse AI.

Y existe el Discourse AI Chatbot original.

¿Qué plugin sería mejor para este tipo de aplicación? He leído sobre cada uno por separado y este tema que es similar, pero me encantaría recibir más consejos explícitos si tienes alguno para compartir.

¿Alguno de estos plugins aprende o se ajusta automáticamente con datos históricos del foro? Podemos ajustar GPT-4 manualmente (creo), pero me gustaría utilizar las capacidades del plugin cuando sea posible y no duplicar el trabajo que ya han hecho personas más inteligentes. :slight_smile:

¿Alguno de estos plugins te permite restringir los temas en los que el bot participará para que no participe en conversaciones generales fuera de tema?

¿El Discourse Chatbot original está destinado a ser desarrollado y mantenido a largo plazo? ¿O está previsto que sea reemplazado por el AI Bot en el plugin oficial, o se integre en él? @merefield

4 Me gusta

Creo que el “Modo Agente” de Discourse Chatbot 🤖 podría ser el más adecuado para tus necesidades.

Este plugin es de terceros y es mantenido como un proyecto de código abierto por un solo desarrollador apasionado. Como tal, empuja los límites de lo que es posible y es bastante más rico en funciones.

Si descubres que te funciona bien, te animo a que busques al desarrollador y ofrezcas contribuir a su mantenimiento.

En contraste, el otro plugin/módulo (official) ha sido desarrollado por el equipo de Discourse con énfasis en la estabilidad y será compatible con su impresionante equipo de desarrollo.

(P.D. No es la mejor etiqueta mencionar a las personas aquí, especialmente a los CEOs y desarrolladores ocupados, a menos que haya una necesidad seria).

5 Me gusta

Sí, ambos utilizan RAG para aprovechar los datos del foro en sus respuestas.

¿Dónde tendrían lugar esas conversaciones?

  • Temas
  • Mensajes privados
  • Chat
  • Aplicación externa
2 Me gusta

Estaría encantado de pagar por ayuda con esto. Me pondré en contacto.

Lo siento, no quise ser grosero. Solo estaba mencionando a las personas que publicaron sobre esos complementos en caso de que quisieran opinar.

2 Me gusta

Inicialmente, probablemente solo mensajes privados. Actualmente no usamos chat, pero parece que podría funcionar bien para esto, ya que un bot puede responder en tiempo real (a diferencia de nuestros humanos muy ocupados), así que eso también podría ser bueno. Luego, si funciona bien en las conversaciones privadas, querría habilitarlo en temas públicos.

2 Me gusta

Así que creo que deberías probar nuestra función AIBot en el plugin DiscourseAI. Empieza con nuestra personalidad de “Ayudante del Foro”, encaja casi perfectamente en tu caso de uso.

Después de eso, puedes ir al Nuevo Editor de Personalidades de IA para Discourse para crear una personalidad especializada en tus necesidades. Dale capacidades de buscar y leer y escribe un buen prompt del sistema y estarás listo para empezar.

Te he dado acceso a la función aquí en Meta, actualiza tu navegador para verla y jugar con ella.

6 Me gusta

Tengo la versión 0.0.1 ejecutándose en una copia de nuestro foro. Está bien, pero no parece muy inteligente. Principalmente busca en nuestro foro y proporciona una lista de temas que podrían ser relevantes. No parece interpretar la información y brindar soporte de manera conversacional. Y no tengo el editor de personalidad. El que está en Meta parece funcionar mejor, así que sospecho que no tengo la última versión.

2 Me gusta

En realidad, lo hace mejor cuando le pido que sea más específico y me guíe a través de los pasos.

2 Me gusta

No tengo intención de dejar de dar soporte a Chatbot en el corto plazo.

De todos modos, es de código abierto, por lo que el soporte y la contribución de otros son bienvenidos.

El bot está diseñado para aprovechar los datos existentes en su foro para responder a las preguntas de los usuarios.

Si tiene algún requisito especial que necesite implementación y que vaya más allá de la oferta actual y tiene presupuesto para ello, siempre puede considerar contratarme para que le ayude.

4 Me gusta

Sí, te envié un mensaje privado sobre eso antes. En este punto, la gran pregunta es qué plugin usar y no sé lo suficiente sobre ellos (o sobre los bots en general) para tomar una decisión con confianza. :slight_smile:

Necesito a alguien que sea bueno en esto para ayudarnos a empezar. Puedo pagar por la ayuda y las características especiales si las necesitamos.

Disculpa por mencionarte antes, no sabía que era una mala etiqueta.

4 Me gusta

Buena pregunta, no sé cuántos usuarios aquí tienen experiencia práctica con alguno de los bots de IA mencionados, pero puedo decir que he estado usando el bot de IA de Discourse en el sitio de OpenAI incluso en la etapa de desarrollo. Regularmente doy comentarios y sugerencias, muchos de los cuales se enumeran en este sitio. (list) También hago todo esto gratis.

¿Sería posible que me invitaran al sitio para comprenderlo mejor?

Si tiene preguntas, no dude en preguntar aquí o enviarme un mensaje privado.

Para su información

Si no sabe qué es RAG, esta es una buena y breve introducción.

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

3 Me gusta

¿Puedo preguntar cómo decidió cuál de los dos complementos de bot de IA utilizar en primer lugar? (Discourse AI o Discourse Chatbot)

1 me gusta

No decidí. La única opción fue para el de Discourse.

Dado que el sitio de OpenAI Discourse es un poco más antiguo, todavía tiene la categoría Lounge. Sam de Discourse, no Sam de OpenAI, otorgó a los usuarios TL3 del sitio de OpenAI acceso al bot de IA de Discourse. Así es como obtuve acceso y fue elegido. Sin embargo, si lees la publicación aquí y entre líneas, podrías ver que Sam ha estado trabajando con nosotros para obtener comentarios y tener usuarios que supieran de lo que era capaz un bot de este tipo a través de temas en la Lounge.

A medida que se realizan cambios en el bot de IA de Discourse, los vemos poco después de que el código se envía e instala y lo probaremos.

No puedo decir nada sobre el bot de Plugin y no especularé.

Espero que esto ayude.

1 me gusta

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 Me gusta

Gracias por tu ayuda y por una publicación tan completa.

Escribí eso antes de saber sobre RAG. Solo quise decir que necesita usar nuestros datos históricos del foro, no necesariamente ser entrenado con ellos.

Sí, después de recibir comentarios tuyos y de otros, una categoría oculta como base de conocimiento parece ser el camino a seguir.

De todos modos, no querría que un usuario pudiera actualizar la base de conocimiento. Solo el personal debería poder hacerlo. Sería fantástico si el personal pudiera revisar y calificar las respuestas del bot, pero no parece que eso sea posible con RAG.

¡Eso es genial!

Buen punto. Me pregunto qué debería proporcionar como referencia si la fuente está en nuestra base de conocimiento oculta.

Esta pregunta fue mal formulada debido a mi ingenuidad sobre cómo funcionan los LLM. RAG debería ser suficiente por ahora.

Lo que quise decir fue que no quiero desarrollar código personalizado para funciones que merefield o el equipo de desarrollo de Discourse ya han implementado en sus complementos. Quiero usar lo que ya está disponible y solo mejorar cuando sea necesario.

¡Gracias de nuevo, Eric!

2 Me gusta

Buen punto. Me alegro de que lo hayas señalado, debería haberlo dicho en mi respuesta.

Parece que se integraría muy bien en la cola de revisión. Esa es la llamada de Discourse.

No.

RAG es una de las muchas tecnologías necesarias para obtener lo que buscas. En el caso de calificar la respuesta de la IA, eso es diferente del propósito de RAG. La retroalimentación humana para una finalización generada es parte de la tecnología RLHF.

¡Lo es!

La mayoría de esta tecnología es tan nueva y avanza tan rápido que uno debe estar abierto a ideas de cualquiera y de cualquier lugar.

Lo mismo que si fueras un humano y lo anotaras en una respuesta a una persona real. Pensaría que el nombre del manual, la fecha de publicación, la sección y el párrafo.

Gracias por compartir eso. Veo muchas publicaciones de muchos usuarios y te diré que es un placer ayudarte.

Eso fue gracioso, pero muchos ni siquiera sabrán por qué. La tecnología avanza tan rápido que estoy seguro de que muchos crean código un mes y luego se dan cuenta de que ya se ha incorporado a una tecnología y lo que crearon ahora es redundante y puede que incluso esté obsoleto. Si te tomas el tiempo para aprender sobre Langchain, puedes ver a usuarios que dicen que desecharon casi todo el código de su aplicación y simplemente comenzaron a usar Langchain.

Otra fuente para aprender sobre esto son los cursos cortos de DeepLearning.AI (actualmente gratuitos).

De nada.

Por favor, haz más preguntas, por eso te estoy ayudando. Cuantas más preguntas haga la gente sobre esta tecnología, más podremos ayudarnos mutuamente a alcanzar nuestros objetivos.

3 Me gusta

Eric, ya respondí esto arriba.

¿Mi respuesta no fue lo suficientemente clara?

Con todo respeto, ¿no estoy seguro de qué tienen que ver estas preguntas con el “personal de Discourse”?

El repositorio está creado y mantenido por mí, como debería quedar claro por la URL, el historial de commits y su tema del plugin.

Si en algún momento Chatbot se mudara a una organización de GitHub, probablemente sería a Pavillion.

1 me gusta

Cuando leo eso, pienso en el bot que ves cuando te unes por primera vez a Discourse. @discobot
Si la declaración hubiera usado la palabra plugin, habría pensado en tu plugin y no habría respondido como lo hice.

1 me gusta

No estoy seguro de a qué te refieres con “oculta”, pero supongo que tanto el Chatbot como el plugin de IA solo usarán RAG en contenido de categorías públicamente accesibles.

Exactamente, así que entiendo que en lugar de subir a una categoría y luego extraerlos, hoy en día el mejor enfoque para esto sería subir esos documentos PDF como archivos y usarlos en un asistente? Esto podría combinarse con RAG sobre la marcha a partir del contenido del foro.

2 Me gusta

Podría ser beneficioso tener una categoría que se use para RAG pero que no sea visible para los usuarios porque no está organizada/presentada de una manera amigable para el usuario final. Para cosas como manuales de usuario sin procesar o quizás scripts comunes que el bot podría seguir.

2 Me gusta