Azure AI Content Safety の実装
この演習では、Content Safety リソースをプロビジョニングし、Azure AI Studio でリソースをテストし、コードでリソースをテストします。
Content Safety リソースをプロビジョニングする
まだ持っていない場合は、Azure サブスクリプションに Content Safety リソースをプロビジョニングする必要があります。
https://portal.azure.com
で Azure ポータルを開き、Azure サブスクリプションに関連付けられている Microsoft アカウントでサインインします。- リソースの作成 を選択します。
-
検索フィールドに Content Safety と入力し、結果から Azure AI Content Safety の下にある 作成 を選択します。
- 次の設定を使用してリソースをプロビジョニングします:
- サブスクリプション: あなたの Azure サブスクリプション。
- リソースグループ: 既存のリソースグループを選択するか、新しいリソースグループを作成。
- リージョン: East US を選択。
- 名前: 一意の名前を入力。
- 価格レベル: F0 (無料) または F0 が利用できない場合は S (標準) を選択。
- 確認および作成 を選択し、次に 作成 を選択してリソースをプロビジョニングします。
- デプロイが完了するのを待ち、リソースに移動します。
-
左側のナビゲーションバーで アクセス制御 を選択し、次に + 追加 および ロールの割り当ての追加 を選択します。
-
下にスクロールして Cognitive Services User ロールを選択し、次へ を選択します。
-
このロールに自分のアカウントを追加し、レビューと割り当て を選択します。
-
左側のナビゲーションバーで リソース管理 を選択し、キーとエンドポイント を選択します。後でキーをコピーできるようにこのページを開いたままにしておきます。
Azure AI Content Safety プロンプトシールドの使用
この演習では、Azure AI Studio を使用して、Content Safety プロンプトシールドを2つのサンプル入力でテストします。1つはユーザープロンプトをシミュレートし、もう1つは潜在的に安全でないテキストが埋め込まれたドキュメントをシミュレートします。
- 別のブラウザタブで Azure AI Studio の Content Safety ページを開き、サインインします。
-
適度なテキストコンテンツ の中の 試してみる を選択します。
- 適度なテキストコンテンツ ページで、Azure AI サービス の下に先ほど作成した Content Safety リソースを選択します。
-
-
1つの文に複数のリスクカテゴリがあります を選択し、ドキュメントテキストの潜在的な問題を確認します。
-
テストを実行 を選択し、結果を確認します。
- 必要に応じてしきい値レベルを変更し、再度 テストを実行 を選択します。
-
Content Safety のページに戻り 保護されたマテリアルの検出-テキスト用 を選択します。
-
保護された歌詞 を選択し、これが公開された歌の歌詞であることを確認します。
- テストを実行 を選択し、結果を確認します。
- Content Safetyのページに戻り 適度な画像コンテンツ を選択します。
- 自傷行為のコンテンツ を選択します。
- AI Studio ではすべての画像がデフォルトでぼかされていることに注意してください。また、サンプルの性的コンテンツは非常に軽度であることも認識しておいてください。
- テストを実行 を選択し、結果を確認します。
- Content Safetyのページに戻り プロンプトシールド を選択します。
- プロンプトシールド ページで、Azure AI サービス の下に先ほど作成した Content Safety リソースを選択します。
- プロンプト & ドキュメント攻撃コンテンツ を選択し、ユーザープロンプトとドキュメントテキストの潜在的な問題を確認します。
- テストを実行 を選択します。
-
結果を表示 で、ユーザープロンプトとドキュメントの両方で Jailbreak 攻撃が検出されたことを確認します。
[!TIP] AI Studio にはすべてのサンプルのコードが用意されています。
- 次のステップの下にあるコードの表示メニューを選択し、コードの表示ボタンを選択します。サンプルコードウィンドウが表示されます。
- 下向き矢印を使ってPythonまたはC#を選び、コピーを選択してサンプルコードをクリップボードにコピーします。
-
サンプルコード画面を閉じます。
アプリケーションの設定
これから、C# または Python でアプリケーションを作成します。
C#
事前準備
- Visual Studio Code をインストールします。対応しているプラットフォームについてはこちらを確認してください。
- この演習では、ターゲットフレームワークとして .NET 8 を使用します。
- Visual Studio Code に C# 拡張機能 をインストールします。
-
必要に応じ、Visual Studio Code を日本語化してください。
Visual Studio Codeを日本語化する方法
- Visual Studio Code を起動します。
- 左下の歯車アイコン(設定)をクリックします。
- 「Command Palette…」を選択します。
- 「Configure Display Language」と入力し、Enter キーを押します。
- 言語リストが表示されるので、「Japanese」を選択します。
- 再起動を促すメッセージが表示されるので、「Restart」をクリックします。
- Visual Studio Code が再起動し、日本語化されます。
セットアップ
Visual Studio Code を演習のために準備するには、次の手順を実行します。
-
Visual Studio Code を起動し、エクスプローラービューで .NET プロジェクトを作成 をクリックし、コンソールアプリ を選択します。
-
コンピューター上のフォルダーを選択し、プロジェクトに名前を付けます。プロジェクトを作成します を選択します。もし警告メッセージが表示されたら内容を確認します。
-
エクスプローラー ペインで、ソリューション エクスプローラーを展開し、Program.cs を選択します。
- 実行 -> デバッグなしで実行 を選択してプロジェクトをビルドおよび実行します。
-
ソリューション エクスプローラーで、C# プロジェクトを右クリックし、NuGetパッケージを追加 を選択します。
ここで .Net 8.0 SDKのインストールを要求された場合は、OSに適したSDKのパッケージを選択してインストールしてください。
-
Azure.AI.TextAnalytics を検索し、最新バージョンを選択します。
-
2つ目の NuGet パッケージ Microsoft.Extensions.Configuration.Json を検索し、バージョン8.0.1 を選択します。プロジェクトファイルには、2つの NuGet パッケージがリストされているはずです。
コードを追加する
- Program.cs ファイルの中身を全て削除し、先ほどコピーしたC#のサンプルコードをコピーします。
- Replace with your own subscription _key and endpoint のコメント行を見つけます。
- Azure ポータルで、キーとエンドポイントのページからキーの1つ(1または2)をコピーし、この値で **
** を置き換えます。 - Azure ポータルで、エンドポイントをコピーし、この値で **
** を置き換えます。 - Azure AI Studio で、User prompt の値をコピーし、この値で **
** を置き換えます。 - **
** までスクロールし、この行のコードを削除します。 - Azure AI Studio で、Document の値をコピーします。
- **
** までスクロールし、ドキュメントの値を貼り付けます。 -
実行 -> デバッグなしで実行 を選択し、攻撃が検出されたことを確認します。
実行結果
Python
事前準備
- Visual Studio Code をインストールします。対応しているプラットフォームについてはこちらを確認してください。
- Visual Studio Code に Python 拡張機能 をインストールします。
- requests モジュール をインストールします。
- 必要に応じ、Visual Studio Code を日本語化してください。
セットアップ
- .py 拡張子の新しい Python ファイルを作成し、適切な名前を付けます。
- 先ほどコピーしたPythonのサンプルコードを貼り付けます。
- Replace with your own subscription _key and endpoint というタイトルのセクションまでスクロールします。
- Azure ポータルで、キーとエンドポイントのページからキーの1つ(1または2)をコピーし、この値で **
** を置き換えます。 - Azure ポータルで、エンドポイントをコピーし、この値で **
** を置き換えます。 - Azure AI Studio で、User prompt の値をコピーし、この値で **
** を置き換えます。 - **
** までスクロールし、この行のコードを削除します。 - Azure AI Studio で、Document の値をコピーします。
- **
** までスクロールし、ドキュメントの値を貼り付けます。 -
ファイルの統合ターミナルからプログラムを実行します。例:
python .¥prompt-shield.py
- 攻撃が検出されたことを確認します。
実行結果
- 必要に応じて、異なるテストコンテンツやドキュメントの値で実験してみてください。