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
4 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

Después de echar un vistazo a varios temas, esto es lo que aprendí y recomiendo.

El sitio está destinado al soporte del sistema de seguridad para el hogar Surety.

El objetivo de la IA utilizada con el foro de Discourse es (ref):

  • Complementar a nuestro equipo de soporte humano en un foro de soporte técnico.
  • Debería aprender de nuestros datos históricos del foro.
  • Poseer conocimiento del dominio para ofrecer soporte.
  • Solo debería intentar responder preguntas relacionadas con el tema.
  • Debería ofrecer una forma de que el usuario le indique al bot que deje de responder, para que pueda esperar a un humano si siente que el bot no está ayudando.

Y aquí están algunas de las preguntas de Ryan:

  • ¿Estos aprenden o se ajustan automáticamente con datos históricos del foro?
  • ¿No duplicar el trabajo que ya han realizado personas más inteligentes?
  • ¿Restringir los temas en los que el bot participará para que no se involucre en conversaciones generales o fuera de tema?
  • ¿Se pretende desarrollar y mantener a largo plazo el Chatbot original de Discourse?
  • ¿O está planeado que eventualmente sea reemplazado por el Bot de IA en el plugin oficial, o integrado en él?

Aquí hay una pregunta publicada que le di al bot de Discourse AI, actualmente habilitado en la versión del sitio que probé, y una respuesta de ChatGPT.

La pregunta:

Tengo un IQP4 con un PowerG para cableado fijo. Los sensores cableados funcionan. Quería realizar una prueba en el timbre/sirena, pero no pude encontrar la opción en el IQP4. Puedo probar la sirena en el panel y suena junto con el IQ Remote, pero el timbre cableado no. Tengo que activar la alarma para que suene la sirena cableada.

¿Hay alguna forma de probar el timbre en el PowerG para cableado fijo desde el IQP4?


Aquí está la respuesta usando el bot de Discourse AI con GPT-4

Encontré un tema relevante en nuestro foro que podría ayudarte con tu problema.

En el tema Prueba de timbre cableado en PowerG para cableado fijo?, el usuario tuvo un problema similar donde no pudo encontrar la opción para probar el timbre en el PowerG para cableado fijo desde el IQP4.

Por favor, consulta este tema para ver posibles soluciones. Si aún tienes preguntas o necesitas más asistencia, no dudes en preguntar.


Aquí está la respuesta usando el bot de Discourse AI con GPT-3.5

Encontré un tema en el Foro de Soporte de Surety que discute la prueba del timbre cableado en la conexión PowerG para cableado fijo con el IQ Panel 4 (IQP4). Puedes encontrar el tema aquí.

En el tema, el usuario menciona que no pudo encontrar una opción para probar el timbre/sirena en el propio IQP4. Sin embargo, pudo probar la sirena en el panel y sonó junto con el IQ Remote. El timbre cableado, por otro lado, no sonó a menos que se activara la alarma.

Puedes visitar el tema para obtener más información y ver si hay soluciones o sugerencias proporcionadas por otros usuarios.


Tanto el bot de Discourse AI GPT-4 como el GPT-3.5 encontraron el mismo tema.



Aquí está la respuesta usando ChatGPT

No tengo información específica sobre la última versión de software o las funciones del IQ Panel 4, ya que mi entrenamiento solo incluye conocimientos hasta enero de 2022. Sin embargo, basándome en principios generales de prueba de sistemas de alarma, aquí hay algunas sugerencias que podrían ayudarte a probar tu sirena cableada conectada al PowerG:

  1. Modo de prueba del sistema:

    • Verifica si tu panel de alarma tiene un modo de «Prueba del sistema» o «Prueba de recorrido». Este modo está diseñado típicamente para probar sensores y alarmas sin desencadenar un evento de alarma real. Si tu panel tiene esta función, debería permitirte probar la sirena sin activar una alarma completa.
  2. Control de salida:

    • Busca una opción de «Control de salida» o «Salida auxiliar» en la configuración de tu panel de alarma. Esta función podría permitirte activar manualmente salidas, como la sirena, con fines de prueba.
  3. Paso de zona:

    • Algunos sistemas permiten omitir zonas específicas durante las pruebas. Si tu sirena cableada está asociada con una zona particular, podrías poder omitir esa zona para la prueba.
  4. Manual del usuario:

    • Consulta el manual del usuario o la documentación que vino con tu IQ Panel 4. Debería proporcionar instrucciones específicas sobre cómo probar y controlar diferentes componentes de tu sistema de alarma.
  5. Soporte técnico:

    • Si no puedes encontrar una solución por tu cuenta, considera contactar al soporte técnico del fabricante. Ellos pueden brindarte orientación basada en las funciones y capacidades específicas de tu sistema.
  6. Actualización del software del panel:

    • Verifica si hay actualizaciones de software disponibles para tu IQ Panel 4. Los fabricantes a menudo lanzan actualizaciones para agregar nuevas funciones o resolver problemas, y una actualización podría incluir un modo de prueba específico para la sirena.

