見出し画像

OpenAI API の モデレーションエンドポイント による問題発言の検出

「OpenAI API」の「モデレーションエンドポイント」による問題発言の検出を試したのでまとめました。

前回

1. モデレーションエンドポイント

「モデレーションエンドポイント」は、ユーザー入力やLLMの出力に、暴力や自傷やヘイトやセクシャルなどの問題発言が含まれていないかどうか (OpenAIのコンテンツポリシーに準拠するかどうか) を判定するAPIです。OpenAI APIの入出力に対して、無料で利用できます。

2. モデレーションエンドポイントのカテゴリ

モデレーションエンドポイントのカテゴリは、次の7つに分類されます。

・hate : 人種、性別、民族性、宗教、国籍、性的指向、障害の状態、カーストに基づく憎悪を表現、扇動、または助長するコンテンツ。
・hate/threatening : 対象グループに対する暴力や深刻な危害を含むヘイトコンテンツ。
・self-harm : 自殺、切断、摂食障害などの自傷行為を助長、助長、または描写するコンテンツ。
・sexual : 性行為の説明など、性的興奮を喚起することを意図したコンテンツ、または性的なサービスを促進するコンテンツ (性教育とウェルネスを除く)。
・sexual/minors : 18歳未満の個人を含む性的コンテンツ。
・violence : 暴力を助長または美化するコンテンツ、または他人の苦しみや屈辱を称賛するコンテンツ。
・violence/graphic : 死、暴力、または深刻な身体的損傷を極度に生々しく描写する暴力的なコンテンツ。

3. Colabでの実行

Google Colabでの実行手順は、次のとりです。

(1) パッケージのインストール。

# パッケージのインストール
!pip install openai

(2) 環境変数の準備。
以下のコードの <OpenAI_APIのトークン> にはOpenAI APIのトークンを指定します。(有料)

# 環境変数の準備
import openai
openai.api_key = "<OpenAI_APIのトークン>"

(3)  エンドポイントモデレーションの実行。

# エンドポイントモデレーションの実行
response = openai.Moderation.create(
    input="お前を殺す!"
)
print(response["results"][0])
{
  "categories": {
    "hate": false,
    "hate/threatening": false,
    "self-harm": false,
    "sexual": false,
    "sexual/minors": false,
    "violence": true,
    "violence/graphic": false
  },
  "category_scores": {
    "hate": 0.01207836251705885,
    "hate/threatening": 0.0005551443900913,
    "self-harm": 2.348665293538943e-05,
    "sexual": 1.1626519153651316e-05,
    "sexual/minors": 3.4710343488342232e-09,
    "violence": 0.9928252696990967,
    "violence/graphic": 1.501080646448827e-07
  },
  "flagged": true
}

結果の項目は、次のとおりです。

・category : カテゴリ別にOpenAIのコンテンツ ポリシー違反の場合はtrue
・category_scores : カテゴリ別のスコア (0〜1)
・flagged : OpenAIのコンテンツ ポリシー違反の場合はtrue



この記事が気に入ったらサポートをしてみませんか?