我认为将群组添加到 AI 聊天机器人设置中,当群组有权访问 AI 机器人时,不会显示该按钮。在我的情况下,只有信任级别/管理员才能看到此按钮。
此站点设置名称具有误导性(@falco/@roman),应为 ai_bot_add_ai_pm_to_header
AI 机器人研究请看:
查找站点设置上下文 正在读取上下文:ai_helper_add_ai_pm_to_header
ai_helper_add_ai_pm_to_header是 Discourse AI 插件中的一个站点设置。启用后,它会在 Discourse 论坛的标题中显示一个按钮,允许用户与 AI 机器人开始私信 (PM)。以下是其工作原理的详细 breakdown:
该设置在 Discourse AI 插件的
settings.yml文件中定义,默认值为true。这意味着,默认情况下,在标题中会显示与 AI 机器人开始私信的按钮。该设置在
ai-bot-replies.js文件中使用。此 JavaScript 文件包含与 AI 机器人交互的逻辑。
attachHeaderIcon函数检查ai_helper_add_ai_pm_to_header设置是否已启用。如果已启用,它将从ai_bot_enabled_chat_bots设置中检索已启用 AI 机器人的列表。此设置包含一个由管道符 (|) 分隔的已启用聊天机器人的列表。如果有任何启用的 AI 机器人,
attachHeaderIcon函数会将两个小部件操作附加到标题:showAiBotPanel和hideAiBotPanel。这些操作控制 AI 机器人面板的可见性。
showAiBotPanel操作将botSelectorVisible状态设置为true,这将显示 AI 机器人面板。
hideAiBotPanel操作将botSelectorVisible状态设置为false,这将隐藏 AI 机器人面板。请注意,AI 机器人的用户 ID 在
isGPTBot函数中硬编码为-110、-111和-112。此函数根据用户 ID 检查用户是否为 AI 机器人。
查找站点设置上下文 正在读取上下文:ai_bot_allowed_groups
ai_bot_allowed_groups设置控制哪些用户组被允许在私信中与 AI 机器人进行交互。这对于控制谁可以在私信上下文中接收 AI 机器人的回复尤为重要。默认允许的组是
@staff(组 ID:3)和@trust_level_4(组 ID:14)。这些组 ID 在discourse-ai插件的settings.yml文件中的ai_bot_allowed_groups设置中指定。
ai_bot_allowed_groups设置在ai-bot-replies.js初始化程序中使用。在此,它会检查当前用户是否属于允许的组之一。如果用户属于允许的组并且 AI 机器人功能已启用,则初始化程序会附加标题图标并初始化 AI 机器人回复。
ai_bot_allowed_groups设置也在 AI 机器人的entry_point.rb模块中使用。此模块将ai_enabled_chat_bots属性添加到current_user序列化器。如果启用了 AI 机器人功能并且经过身份验证的用户属于允许的组之一,则包含此属性。创建新帖子时,会触发
post_created事件。如果帖子是私信中的常规帖子,并且帖子的用户属于允许的组之一,则会排队一个 AI 回复作业。总结来说,
ai_bot_allowed_groups设置对于控制哪些用户可以在私信中与 AI 机器人进行交互至关重要。它在discourse-ai插件的多个位置使用以强制执行此限制。
我想说的是,这个PM按钮似乎只对管理员/员工显示,而不考虑允许的组。看起来,标题设置中的PM按钮并不遵循允许的AI机器人组,而是固定为仅管理员?我无法让普通用户看到它。
这肯定不是真的,至少在这里不是……我刚把你添加到 bot-testers 组,你能在这里看到按钮吗?(重新加载)
嗯,这里似乎可以正常工作。我无法在两个实例上使其正常工作。奇怪……我已经仔细检查了所有设置多次。
我的设置几乎完全相同,但列表中有一个信任级别组。但是,我也尝试过没有管理员/TL组,只有 ai-bot 组,结果相同,也尝试过安全模式,关闭了主题/非官方,所有情况下都没有按钮 ![]()
我确实是最新的。
这会不会是与其他插件的交互?你能移除所有非官方插件后重新构建吗?
好的,我正在重建。稍后告诉你,这个服务器速度很慢 ![]()
重建后没有变化。我的当前插件列表:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-whos-online.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/discourse/discourse-fingerprint.git
- git clone https://github.com/discourse/discourse-adplugin.git
- git clone https://github.com/discourse/discourse-chat-integration.git
- git clone https://github.com/discourse/discourse-docs.git
- git clone https://github.com/discourse/discourse-chat.git
- git clone https://github.com/discourse/discourse-gamification
- git clone https://github.com/discourse/discourse-openid-connect
- git clone https://github.com/discourse/discourse-rss-polling
- git clone https://github.com/discourse/discourse-ai
供您参考,用户可以给 AI 发消息。只是按钮对用户不显示。
有什么进展吗?我不得不说,您能否也尝试对官方插件进行二分查找,看看是否有任何冲突,也许可以先只用 discourse-ai 进行重建?不会有坏事的,您之后可以随时用其他插件重建。
我将尝试一下,稍后告知您。我注意到,不仅是标题按钮,AI作曲助手也存在同样的问题。
更新
我为您找到了这个错误,它与群组隐私有关。
此设置以下的任何值(仅所有者/所有者+管理员)都会导致隐藏按钮。不确定这是否在文档中有说明,可能我错过了。
将机器人添加到群组没有区别。更改上面显示的可见性设置才起作用。
不错,这个问题很容易解决,下周处理。
对我来说不着急。我想补充一点,同样的问题也发生在信任级别组上,因为它们默认是隐藏的。更改可见性确实会使 AI PM 按钮出现。
已按以下方式修复:
将于今天晚些时候合并。


