我想在我的网站上禁用所有 AI 集成,我很高兴这只需一个设置。针对原帖(OP)所寻求的解决方案,或许可以有一个类似 discourse_ai_enabled 但基于每个用户的等效设置。这样,AI 就不会对整个网站简单地处于“开启”或“关闭”状态。即使某些 AI 功能在站点级别已启用,也可以按用户进行抑制。discourse_ai_enabled 的逻辑将是:站点级别为 true,且每个用户级别也为 true。
虽然他们通常确实会考虑添加新的自定义设置以避免不必要的复杂性,但 AI 却是拥有最多可配置设置的功能。在 AI 成为现实功能的短短时间内,它似乎已成为 Discourse 中可定制性最强的功能。[1]
以下是快速且粗略的分析。我来到这里的时间相对较短,因此我展示我的推导过程,以防我犯了错误。
su discourse -c 'bundle exec rails runner "SiteSetting.defaults.all.keys.sort.each { |k| puts k }"' > keys.txt
wc -l keys.txt
1663 keys.txt
cut -d _ -f 1 keys.txt | sort | uniq -c | sort -rn > counts.txt
如果这是正确的计数方法,那么共有 1663 个可能的站点设置。其中,104 个以 ai_ 开头,另有 3 个 AI 设置不以该前缀开头(composer_ai_helper_allowed_groups、discourse_ai_enabled 和 post_ai_helper_allowed_groups)。因此,据我估算,AI 是数量最多的自定义设置组,远超其他组(107/1663,占所有站点设置的 6.4%)。以下是前 10 名:
- 107 ai
- 84 discourse
- 83 chat
- 71 max
- 65 enable
- 48 default
- 30 dfp
- 28 oauth2
- 28 amazon
- 28 allow
一方面,按用户抑制 AI 功能只是 1663 个设置中的又一个。另一方面,当大量代码路径在站点级别进行检查时,按用户进行检查可能会很困难。这是一个我不具备资格进行推测的权衡。
它也是一个定义相当清晰且自包含的功能,且相对较新,因此其命名与
ai_保持一致,使其设置比其他组件更容易计数。这就是为什么我说这是“快速且粗略”的分析。 ↩︎