コンテンツモデレーション

このモジュールは、アプリケーションにおける端末ユーザーの入力内容とLLM(大規模言語モデル)の出力内容を審査するために使用され、2つの拡張点タイプに分かれています。

拡張点

  • app.moderation.input 端末ユーザー入力内容の審査拡張点

    • 端末ユーザーが送信した変数の内容や対話型アプリケーションにおける対話の入力内容を審査するために使用されます。

  • app.moderation.output LLM出力内容の審査拡張点

    • LLMの出力内容を審査するために使用されます。

    • LLMの出力がストリーミング形式の場合、出力内容は100文字ごとに分割され、APIにリクエストされます。これにより、出力内容が長い場合でも審査が遅れないようにします。

app.moderation.input 拡張点

ChatflowやAgent、チャットアシスタントなどのアプリケーションでコンテンツ審査>入力内容の審査を有効にすると、Difyは対応するAPI拡張に以下のHTTP POSTリクエストを送信します:

リクエストボディ

{
    "point": "app.moderation.input", // 拡張点タイプ。ここでは固定で app.moderation.input
    "params": {
        "app_id": string,  // アプリケーションID
        "inputs": {  // 端末ユーザーが送信した変数の値。key は変数名、value は変数の値
            "var_1": "value_1",
            "var_2": "value_2",
            ...
        },
        "query": string | null  // 端末ユーザーの現在の対話入力内容。対話型アプリケーションの固定パラメータ。
    }
}

APIレスポンス規格

    • action=direct_output

    • action=overridden

app.moderation.output 拡張点

ChatflowやAgent、チャットアシスタントなどのアプリケーションでコンテンツ審査>出力内容の審査を有効にすると、Difyは対応するAPI拡張に以下のHTTP POSTリクエストを送信します:

リクエストボディ

APIレスポンス規格

    • action=direct_output

    • action=overridden

コード例

以下は、Cloudflareにデプロイできるsrc/index.tsコードの例です。(Cloudflareの完全な使用方法については、このドキュメントarrow-up-rightを参照してください)

このコードは、キーワードマッチングを実行し、Input(ユーザーの入力内容)および出力(大規模モデルからの返答内容)をフィルタリングします。ユーザーは必要に応じてマッチングロジックを変更できます。

Last updated