Recuerda tener precaución al realizar pruebas para evitar activar accidentalmente un evento de alarma real. Si no estás seguro sobre algún paso, siempre es buena idea consultar el manual del usuario o contactar al soporte técnico para obtener asistencia.

Claramente, ChatGPT está dando una respuesta más detallada. Abordaré las posibles razones más adelante en el tema.


Nota: No tengo acceso al plugin Discourse AI de Merefield (Tarjeta) (GitHub). Sería agradable ver la respuesta a la misma pregunta publicada aquí para comparar. :slightly_smiling_face:




Aquí está mi retroalimentación.

La IA de estos bots se basa en LLM (modelos de lenguaje grandes); el conocimiento está limitado por el conjunto de datos de entrenamiento. Los bots también utilizan RAG para aumentar su conocimiento accediendo a los temas del foro.

Los bots suelen utilizar un «prompt del sistema», que es como una personalidad, y no es un prompt del usuario con la solicitud a la API de LLM.

Dejaré que ChatGPT explique la diferencia.

ChatGPT

¿Qué es un prompt del sistema? ¿En qué se diferencia de un prompt del usuario?

Completación

Un prompt del sistema y un prompt del usuario son términos que a menudo se utilizan en el contexto de modelos de lenguaje y sistemas de IA conversacional como GPT-3.5. Permíteme aclarar la diferencia entre ellos:

  1. Prompt del usuario:

    • Un prompt del usuario es la entrada proporcionada por un usuario humano para iniciar una conversación o solicitar información al sistema de IA.
    • Es el texto o la consulta que una persona escribe o habla para interactuar con el modelo de IA.
    • Por ejemplo, si estás usando un chatbot o un modelo de lenguaje, tu entrada haciendo una pregunta o haciendo una declaración sería el prompt del usuario.
  2. Prompt del sistema:

    • Un prompt del sistema, por otro lado, es la entrada o instrucción inicial dada al modelo de IA para establecer el contexto o guiar su comportamiento en una conversación.
    • Se utiliza para proporcionar al IA un punto de partida o contexto para generar respuestas.
    • El prompt del sistema ayuda a dar forma al tono, estilo o contenido de las respuestas de la IA y sirve como una especie de instrucción para guiar el comportamiento del modelo.
    • Mientras que los prompts del usuario son específicos de las consultas o declaraciones del usuario, los prompts del sistema se refieren más a dar un contexto general o una instrucción para toda la conversación.

En el caso de GPT-3.5 o modelos de lenguaje similares, una conversación generalmente comienza con un prompt del sistema seguido de prompts del usuario en un intercambio continuo. El prompt del sistema ayuda a influir en las respuestas del modelo durante toda la conversación, pero es la combinación de prompts del sistema y del usuario lo que determina la salida del modelo.


La razón por la que los bots no pueden dar una respuesta mucho más específica es porque su base de conocimientos carece de los manuales del usuario, las instrucciones de instalación, etc., para estos productos. Además, los bots a menudo no pueden extraer imágenes y diagramas de dicha documentación, como diagramas de cableado e imágenes utilizadas en los manuales de instalación.

Como punto de partida, se debería utilizar RAG para expandir el conocimiento de la IA lo más posible, incluso si solo se trata del texto de la documentación. Aunque el bot de Discourse AI puede usar RAG para todos los temas del foro, no sé si permiten agregar información externa. Si no es así, una idea sería importar todos los documentos como PDFs en una categoría, posiblemente oculta, y luego el código de Discourse podría acceder a ellos más fácilmente al estar en el foro y luego usar Langchain para acceder a los PDFs (ref).

Con este conocimiento integrado, el prompt del sistema puede ajustarse para mejorar las respuestas, pero esto seguirá estando lejos de lo que buscas. Es muy probable que aún obtengas respuestas como la primera, con referencias a información pero sin instrucciones paso a paso cuando se necesitan. Además, no hay forma de dar retroalimentación sobre la respuesta de la IA que la IA sepa que es retroalimentación. En otras palabras, si un usuario responde al bot indicando que algo está mal, el bot leerá la respuesta pero no entenderá que necesita actualizar el conocimiento basado en eso.

