Serverless Operations, inc

>_cd /blog/id_fr7m_9so2

title

Dify のコードブロックでPythonスクリプトによるモデレーションを実装する

前回の記事ではキーワードマッチで入力されたプロンプトを確認し、外部LLMに訪ねてはいけないキーワードが含まれていた場合、問い合わせを停止させる方法を試してみました。

しかしキーワードマッチでは中々全てのルールを指定することは難しく、正規表現マッチやその他複数条件の指定など行えた方がより安全なモデレーションを実装できます。

Difyにはコードブロックというものが準備されておりそこでPythonを実行させることができます。

さっそくやってみる

まずは、スタジオ最初から作成をクリックします。

チャットフローを選択します。

前回の記事でテストを行ったチャットがワークフローとして生成されています。

ブロックを追加をクリックしてコードブロックをLLMブロックの前に挟みます。

コード実行ブロックをクリックし以下の様に設定を行います。

sys.query はユーザーが入力したプロンプトです。これを user_input 変数にマッピングします。

import re
pattern = re.compile(r"\d{16}")
def main(user_input: str) -> dict:
    if pattern.search(user_input):
        return {"result": ":x:16桁の〜"}
    else:
        return {"result": f"{user_input}"}

例えば入力されたプロンプトに16桁の数字が含まれていた場合プロンプトをエラーメッセージに書き換えています。

次にLLMブロックで入力を sys.query から result に書き換えます。

ユーザーが入力した 1234567890123456 という数字が :x:16桁の〜 に置き換わっていることがわかります。

Share

Facebook->X->
Back
to list
<-