画像アップロード - 画像認識 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

つまり、アップロード前に、画像を API に POST してチェックし、承認(グリーンフラグ)を得るには、ある程度時間がかかるはずです。

「いいね!」 1

さて、インライン画像のアップロード処理は、私の意見ではすでに非同期です。また、Google API は非常に高速です。

一方で、ユーザーが Discourse API 経由で新しい投稿を投稿した後、外部の webhook を使用して画像を確認し、ユーザーの投稿を変更すること(例えば、画像を変更して「管理者により画像が削除されました」というテキストに置き換えること)も喜んで行います。この部分は API で可能に見えるのですが、そのような場合、API を通じて「悪い」画像を実際に削除する方法についての参照が見つかりません。なぜなら、影のどこかにその画像を保持したくないからです。

「いいね!」 2

この作業を有償の請負として引き受けることに喜んで対応します。API側のこと、具体的には悪質コンテンツの検出などに使われているAPIなどについて、ご助力いただけますでしょうか。

Rubyについては、こちらに詳細なドキュメントがあります:

PHPでは、これを2時間弱でDrupalに実装しました。

「いいね!」 3

これについては2時間で問題ないはずです。これについて私にプライベートメッセージを送るべきでしょうか?

「いいね!」 3

はい、お願いします。とても助かります。

「いいね!」 1

@Terrapop - 考慮すべき点として、認識の精度があります。「POSSIBLE」「LIKELY」「VERY_LIKELY」の基準が厳しすぎないことを確認するため、ブロックされたコンテンツの一部を確認できるようにしておくのも良いでしょう。誤検知(偽陽性)や見落とし(偽陰性)は非常に一般的です。

より良い実装方法としては、一定の「possibly adult」レベルを超える画像を含む投稿をすべてレビューキューに送信する方法があります。これにより、投稿は公開されませんが、認識が正確でなかった場合でも承認できます。もしそこで却下された場合、画像は「clean_orphan_uploads_grace_period_hours」の設定に基づいて一定期間後に削除されると考えられます。

これにより、「POSSIBLY」検出レベルをより安心して使用できるようになります。

「いいね!」 2

当社の現在のウェブサイトで API をテストし、どのレベルが自社に適しているかを把握しています。

@fzngagan 様がオープンソースで当社のプラグインを開発中ですので、完成後には、直接却下するのではなく、モデレーションキューへ転送するオプションを追加できるよう、修正してプルリクエストを送信していただけます。

「いいね!」 3

プラグインはこちらです。

投稿の一部として画像が含まれる場合、その可能性をレビューキューと連動させるというアイデアは素晴らしいと思います。その点について、スポンサーシップやプルリクエストを歓迎します。:slight_smile:

「いいね!」 5

もしそれが追加オプションとして任意であれば、もちろん問題ありません。

以前のコミュニティでは長期間 API を利用しており、受け入れ可能なレベルを理解しています。また、API の拒否判断はほとんどの場合適切で、ユーザーはより軽度の画像をアップロードし直すことがほとんどでした。

また、投稿だけでなく、アバターやプロフィール背景の画像アップロードもチェック対象にしたいと考えています。これらについてもキューオプションが可能かどうかはわかりません。

「いいね!」 2