Значок AI Bot не отображается в заголовке для не-сотрудников

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

1 лайк

Это название настройки сайта вводит в заблуждение (cc @falco/@roman), оно должно быть ai_bot_add_ai_pm_to_header

Исследование по ИИ-боту здесь:

Просмотр контекста настройки сайта

Чтение контекста для: ai_helper_add_ai_pm_to_header

ai_helper_add_ai_pm_to_header — это настройка сайта в плагине Discourse AI. При включении она отображает кнопку в заголовке форума Discourse, позволяющую пользователям начать приватное сообщение (PM) с ИИ-ботом.

Вот подробное описание того, как это работает:

  1. Настройка определена в файле settings.yml плагина Discourse AI со значением по умолчанию true. Это означает, что по умолчанию кнопка для начала PM с ИИ-ботом отображается в заголовке.

  2. Настройка используется в файле ai-bot-replies.js. Этот JavaScript-файл содержит логику взаимодействия с ИИ-ботом.

  3. Функция attachHeaderIcon проверяет, включена ли настройка ai_helper_add_ai_pm_to_header. Если она включена, функция получает список включённых ИИ-ботов из настройки ai_bot_enabled_chat_bots. Эта настройка содержит список ИИ-ботов, разрешённых для чата, разделённых символом |.

  4. Если есть включённые ИИ-боты, функция attachHeaderIcon добавляет в заголовок два действия виджета: showAiBotPanel и hideAiBotPanel. Эти действия управляют видимостью панели ИИ-бота.

  5. Действие showAiBotPanel устанавливает состояние botSelectorVisible в true, что отображает панель ИИ-бота.

  6. Действие hideAiBotPanel устанавливает состояние botSelectorVisible в false, что скрывает панель ИИ-бота.

Обратите внимание, что ID пользователя ИИ-бота жёстко заданы как -110, -111 и -112 в функции isGPTBot. Эта функция проверяет, является ли пользователь ИИ-ботом, на основе его ID.


Просмотр контекста настройки сайта

Чтение контекста для: ai_bot_allowed_groups

Настройка ai_bot_allowed_groups определяет, какие группы пользователей имеют право взаимодействовать с ИИ-ботом в приватных сообщениях. Это особенно важно для контроля того, кто может получать ответы от ИИ-бота в контексте PM.

Группы по умолчанию: @staff (id группы: 3) и @trust_level_4 (id группы: 14). Эти ID групп указаны в настройке ai_bot_allowed_groups в файле settings.yml плагина discourse-ai.

Настройка ai_bot_allowed_groups используется в инициализаторе ai-bot-replies.js. Здесь проверяется, является ли текущий пользователь членом любой из разрешённых групп. Если пользователь входит в разрешённую группу и функция ИИ-бота включена, инициализатор добавляет иконку в заголовок и инициализирует ответы ИИ-бота.

Настройка ai_bot_allowed_groups также используется в модуле entry_point.rb ИИ-бота. Этот модуль добавляет атрибут ai_enabled_chat_bots к сериализатору current_user. Этот атрибут включается, если функция ИИ-бота включена и аутентифицированный пользователь является членом любой из разрешённых групп.

При создании нового поста срабатывает событие post_created. Если пост является обычным сообщением в приватной переписке и пользователь, создавший пост, входит в одну из разрешённых групп, в очередь помещается задача ответа ИИ.

Вкратце, настройка ai_bot_allowed_groups критически важна для контроля того, какие пользователи могут взаимодействовать с ИИ-ботом в приватных сообщениях. Она используется в нескольких местах плагина discourse-ai для обеспечения этого ограничения.

2 лайка

Я хотел сказать, что, похоже, кнопка ЛС отображается только для администраторов/сотрудников, независимо от разрешённых групп. Похоже, что настройка кнопки ЛС в заголовке не учитывает разрешённые группы ИИ-ботов, а зафиксирована только для администраторов? Я не могу сделать так, чтобы она отображалась для обычного пользователя.

Это определённо не так, по крайней мере, не у нас… Я только что добавил вас в группу «bot-testers». Видите ли вы кнопку здесь? (обновите страницу)

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

Наши текущие настройки:

Но я вот-вот исправлю название этого параметра сайта, так как оно действительно запутанное.

У вас самая последняя версия?

Мои настройки почти полностью совпадают, но у меня в списке есть группа с уровнем доверия. Однако я также пробовал без групп администраторов/TL, только с группой ai-bot — результат тот же. Пробовал также в безопасном режиме с отключёнными темами и неофициальными плагинами: кнопки нет ни в одном из случаев. :thinking:

У меня действительно последняя версия.

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

1 лайк

Конечно, я сейчас восстанавливаю. Дам знать через пару минут, этот сервер довольно медленный :grinning_face:

После пересборки изменений нет. Мой текущий список плагинов:


    - 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

К сведению: пользователь может отправлять сообщения ИИ. Просто кнопка не отображается для пользователей.

Хм, есть ли успех? Не хочется так говорить, но не могли бы вы попробовать метод бинарного поиска с официальными плагинами, чтобы проверить, не конфликтует ли какой-нибудь из них? Возможно, стоит начать с пересборки только с плагином discourse-ai. Ничего плохого не случится — вы всегда сможете позже пересобрать проект с остальными плагинами.

1 лайк

Я попробую и сообщу вам. Я заметил, что проблема касается не только кнопки в заголовке, но и помощника AI Composer. ОБНОВЛЕНИЕ Я нашел для вас ошибку: она связана с настройками приватности группы.

Любое значение ниже этого (владельцы/владельцы+модераторы) приводит к скрытию кнопки. Не уверен, что это где-то задокументировано, возможно, я упустил это. Добавление бота в группу ничего не изменило. Изменение настройки видимости, показанной выше, помогло.

2 лайка

Отлично, это вполне решаемая задача, разберёмся на следующей неделе

2 лайка

Спешить некуда. Хочу добавить, что та же проблема возникает и с группами уровня доверия, поскольку они скрыты по умолчанию. Изменение видимости действительно приводит к появлению кнопки AI PM.

1 лайк

Я исправил это согласно:

https://github.com/discourse/discourse-ai/pull/180

Это будет слито позже сегодня.

6 лайков