AIを使ったチャットボットやツールを作れるようになった。でも「有害な入力が来たらどうする?」を考えていない人は意外と多い。自分もAIを組み込んだ仕組みを運用していて、最初はこの問題を甘く見ていた。
結論から言うと、OpenAIが提供しているModeration API(omni-moderation-latest)を噛ませるだけで、テキストも画像も無料で安全チェックできる。無料。ここ大事。
「動くもの」と「納品できるもの」の間にある壁
AIを使って何かを自動化する仕組みを作ること自体は、もう珍しくない。ChatGPT APIを叩いてチャットボットを動かす、画像を分析させる、SNS投稿を自動生成する——技術的にはできる人が増えている。
でも、それを「人に使わせる」「クライアントに納品する」となると話が変わる。ユーザーが暴力的な内容を入力したら? 不適切な画像をアップロードしたら? そのまま処理して返答したら、作った側の責任になる。
受託案件でもSaaS的なプロダクトでも、この「安全層」がないと怖くて公開できない。かといって自前でフィルタリングのロジックを組むのは工数がかかりすぎる。
ここで使えるのが、OpenAIのModeration APIだ。
OpenAI Moderation API(omni-moderation-latest)でできること
OpenAIはモデレーション専用のモデルを2つ提供している。レガシー版の「text-moderation-latest」と、最新の「omni-moderation-latest」だ。
最新版はGPT-4oベースで、テキストだけでなく画像のモデレーションにも対応している。つまり、チャットの入力テキストも、アップロードされた画像も、同じAPIで安全チェックできる。
判定カテゴリは以下の6種類が用意されている。なお、画像対応は violence / self-harm / sexual の3カテゴリのみで、残り (harassment / hate / illicit content) はテキスト入力のみ対応している。
- hate(ヘイト)
- harassment(ハラスメント)
- violence(暴力)
- self-harm(自傷)
- sexual content(性的コンテンツ)
- illicit content(違法コンテンツ)
各カテゴリについて「該当するかどうか」のフラグと、0〜1のスコアが返ってくる。スコアを使えば、閾値を自分で調整して「厳しめ」「緩め」のフィルタリングを設計できる。
そしてこのAPI、無料で使える。OpenAIのAPIキーさえあれば、モデレーションのエンドポイントは課金なしで叩ける。GPT-4oやDALL-Eのように従量課金されるわけではない。
実装はびっくりするほど簡単
使い方の流れはシンプルだ。OpenAIのPythonライブラリをインストールして、クライアントを初期化して、client.moderations.create() を呼ぶだけ。
テキストの場合は input にそのまま文字列を渡す。画像の場合は input にリスト形式で type: image_url と画像URLを渡す。
レスポンスには flagged(有害判定されたかどうかのブール値)と、各カテゴリごとの判定結果・スコアが入っている。
たとえば「Pythonでデータサイエンスを学びたい」のような普通の入力なら、全カテゴリFalseで返ってくる。一方で暴力的な内容を含む入力を渡すと、violenceカテゴリがTrueになり、スコアも高い値を示す。
画像も同様で、暴力的な画像URLを渡せばviolenceでフラグが立つ。
実装に必要なコードは10行程度。既存のシステムに追加するのに1時間もかからない。
「無料の安全層」が差別化になる理由
自分がAIを組み込んだ仕組みを運用していて実感するのは、「安全対策」は地味だけど信頼に直結するということだ。
副業やフリーランスでAIツールを作って提供する場合、クライアントが気にするのは「動くかどうか」だけじゃない。「変なことが起きないか」を気にする。特に企業向けだと、不適切なコンテンツが素通りした時点でアウトだ。
Moderation APIを一枚噛ませるだけで、提案書に「有害コンテンツフィルタリング実装済み」と書ける。これは地味に効く。同じ機能を持つツールが2つあったら、安全対策が入っている方が選ばれる。
しかも無料だから、コストとして見積もりに乗せる必要もない。純粋に「やるかやらないか」の差でしかない。
やらない理由がない。まさに「知ってるかどうか」だけで差がつく類のもの。
どこに組み込むと効果的か
Moderation APIの使いどころを整理する。
チャットボットの入力フィルタ: ユーザーの入力をLLMに渡す前にModeration APIでチェックする。有害判定されたら「その内容にはお答えできません」と返す。LLM側のプロンプトで制御するより確実だし、トークンも消費しない。
画像アップロード機能の事前検閲: ユーザーがアップロードした画像を処理する前にチェックを入れる。不適切な画像が分析パイプラインに流れるのを防げる。
SNS関連ツールの投稿前チェック: 自動生成した投稿文をModeration APIに通してから実際に投稿する。万が一LLMが不適切な内容を生成しても、最後の砦として機能する。
社内ツールのログ監視: 社内チャットや問い合わせフォームの内容を非同期でチェックして、ハラスメント等を検知する用途にも使える。
どのケースでも、既存の処理フローに1ステップ追加するだけで済む。大掛かりなアーキテクチャ変更は不要だ。
スコアを使った閾値設計のコツ
Moderation APIはカテゴリごとの「フラグ(True/False)」だけでなく、0〜1の「スコア」も返してくる。このスコアを使うと、フィルタリングの厳しさを自分で調整できる。
たとえばデフォルトのフラグ判定だと、グレーゾーンの入力はFalseで通ってしまうことがある。そういう場合は、スコアが0.3以上ならブロックする、のように閾値を下げれば厳しくできる。
逆に、創作系のツール(小説生成など)では暴力描写がある程度許容される場合もある。そういうケースではviolenceの閾値を0.8に上げて、よほど露骨なものだけブロックする設計にもできる。
この「閾値をクライアントの要件に合わせて調整できます」と言えるだけで、提案の説得力が一段上がる。単に「フィルタリング入れました」じゃなくて「御社の要件に合わせてチューニングできます」になる。
代替手段との比較
Moderation API以外にも選択肢はある。Azure AI Content Safetyはエンタープライズ向けの統合が充実していて、カスタマイズ性も高い。ただし有料だし、Azureの契約が必要になる。
自前でフィルタリングロジックを組む方法もあるが、正規表現ベースだと抜け穴だらけになるし、機械学習モデルを自分で訓練するのは現実的じゃない。
OpenAIのModeration APIは「無料」「実装が簡単」「テキストも画像も対応」の3拍子が揃っている。個人開発や小規模な受託案件なら、まずこれで十分だ。
大規模なエンタープライズ案件で細かいカスタマイズが必要になったら、その時にAzure AI Content Safetyへ移行すればいい。最初からオーバースペックなものを入れる必要はない。
まとめ
- OpenAIのModeration API(omni-moderation-latest)は、テキストと画像の有害コンテンツを無料で判定できる
- 実装は10行程度。既存のAIツールに1ステップ追加するだけで安全層が入る
- スコアベースの閾値調整で、用途に合わせたフィルタリング強度を設計できる
AIツールを作れる人は増えている。でも「安全に使えるもの」を作れる人はまだ少ない。無料で使えるものを知っているかどうかで、納品物の信頼度が変わる。地味だけど、こういう一手が単価に効いてくる。
参考
【PR】フリーランスエンジニアにおすすめのツール
シンVPS — AIツールのデプロイ先に。高速VPSで開発環境もAPI基盤も安定稼働。
Python Winner — Python特化の学習サービス。API連携やデータ処理の基礎固めに。
ココナラ — AIツール開発スキルを出品して副業収益化。実績作りの第一歩に。
AI運用の知見はXでも発信しています → セレネのX (@selene_nyx_ai)
【PR】おすすめの書籍
記事の内容に関連する書籍を紹介させてほしい。
今さら聞けない暗号技術&認証・認可 Web系エンジニア必須のセキュリティ基礎力をUP (Software Design別冊)
AIツールに安全対策を組み込むなら、その土台となる暗号技術や認証・認可の仕組みを押さえておくと設計の見通しが変わります。Web系エンジニア向けにセキュリティの基礎を整理した一冊です。
LLMのファインチューニングとRAG: チャットボット開発による実践
記事で扱ったようなチャットボットをさらに自社データに特化させたい場合、ファインチューニングやRAGの実装手順をハンズオン形式で学べます。LLMを活用した開発の実践ガイドです。


コメント