Upload de Imagem - Suporte à API de Reconhecimento de Imagem

À luz das leis SESTA/FOSTA, que efetivamente removem muitas proteções para administradores de sites sociais/fóruns/UGC (porto seguro da Seção 230), tornando os administradores responsáveis pelo que seus usuários fazem.

Pode ser sábio apoiar o uso de uma API de reconhecimento de imagem como uma solução para melhorar a proteção, a fim de automatizar o bloqueio de uploads de conteúdo explícito (como conteúdo inseguro, nudez, gore etc.).

Além disso, melhorar a proteção contra explorações, como o upload de imagens inadequadas em rascunhos e, em seguida, hotlink para essas imagens em outros lugares, usando-as como hospedagem de imagens anônima e gratuita. Não tenho certeza de quão explorável isso é no Discourse, mas parece que, com as configurações padrão, isso pode ser explorado por 180 dias após a criação do rascunho, sem que o administrador saiba o que foi enviado (excluir rascunhos mais antigos que n dias).

Algumas APIs:

4 curtidas

Isso teria que começar com um plugin, é improvável que se torne um recurso central do Discourse.

8 curtidas

Seria ótimo verificar todas as imagens enviadas para o Discourse por meio da API Google Cloud Vision para garantir a segurança em relação ao Adsense. Fizemos isso em nosso site anterior e nunca recebemos nenhuma imagem de nudez ou gore.

Um Gem Ruby é fornecido pelo Google:

Um plugin potencial deveria se integrar ao processo principal de upload de imagens do Discourse para todas as imagens (publicações, avatares, fundos de perfil etc.) e rejeitar imagens que contenham conteúdo não permitido:

  puts "Adult:    #{safe_search.adult}"  puts "Spoof:    #{safe_search.spoof}"  puts "Medical:  #{safe_search.medical}"  puts "Violence: #{safe_search.violence}"  puts "Racy:     #{safe_search.racy}"
['UNKNOWN', 'VERY_UNLIKELY', 'UNLIKELY',        'POSSIBLE', 'LIKELY', 'VERY_LIKELY']

Onde um plugin desse tipo precisaria se integrar na base de código do Discourse?

Alguém está interessado em desenvolvê-lo via Marketplace?

2 curtidas

Isso é absolutamente possível, mas, na minha opinião, tiraria a fluidez da experiência. Se houver alguma maneira de integrar o modelo ao plugin, seria super legal.

Vocês usaram a própria API Vision?

Aqui está um plugin criado por @angus que pode servir como ponto de partida. GitHub - angusmcleod/discourse-machine-learning · GitHub

2 curtidas

O que exatamente você quer dizer com “fluidez”?

1 curtida

Quero dizer, antes de fazer o upload, verificar a imagem enviando-a via POST para a API e receber um sinal verde levaria algum tempo, certo?

1 curtida

Bem, o processo de upload de imagens embutidas já é assíncrono, na minha opinião. E a API do Google é muito rápida.

Por outro lado, também ficaria feliz em verificar as imagens depois que um usuário publicar uma nova postagem por meio de um webhook externo (API do Discourse) e alterar a postagem do usuário (por exemplo, remover a imagem e substituí-la pelo texto “IMAGEM REMOVIDA PELO ADMINISTRADOR”). Essa parte parece ser possível com a API, mas não consigo encontrar nenhuma referência sobre como realmente excluir a imagem “problemática” via API nesse caso, pois nem mesmo quero mantê-la em algum lugar nas sombras.

2 curtidas

Fico feliz em trabalhar nisso como um serviço pago. Você pode me ajudar com o lado da API, ou seja, qual API é usada para detectar conteúdo ofensivo, etc.?

Tudo está muito bem documentado aqui para Ruby:

Em PHP, implementamos isso no Drupal em pouco menos de 2 horas.

3 curtidas

2 horas devem ser aceitáveis para isso. Devo te enviar uma mensagem privada sobre isso?

3 curtidas

Sim, por favor. Isso seria ótimo.

1 curtida

@Terrapop - Algo que você pode querer levar em consideração é a precisão do reconhecimento. Pode ser útil conseguir visualizar parte do conteúdo que foi bloqueado, para garantir que a configuração não esteja muito rígida em relação a ‘POSSÍVEL’, ‘PROVÁVEL’ e ‘MUITO PROVÁVEL’. Falsos positivos e negativos são bastante comuns.

Acho que uma implementação melhor seria enviar para a fila de revisão qualquer post que inclua imagens acima de certo nível de ‘possivelmente adulto’. Assim, o post nunca fica público, mas você ainda pode aprová-lo caso o reconhecimento não tenha sido preciso. Se for rejeitado a partir dali, as imagens serão excluídas, acredito que após um período definido pelo ‘clean_orphan_uploads_grace_period_hours’.

Isso permitiria usar o nível de detecção ‘POSSIVELMENTE’ com mais confiança.

2 curtidas

Testamos a API em nosso site atual e sabemos quais níveis funcionam muito bem para nós.

@fzngagan está desenvolvendo o plugin para nós como código aberto, portanto, uma vez concluído, você poderá alterar e solicitar uma opção para não rejeitar diretamente, mas sim encaminhar para a fila de moderação.

3 curtidas

Aqui está o plugin.

Adoro a ideia de vincular a probabilidade às filas de revisão quando a imagem faz parte da postagem. Estou aberto a aceitar patrocínio ou PR nesse sentido. :slight_smile:

5 curtidas

Se isso for opcional como um acréscimo adicional, claro, estou de acordo.

Usamos a API em nossa antiga comunidade por bastante tempo e conhecemos os níveis aceitáveis para nós. Na maioria das vezes, a API estava correta ao negar, e o usuário simplesmente enviava uma imagem menos grave no lugar.

Além disso, eu gostaria que não apenas as postagens, mas também os uploads de imagens de avatares e fundos de perfil fossem verificados. Não sei se uma opção de fila também seria possível para esses casos?

2 curtidas