图片上传 - 图像识别 API 支持

鉴于 SESTA/FOSTA 法案,该法案实际上取消了许多针对社交/论坛/用户生成内容(UGC)网站管理员的保护措施(第 230 条安全港条款),使网站管理员需对其用户的行为负责。

支持使用图像识别 API 作为增强保护的一种解决方案可能是明智之举,以自动化拦截上传的显式内容(如不安全内容、裸露、血腥等)。

同时,还可防范诸如在草稿中上传不当图片,然后将其热链接到其他地方利用其作为免费匿名图床的漏洞。我不确定 Discourse 对此类漏洞的利用程度有多高,但根据默认设置,在创建草稿后的 180 天内,网站管理员可能无法知晓上传了哪些内容(可设置删除超过 n 天的旧草稿)。

一些可用的 API:

4 个赞

这必须从一个插件开始,不太可能成为 Discourse 的核心功能。

8 个赞

通过 Google Cloud Vision API 检查所有上传到 Discourse 的图片将非常有益,有助于确保符合 Adsense 的安全要求。我们之前的网站就采用了这一做法,从未出现过任何裸露或血腥图片的上传。

Google 提供了一个 Ruby Gem:

一个潜在的插件应接入 Discourse 的主图片上传流程,覆盖所有类型的图片(帖子、头像、个人资料背景等),并拒绝包含违规内容的图片:

  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']

此类插件需要在 Discourse 代码库中的哪些位置进行接入?

是否有人有兴趣通过 Marketplace 来开发它?

2 个赞

这完全可行,但在我看来,这会破坏体验的“无缝性”。如果有任何方法能将模型集成到插件中,那就太棒了。

你们当时用的是 Vision API 本身吗?

这是 @angus 开发的一个插件,可以作为起点:GitHub - angusmcleod/discourse-machine-learning · GitHub

2 个赞

您所说的“无缝”具体是指什么?

1 个赞

我的意思是,在上传之前,通过 POST 请求将图片发送到 API 并获取绿灯确认,应该会花费一些时间,对吧?

1 个赞

好吧,在我看来,内联图片的上传过程已经是异步的了。而且 Google API 的速度非常快。

另一方面,我也很乐意通过外部 Webhook(Discourse API)在用户发布新帖子后检查图片,并修改用户的帖子(例如,将图片替换为文本“图片已被管理员删除”)。这部分似乎可以通过 API 实现,但我找不到任何关于如何通过 API 实际删除“不良”图片的参考,因为在这种情况下,我甚至不想将其保留在某个隐蔽的地方。

2 个赞

我很乐意以付费任务的形式来推进这项工作。您能否协助处理 API 相关部分,例如具体使用哪个 API 来检测不当内容等?

Ruby 的所有文档都在此处详细说明:

在 PHP 中,我们仅用了不到 2 小时就将此功能集成到了 Drupal 中。

3 个赞

2 小时应该可以接受。关于这件事,我需要给你发私信吗?

3 个赞

好的,请。那太好了。

1 个赞

@Terrapop - 您可能需要考虑识别的准确性。能够查看部分被拦截的内容是有益的,以确保“POSSIBLE”、“LIKELY”和“VERY_LIKELY”的配置不会过于严格。误报和漏报相当常见。

我认为更好的实现方式是:将包含图像且“可能为成人内容”级别超过一定阈值的帖子发送至审核队列。这样帖子不会公开,但如果识别不准确,您仍可以批准它。如果在此处被拒绝,图像将被删除,据信会在根据“clean_orphan_uploads_grace_period_hours”设置的期限之后执行。

这样就能更有信心地使用“POSSIBLY”检测级别。

2 个赞

我们已在当前网站上测试了 API,并清楚哪些级别对我们非常适用。

@fzngagan 正在为我们开源开发该插件,因此完成后,您可以修改并提交拉取请求,添加一个选项:不直接拒绝,而是将其转发至审核队列。

3 个赞

这是插件。

我非常喜欢将图片出现在帖子中时的可能性与审核队列关联起来的想法。在此方面,我很乐意接受赞助或拉取请求。:slight_smile:

5 个赞

如果这作为额外可选功能,我当然没问题。

我们在之前的社区中使用了该 API 相当长一段时间,清楚我们可接受的内容级别。大多数情况下,API 正确地拒绝了违规内容,而用户通常会上传一张较不严重的图片替代。

此外,我希望不仅帖子,头像和背景图片的上传也能接受审核。不知道这些是否也可以加入队列审核选项?

2 个赞