OpenAI API moderation機能を使ってみた
- 2024年4月6日
- 読了時間: 4分
更新日:2024年5月13日
講座「実践ChatGPT活用入門- APIを使った自動化とプロンプトエンジニアリング」ではOpenAIのAPIの機能を活用していますが、その中で講座内で詳しく取り上げることができなかったものがあります。
それがmoderation機能になります。
今回はmoderation機能を実際に使ってみて、どんなことができるのか試してみようと思います。
1.moderation機能について OpenAI APIのmoderation機能は、ユーザーが生成したコンテンツに対して、不適切または有害な内容を識別し、フィルタリングするために使用されます。
この機能は、テキスト、画像、その他のメディアコンテンツに適用されることがあり、コンテンツが一般的なガイドラインや特定のコミュニティの基準に沿っているかどうかを判断するのに役立ちます。

具体的には、moderationエンドポイントを使用すると、送信されたコンテンツが有害な性質を持つ可能性があるかどうかを評価し、その種類のリスク(例えば、暴力的、性的、差別的な内容など)を特定できます。
この評価に基づいて、アプリケーションは特定のアクションを取ることができます。
例えば、コンテンツをブロックしたり、人間のモデレーターによるレビューのためにフラグを立てたりすることができます。
moderation機能は、コンテンツ生成を利用するアプリケーションやサービスにおいて、ユーザーエクスペリエンスを保護し、コミュニティを安全に保つための重要なツールです。
特に、ユーザー生成コンテンツが公開されるプラットフォームや、ユーザー間のインタラクションが活発なサービスでは、この機能を通じて、不適切なコンテンツを迅速に識別し、対処することが可能になります。
2.実際に使ってみる
Colabでプログラムを動かしてみます。
今回使用するプログラムはAssistants playgroundで作成したものになります。
Colabがどのようなものなのか、Assistants playgroundについて概要を知りたい方は下記の記事で取り上げていますので確認いただけたらです。
まずは無難な文章として考えた「暫く雨が続いていて憂鬱だ」をテスト用テキストとして入力し、内容を識別してもらいました。

識別結果として、入力したテキストがどのカテゴリーにあてはまるかをスコアを算出しチェックしています。 (スクリーンショットには載っていませんが結果には算出されたスコアの記載もあります。)
結果がfalseであればそのコンテンツには暴力的な内容が含まれていない、または暴力的な内容の閾値を満たしていないと判断されることになります。
今回は当然ながら、含まれていない文章になりますので全てfalseになっていることがわかるかと思います。
<分類について>
hate
hate/threatening
self-harm
sexual
sexual/minors
violence
violence/graphic
差別発言や暴力的な発言など、社会的に問題となるテキストの検知が目的になっているようで、カテゴリーもそういった内容になっています。
3.過激な文章を入力した場合
今度は先ほどと違って全てfalseにならない、特定の項目でtrue(カテゴリーの内容の閾値を満たしたもの)になってしまうような文章を入力し実行してみます。
「過激と思われるような単語を含んだ、乱暴な言葉遣いの文章」を入力・実行してみました。

暴力 ("violence"): 物理的または精神的な暴力を描写する内容がtrueになりました。
きちんと識別してくれているようです。
他にもいくつか検証してみました。
①「過激と思われるような単語」を伏字にしてみた
⇒識別できないようでfalseになってしまいました。
②単語で判断しているのかと思ったので、今度は乱暴な文章を丁寧にしてみた ⇒trueにはなりませんでした。
このことから単語だけで判断しているのではなく、"過激な文章"を入力した際に識別されるようです。
まとめ
何度か試しましたが、過激な表現であっても引っ掛からないケースが時々ありました。
特定のカテゴリーに該当しないという結果が返されても、そのコンテンツが全ての文脈で適切であるとは限らないようです。 ただ、量が多い場合や人の手では追いつかない場合等は一定の指標として活用できそうです。