Discourse AI não respeita o grupo "todos"

Parece que este é o mesmo problema conhecido que causa problemas com modelos.
everyone-group-unable-to-see-private-templates

Neste caso, as opções do ai-bot aparecem, mas o bot simplesmente nunca responde.

1 curtida

Obrigado por pesquisar problemas anteriores! :sunglasses: :+1:

Acho que o mesmo se aplica aqui:

Você não pode dar acesso a usuários anônimos ao chatbot, então usar trust_level_0 é uma solução eficaz para o seu caso de uso. :slight_smile:

8 curtidas

@Roman lendo o código no Discourse, acho que isso funciona agora.

É hora de fechar isso e remover o código de compatibilidade retroativa?

É um pouco complicado. Originalmente, adicionei a opção everyone porque queríamos permitir que usuários anônimos vissem gists. Cada recurso tem suas próprias regras, então não acho que definir os grupos permitidos de uma Persona como esse tornará o recurso disponível para todos.

Isto ainda é um problema. Se "Grupos permitidos do bot de IA" estiver definido como everyone, o bot não responde.

Acho que o bug está aqui

return false if (SiteSetting.ai_bot_allowed_groups_map & post.user.group_ids).blank?

Se a configuração for everyone, isso retorna falso, já que 0 não está em post.user.group_ids

O padrão correto é !user.in_any_groups?(SiteSetting.ai_bot_allowed_groups_map)

que tem um caso especial para everyone:

  def in_any_groups?(group_ids)
    group_ids.include?(Group::AUTO_GROUPS[:everyone]) ||
      (is_system_user? && (Group.auto_groups_between(:admins, :trust_level_4) & group_ids).any?) ||
      (group_ids & belonging_to_group_ids).any?
  end
2 curtidas