コンテンツモデレーション
Dify にはシステムに内蔵された内容審査タイプの他に、ユーザーが独自にカスタマイズした内容審査ルールを拡張する機能もあります。この方法は、プライベートデプロイ環境での開発者向けにカスタム開発が可能です。例えば、企業内部のカスタマーサポートにおいて、ユーザーが問い合わせを行う際やカスタマーサポートが返信する際に、暴力、性、違法行為などの関連用語を入力してはならないといった規定に加え、企業が独自に定めた禁則語や内部の審査ロジックに違反する内容も含めないようにすることができます。このような場合、開発者はプライベートデプロイ環境の Dify コード層で独自の内容審査ルールを拡張できます。
クイックスタート
ここでは、Cloud Service 内容審査拡張を例にとって、以下の手順を説明します:
ディレクトリの初期化
フロントエンドコンポーネント定義ファイルの追加
実装クラスの追加
フロントエンド画面のプレビュー
拡張機能のデバッグ
1. ディレクトリの初期化
新しいカスタムタイプ Cloud Service を追加するには、api/core/moderation ディレクトリ内に関連するディレクトリとファイルを新規作成します。
.
└── api
└── core
└── moderation
└── cloud_service
├── __init__.py
├── cloud_service.py
└── schema.json2. フロントエンドコンポーネント規格の追加
schema.jsonここでは、フロントエンドコンポーネントの規格を定義しています。詳細は コード拡張 を参照してください。
3. 実装クラスの追加
cloud_service.py のコードテンプレートです。ここで具体的なビジネスロジックを実装できます。
注意点:クラス変数 name はカスタムタイプの名称であり、ディレクトリ名およびファイル名と一致し、かつ一意である必要があります。
4. 拡張機能のデバッグ
ここまでで、Dify のアプリケーションオーケストレーション画面でカスタム クラウドサービス 内容審査拡張タイプを選択してデバッグすることができます。
実装クラステンプレート
実装クラスの詳細説明
def validate_config
schema.json フォーム検証方法、ユーザーが「公開」をクリックして設定を保存するときに呼び出される
configフォームパラメータ{{variable}}フォームカスタム変数inputs_config入力検証プリセット応答enabled有効化preset_response入力プリセット応答
outputs_config出力検証プリセット応答enabled有効化preset_response出力プリセット応答
def moderation_for_inputs
入力検証関数
inputs:エンドユーザーによって渡された変数値query:エンドユーザーが現在入力している内容、対話型アプリケーションの固定パラメータ。ModerationInputsResultflagged検証ルールに違反しているかどうかaction実行動作direct_outputプリセット応答を直接出力overridden渡された変数値を上書き
preset_responseプリセット応答(action=direct_outputの場合のみ返される)inputsエンドユーザーによって渡された変数値、キーは変数名、値は変数値(action=overriddenの場合のみ返される)query上書きされたエンドユーザーの現在の入力内容、対話型アプリケーションの固定パラメータ(action=overriddenの場合のみ返される)
def moderation_for_outputs
出力検証関数
text:{モデル出力}内容moderation_for_outputs:出力検証関数text:LLM回答内容。LLMの出力が{ストリーミング出力}の場合、これは100文字ごとの分割内容である。ModerationOutputsResultflagged検証ルールに違反しているかどうかaction実行動作direct_outputプリセット応答を直接出力overridden渡された変数値を上書き
preset_responseプリセット応答(action=direct_outputの場合のみ返される)text上書きされたLLM回答内容(action=overriddenの場合のみ返される)
Last updated