Discourse Chatbot 🤖

Бот автоматически перестанет отвечать, как только в разговор присоединится второй человек (то есть сделает публикацию).

Бот всегда будет отвечать при вызове, если в разговоре находится только один человек.

Это подробно описано в исходном сообщении здесь:

На моём форуме более 100 тысяч пользователей, и я только что изменил временной диапазон дайджеста с 180 на 600 дней, из-за чего сейчас отправилось множество писем. Может ли это повлиять на срабатывание лимита? Я уже сбросил квоту, но ничего не изменилось, прошло уже час. Я упоминал бота, да.

1 лайк

Ответ бота будет задержан, если есть большая очередь задач.

Полагаю, что и сработавшая задача может быть задержана.

Сначала разберитесь с очередью :).

Я несколько раз пытался подготовить для вас ответ, но в итоге не смог. Пожалуйста, обратитесь к администратору, если проблема сохранится. Спасибо!

Вам стоит посмотреть, в чём причина. В логах должно быть сообщение об ошибке.

Проверьте ответ ИИ, включив подробное логирование (последние настройки) и перенаправив лог на уровень Warn (в продакшене вы не сможете читать логи уровня Info).

Затем просмотрите их в /logs.

Часто это происходит из-за того, что вы не предоставили действительный ключ или на вашем счёте недостаточно средств, но причина может быть и в чём-то другом.

Похоже, у меня большая очередь Sidekiq. Можно ли увеличить пропускную способность Sidekiq, чтобы обрабатывать задачи быстрее?

Это несколько выходит за рамки возможностей этого плагина :slight_smile:

Комбинация следующих действий:

  1. Переход на более мощный сервер с большим количеством ядер и памяти.
  2. Увеличение лимитов скорости на стороне вашего провайдера почтовых услуг (возможно).

Обычно ваши очереди должны быть практически пустыми.

Чат-бот: Возникла проблема, но будет выполнена повторная попытка до достижения лимита: nil не может быть преобразован в Integer

Это ошибка, которую я получаю

У вас включены встраивания чат-бота?

Предположительно, ваш бот относится к типу RAG? (если да, то вышеуказанная функция должна быть включена)

Какую модель вы используете?

Без RAG.

gpt-4o-mini

Вы можете увидеть трассировку стека в /logs для этой ошибки?

Сообщение (4 копии)

Чат-бот: Возникла проблема, но будет повторная попытка до достижения лимита: nil не может быть приведен к Integer

Стек вызовов

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:134:in `block in error'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:134:in `error'
/var/www/discourse/plugins/discourse-chatbot/app/jobs/regular/chatbot_reply.rb:140:in `rescue in execute'
/var/www/discourse/plugins/discourse-chatbot/app/jobs/regular/chatbot_reply.rb:121:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'

Пожалуйста, настройте это соответствующим образом и дайте знать, если вы заметите в логах что-то ещё, что выглядит подозрительно:

P.S. Я подтвердил, что базовые боты и боты с RAG работают на последней версии.

Вывод из частного обсуждения: задача сброса квоты всё ещё не была выполнена.

Она должна быть выполнена один раз, прежде чем вы сможете использовать бота.

В настоящее время, возможно, потребуется запустить её вручную один раз после установки плагина.

В ближайшее время я изучу возможность автоматического выполнения этого однократного первоначального запуска.

Надеюсь, это окончательно решит проблему.

3 лайка

Шумиха вокруг DeepSeek :sweat_smile:

Подключайтесь к чат-боту :rocket:

Вы можете использовать бота хотя бы в базовом режиме для доступа к V3 и R1.

Я использовал:

(не аффилированный партнер)

который размещает их модели.

Настройка выглядит так:

Обязательно выберите базовый режим бота и подставьте свой ключ.

Однако, возможно, вы сможете использовать DeepSeek AI напрямую, если у вас есть доступ к их веб-сайту для регистрации :sweat_smile:

Базовый URL будет «https://api.deepseek.com».

4 лайка

См. последний пост о способе использования альтернативных моделей, особенно крупных размещённых моделей с открытым исходным кодом.

Привет, @merefield.

Мой автоответчик чат-бота для тем теперь отвечает дважды в теме. То есть, когда пользователь задаёт вопрос, чат-бот отвечает, а затем сразу же отвечает на тот же вопрос во второй раз, два раза подряд. Есть какие-нибудь идеи, как его успокоить? :sunglasses:

1 лайк

Это очень странно.

Я только что протестировал это на последней версии и получил только один ответ на каждый пост: исходный пост → автоответ → ответ пользователя → ещё один ответ бота.

Можете ли вы подробнее описать вашу настройку, так как я не уверен, что смогу воспроизвести вашу проблему в данный момент?

Или именно такое поведение вы наблюдаете?

Обратите внимание: бот будет продолжать отвечать всегда, пока в теме не появится ещё один пользователь. Таким образом, изначально, пока разговор идёт между пользователем и ботом, бот всегда отвечает последним (это, кстати, описано в первом посте).

Кто-то собирался профинансировать функциональное улучшение, но так и не оплатил счёт, поэтому пока мы вынуждены оставаться с текущим поведением.

Спасибо, Роберт. Я попробую разобраться в нескольких моментах. Это происходит не всегда. Не был уверен, может ли это быть связано с ответом боту и одновременным упоминанием @bot, или, возможно, с проблемой кэширования при входе и выходе из разных аккаунтов в одном браузере. Думал, что, возможно, что-то связано с недавними обновлениями. Моя конфигурация тоже обновлена. Если я найду конкретную ситуацию, которая вызывает это, я дам тебе знать.