Discourse Chatbot 🤖

Привет, Роберт, можно ли назначить этого бота модератором? Я пытаюсь это сделать, но у меня даже нет такой опции для бота.

1 лайк

Первая ошибка не имеет отношения к чату («Вставка сообщения»). Она безвредна и возникает, когда вы удаляете сообщение сразу после его создания, до того как система успевает создать вставку. Событие удаления запускает задачу по удалению соответствующей вставки, которая в таких случаях отсутствует. Вы можете игнорировать эту ошибку.

Не могли бы вы предоставить трассировку стека второй ошибки? (из вкладки «Журнал»).

Чтобы вызвать бота в чате, нужно упомянуть его через @ или использовать функцию быстрого доступа, включенную в настройках плагина. Также убедитесь, что бот включен для чата (тоже в настройках плагина).

Обратите внимание: бот в настоящее время не поддерживает потоки чата — он работает только в основном чате. Вы пытаетесь получить доступ к нему в потоке?

2 лайка

Это в основном бот, работающий по принципу «вопрос-ответ» (хотя его можно вызывать автоматически при создании тем в заданных категориях). В настоящее время он не предназначен для выполнения функций модератора.

1 лайк

Ах, я только что обновился (я отставал всего на 100 коммитов), и похоже, что в ядре произошло критическое изменение, влияющее на использование чата. Я разберусь.

А пока вы можете переключить Quick Launch на личные сообщения.

1 лайк

Я обновил плагин.

Чат теперь должен работать как раньше:

2 лайка

Я также добавил поддержку потоков чата

Теперь контекст чат-бота ограничен текущим потоком чата, и он должен отвечать только в рамках этого потока.

Дайте знать, если возникнут какие-либо проблемы.

1 лайк

Поиск на форуме был нарушен в выпуске 1.3, но эта проблема теперь решена.

2 лайка

По-прежнему получаю ту же ошибку, обновлено 3 часа назад.

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'

И вы полностью пересоздали сайт?

Должно было хватить обновления плагина.

Какая у вас версия? И плагина, и Discourse?

После выпуска этого исправления и обновления я не могу воспроизвести вашу проблему (хотя раньше точно мог).

1 лайк

После полной переустановки всё работает, спасибо за ваше время!

2 лайка

Бот перестал отвечать после последних обновлений, выдавая следующие ошибки:

Chatbot: Произошла проблема, но будет повторная попытка до достижения лимита: неопределённая локальная переменная или метод res для экземпляра DiscourseChatbot::OpenAiBotBasic

Исключение в задаче: неопределённая локальная переменная или метод res для экземпляра DiscourseChatbot::OpenAiBotBasic

Есть ли какие-то идеи, что это может быть?

2 лайка

Кажется, я понимаю, что происходит. Я посмотрю и вернусь с ответом.

Позвольте угадать: с RAG-ботом всё в порядке?

1 лайк

Это должно быть исправлено сейчас:

Пожалуйста, обновитесь и подтвердите.

1 лайк

Это просто смешно. Опять исправление заработало примерно через полчаса после того, как я пересобрал свой :joy:

Спасибо [1]


  1. за это исправление, а не за тайминг :rofl: ↩︎

2 лайка

Да, теперь всё работает, спасибо

2 лайка

Спасибо за этот плагин! Я настроил его, и всё, кажется, прошло успешно (все настройки на месте, у меня есть ключи API, кредиты OpenAI, чат-бот добавлен как пользователь, я включил себя в группу с высоким уровнем доверия), но я не получаю никаких ответов от чат-бота, ни в личном, ни в публичном режиме. Не уверен, что делаю не так или какую информацию нужно предоставить.

Кроме того, кнопка «Поговорить с чат-ботом» ничего не делает при нажатии. :thinking:

Рановато я заговорил. Это потому, что я изменил имя бота. Теперь мне нужно разобраться, почему я достиг лимита всего после нескольких сообщений.

1 лайк

Проверьте, к какому уровню доверия чат-бота относится ваш пользователь.

Существует три «уровня доверия», которые представляют собой наборы групп Discourse.

Обычно в роли администратора вы должны стремиться попасть в группу, входящую в категорию «Высокий».

Я рекомендую начать со стратегии по умолчанию — отслеживания запросов (chatbot_quota_basis). Если вы изменили эту настройку на токены, вам потребуется значительно увеличить квоты по умолчанию для всех уровней доверия, так как каждый запрос может обходиться в тысячи токенов. Значения по умолчанию настроены для поддержки запросов.

Да, я в группе с высоким уровнем доверия. И у меня установлен лимит по количеству запросов. Чат-бот ответил на один вопрос и сразу же написал: *


*

1 лайк

Попробуйте запустить задачу сброса квоты в Sidekiq, нажав соответствующую кнопку-триггер:

После этого спросите у бота, какая у вас осталась квота.

1 лайк