Para mejorar la calidad de las respuestas, surgen tres ideas:

  1. Hacer uso de HyDE (Embeddings de Documentos Hipotéticos)

«Precise Zero-Shot Dense Retrieval without Relevance Labels» de Luyu Gao, Xueguang Ma, Jimmy Lin y Jamie Callan (pdf)

De hecho, aprendí sobre HyDE en Discourse (ref) y sé que lo están utilizando.

  1. RLHF (Aprendizaje por refuerzo con retroalimentación humana). No creo que ninguno de los bots sea capaz de esto, y Discourse podría estar considerándolo; me gustaría escuchar su retroalimentación si están dispuestos a compartirla.

  2. Datos sintéticos con RLHF. Esto es realmente de vanguardia y no es algo que esperaría que ninguno de los dos bots implemente.

Una de las formas más demostradas y exitosas de entrenar un LLM es hacer que se entrene a sí mismo, pero necesitas alguna métrica para que sepa si el resultado es mejor o peor. Para tu sitio, la única forma que entiendo actualmente de saber si una solución es mejor o peor es que un humano califique la solución de la IA. Para obtener más rondas posibles de preguntas y soluciones, las preguntas son generadas por una IA, otra IA genera la solución y luego la solución se mide y se utiliza para mejorar la IA que genera la solución.


Para mejorar la capacidad del bot de ayudar a los usuarios, debería realizar una serie de preguntas para recopilar información y comprender mejor el problema, de manera similar a como lo hace un médico para un diagnóstico y pronóstico.

Otra opción es explorar tecnologías similares a las que se puede acceder con el bot de IA, como Microsoft Copilot.

Un elemento que no solicitaste ni notaste, pero que es valioso, son las referencias de vuelta a la fuente. La razón por la que esto es importante es para verificar si la completación de la IA es una alucinación o no. Si se incluye una referencia, es una referencia real y no una alucinación, entonces la referencia puede verificarse para ver si proviene de una fuente autorizada, como un manual, y así saber que no es una alucinación. Agregar referencias es fácil de hacer con RAG y debería esperarse.


Ahora, abordaré tus objetivos específicos.

Complementar a nuestro equipo de soporte humano en un foro de soporte técnico.

Esto es más una declaración que una pregunta, por lo que no lo responderé como una pregunta.

Debería aprender de nuestros datos históricos del foro.

Esto en realidad era parte de una declaración más grande que dividí. La razón por la que la dividí es que, aunque es correcto que los datos históricos del foro son valiosos, también se necesita el conocimiento base, como el de los manuales. Los bots actuales utilizan RAG con las publicaciones del foro, pero, según tengo entendido, no saben cómo acceder a datos externos.

Solo debería intentar responder preguntas relacionadas con el tema.

Esto puede lograrse ajustando el prompt del sistema. Esto también requeriría alguna de la tecnología de Discourse AI Post Classifier - Automation rule.

Debería ofrecer una forma de que el usuario le indique al bot que deje de responder, para que pueda esperar a un humano si siente que el bot no está ayudando.

Esto puede lograrse ajustando el prompt del sistema.

¿Estos aprenden o se ajustan automáticamente con datos históricos del foro?

Buena pregunta. Aunque he mencionado brevemente cómo empezar a resolver esto antes, en realidad es una pregunta mucho más difícil de lo que parece, pero los grandes investigadores de LLM están logrando un progreso mucho mejor en esto y podría haber algunos anuncios interesantes en los próximos meses que puedan hacer esto mucho más fácil.

No duplicar el trabajo que ya han realizado personas más inteligentes.

Lo interpretaré como que el LLM no debería divagar sobre lo que sabe. Eso depende de cómo se entrena el modelo con nuevos conocimientos. Es posible hacer que el modelo sea peor e incluso más difícil de que un modelo «olvide». Según tengo entendido, ninguno de los bots de Discourse AI tiene la capacidad de aprender, es decir, cambiar los pesos en el LLM, pero sí tienen la capacidad de usar RAG con las publicaciones de los temas. Así que una mala publicación de tema, basura dentro, puede crear basura fuera.

Restringir los temas en los que el bot participará para que no se involucre en conversaciones generales o fuera de tema?

Esto sería similar a Discourse AI Post Classifier - Automation rule.

¿Se pretende desarrollar y mantener a largo plazo el Chatbot original de Discourse?

Dejaré esa pregunta para el personal de Discourse.

¿O está planeado que eventualmente sea reemplazado por el Bot de IA en el plugin oficial, o integrado en él?

Dejaré esa pregunta para el personal de Discourse.

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.

3 Me gusta