Я хотел отключить всю интеграцию ИИ на своём сайте и очень рад, что это делается одной настройкой. Ответ на вопрос, который задаёт автор темы (OP), может быть аналогом discourse_ai_enabled, но на уровне отдельного пользователя. Таким образом, ИИ не будет просто включён или выключен для всего сайта целиком. Даже функции ИИ, активированные на уровне сайта, можно отключить для конкретного пользователя. Логика discourse_ai_enabled тогда будет такой: на уровне сайта == true, а на уровне пользователя == true.
Хотя в целом верно, что разработчики стараются избегать излишней сложности при добавлении новых настроек кастомизации, ИИ — это функция с наибольшим количеством конфигурируемых параметров. За столь короткий срок, прошедший с момента появления ИИ, он, похоже, стал самой настраиваемой функцией в 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 настройки ИИ не имеют этого префикса (composer_ai_helper_allowed_groups, discourse_ai_enabled и post_ai_helper_allowed_groups). Таким образом, по моим подсчётам, ИИ — это самая крупная группа пользовательских настроек с большим отрывом (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
С одной стороны, отключение функций ИИ для конкретного пользователя — это всего лишь ещё одна из 1663 настроек. С другой стороны, может быть сложно проверять это на уровне пользователя, когда множество путей в коде проверяют это на уровне всего сайта. Это компромисс, в котором я не компетентен высказывать предположения.
Это также довольно чётко определённая и изолированная функция, к тому же относительно новая, поэтому её названия, последовательно начинающиеся с
ai_, позволяют легче подсчитать количество настроек по сравнению с другими компонентами. Именно поэтому я называю этот анализ быстрым и грязным. ↩︎