Chatbot de Discourse 🤖

Es principalmente un bot de llamada y respuesta (aunque se puede invocar automáticamente al crear temas en categorías determinadas). Actualmente no está diseñado para actuar como moderador.

1 me gusta

Ah, acabo de actualizar (solo estaba 100 commits atrasado) y parece que ha habido un cambio importante en el núcleo que afecta al uso del chat. Le echaré un vistazo.

Mientras tanto, podrías cambiar Quick Launch a Mensajes Personales.

1 me gusta

He actualizado el plugin.

El chat debería funcionar como antes:

2 Me gusta

También he añadido compatibilidad con Hilos de Chat

Ahora el contexto del Chatbot se limita al Hilo de Chat actual y solo debe responder al Hilo actual.

Avísame si tienes algún problema.

1 me gusta

La búsqueda en el foro se rompió con la versión 1.3, eso ahora está resuelto.

2 Me gusta

Todavía obtengo el mismo error actualizado hace 3 horas.

activesupport-7.1.4.1/lib/active_support/broadcast_logger.rb:134:in `block in error'

activesupport-7.1.4.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'

activesupport-7.1.4.1/lib/active_support/broadcast_logger.rb:231:in `each'

activesupport-7.1.4.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'

activesupport-7.1.4.1/lib/active_support/broadcast_logger.rb:134:in `error'

/var/www/discourse/plugins/discourse-chatbot/lib/discourse_chatbot/message/message_reply_creator.rb:38:in `rescue in create'

/var/www/discourse/plugins/discourse-chatbot/lib/discourse_chatbot/message/message_reply_creator.rb:11:in `create'

/var/www/discourse/plugins/discourse-chatbot/app/jobs/regular/chatbot_reply.rb:150:in `execute'

/var/www/discourse/app/jobs/base.rb:322:in `block (2 levels) in perform'

rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'

rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'

/var/www/discourse/app/jobs/base.rb:309:in `block in perform'

/var/www/discourse/app/jobs/base.rb:305:in `each'

/var/www/discourse/app/jobs/base.rb:305:in `perform'

sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'

sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'

sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'

/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'

sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'

sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'

sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'

sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'

sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'

sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'

sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'

sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'

sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'

sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'

sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'

sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'

sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'

sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'

sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'

sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'

¿Y han reconstruido completamente el sitio?

La actualización del plugin debería haber sido suficiente.

¿En qué versión están? ¿Tanto el plugin como Discourse?

Después de lanzar esta corrección y actualizar, no puedo reproducir su problema (pero definitivamente pude hacerlo antes).

1 me gusta

¡Después de una reconstrucción completa, funciona, gracias por su tiempo!

2 Me gusta

El bot dejó de responder después de las actualizaciones recientes, mostrando estos errores:

Chatbot: Hubo un problema, pero se reintentará hasta el límite: variable o método local no definido `res’ para una instancia de DiscourseChatbot::OpenAiBotBasic

Excepción del trabajo: variable o método local no definido `res’ para una instancia de DiscourseChatbot::OpenAiBotBasic

¿Alguna idea de qué se trata?

2 Me gusta

Creo que podría saber qué está pasando. Le echaré un vistazo y te responderé.

Déjame adivinar: ¿no hay ningún problema con el bot RAG?

1 me gusta

Eso debería estar arreglado ahora:

Por favor, actualiza y confirma.

1 me gusta

Esto es hilarante. De nuevo una corrección cobró vida media hora después de que reconstruí la mía :joy:

Gracias [1]


  1. por esa corrección, no por el momento :rofl: ↩︎

2 Me gusta

Sí, ahora funciona, gracias

2 Me gusta

¡Gracias por este plugin! Lo he configurado y todo parece haber ido bien (todas las configuraciones están ahí, tengo las claves de API, créditos de OpenAI, el chatbot se ha añadido como usuario, me he añadido a uno de los grupos de alta confianza), pero no obtengo ninguna respuesta del cuadro de chat, ni en privado ni en público. No estoy seguro de qué estoy haciendo mal o qué información compartir.

Además, el botón “Hablar con el chatbot” no hace nada cuando se hace clic. :thinking:

Hablé demasiado pronto. Fue porque cambié el nombre del bot. Ahora solo necesito averiguar por qué he alcanzado una cuota después de solo un par de mensajes.

1 me gusta

Comprueba en qué nivel de confianza del chatbot se encuentra tu usuario.

Existen tres “niveles de confianza” que son colecciones de Grupos de Discourse.

Normalmente, como administrador, intentarás estar en un grupo incluido en Alto.

Empezaría con la estrategia predeterminada de seguimiento de consultas (chatbot_quota_basis). Si cambiaste esto a tokens, necesitarás aumentar significativamente las cuotas predeterminadas para todos los niveles de confianza, ya que cada consulta puede costar miles de tokens. Los valores predeterminados están configurados para admitir consultas.

Sí, estoy en el grupo de alta confianza. Y tengo la base de cuotas configurada en consultas. El chatbot respondió una pregunta y luego declaró inmediatamente: *


*

1 me gusta

Intenta ejecutar el trabajo de restablecimiento de cuotas en sidekiq presionando el botón de activación asociado:

Después de eso, pregúntale al bot cuál es tu cuota restante.

1 me gusta

¡Lo he conseguido! ¡Muchas gracias!

2 Me gusta

¡Genial!

Pero, ajá, Ro-Bot mintió (esta es una limitación de los LLM).

Ro-Bot no podría saber esto a menos que lo agregues a la indicación del sistema, pero cada consulta te costará cuota (hasta que te quedes sin cuota).

2 Me gusta