Discourse 聊天机器人 🤖

罗伯特,我能把这个机器人设为版主吗?我试过了,但连选项都没有。

1 个赞

第一个错误与 Chat(“帖子嵌入”)无关。这个错误是无害的,当您在创建帖子后不久将其删除,而系统尚未有机会创建嵌入时,就会发生此错误。删除事件会启动一个作业来删除相应的嵌入,而在这种情况下,该嵌入是缺失的。您可以忽略它。

您能否分享第二个错误的堆栈跟踪?(来自日志选项卡)。

要从 Chat 调用机器人,您必须通过 @提及机器人或使用插件设置中启用的快速访问功能。您还必须确保机器人已在 Chat 中启用(同样在插件设置中)。

请注意,机器人目前不支持 Chat 线程……仅在顶层 Chat 中工作。您是否尝试在线程中访问?

2 个赞

它主要是一个响应式机器人(尽管可以在特定类别中创建主题时自动调用它)。它目前不设计用作版主。

1 个赞

啊,我刚更新了(我只落后了 100 个提交),看起来核心代码有一个重大更改,影响了聊天功能。我会看一下。

在此期间,您可以将“快速启动”切换到“个人消息”。

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 的实例

Job exception: 未定义局部变量或方法 `res’,对于 DiscourseChatbot::OpenAiBotBasic 的实例

有人知道这是怎么回事吗?

2 个赞

我想我可能知道是怎么回事了。我看一下然后回复。

让我猜猜:RAG 机器人没有问题?

1 个赞

现在应该已经修复了:

请更新并确认。

1 个赞

太搞笑了。在我重建我的东西半小时后,又一个修复程序活了过来 :joy:

谢谢 [1]


  1. 那个修复,不是那个时机 :rofl: ↩︎

2 个赞

是的,现在可以了,谢谢

2 个赞

感谢您的插件!我已经设置好了,一切似乎都很顺利(所有设置都在,我有 API 密钥,OpenAI 积分,聊天机器人已添加为用户,并将我自己添加到了高信任度组中),但我没有收到来自聊天框的任何回复,无论是私聊还是公开聊天。我不确定我哪里做错了,或者应该分享什么信息。

另外,“与聊天机器人对话”按钮点击后没有任何反应。:thinking:

说得太早了。这是因为我更改了机器人的名称。现在我只需要弄清楚为什么在发送了几条消息后就达到了配额。

1 个赞

检查您的用户处于哪个聊天机器人信任级别。

有三个“信任级别”,它们是 Discourse 组的集合。

通常,作为管理员,您会争取加入包含在“高”信任级别中的组。

我将从跟踪查询的默认策略(chatbot_quota_basis)开始。如果您将其更改为令牌,则需要为所有信任级别显著增加默认配额,因为每个查询可能需要数千个令牌。默认设置是为了支持查询。

是的,我在高信任度组。并且我已经将配额基础设置为“查询”。聊天机器人回答了一个问题,然后立即显示:*


*

1 个赞

尝试通过按关联的触发器按钮在 Sidekiq 中运行重置配额作业:

之后,询问机器人您剩余的配额是多少。

1 个赞