Azure AI Content Safety の実装

この演習では、Content Safety リソースをプロビジョニングし、Azure AI Studio でリソースをテストし、コードでリソースをテストします。

Content Safety リソースをプロビジョニングする

まだ持っていない場合は、Azure サブスクリプションに Content Safety リソースをプロビジョニングする必要があります。

  1. https://portal.azure.com で Azure ポータルを開き、Azure サブスクリプションに関連付けられている Microsoft アカウントでサインインします。
  2. リソースの作成 を選択します。
  3. 検索フィールドに Content Safety と入力し、結果から Azure AI Content Safety の下にある 作成 を選択します。

    Search Azure AI Content Safery

  4. 次の設定を使用してリソースをプロビジョニングします:
    • サブスクリプション: あなたの Azure サブスクリプション
    • リソースグループ: 既存のリソースグループを選択するか、新しいリソースグループを作成
    • リージョン: East US を選択。
    • 名前: 一意の名前を入力
    • 価格レベル: F0 (無料) または F0 が利用できない場合は S (標準) を選択。

    Create Azure AI Content Safety

  5. 確認および作成 を選択し、次に 作成 を選択してリソースをプロビジョニングします。
  6. デプロイが完了するのを待ち、リソースに移動します。
  7. 左側のナビゲーションバーで アクセス制御 を選択し、次に + 追加 および ロールの割り当ての追加 を選択します。

    Assign Role

  8. 下にスクロールして Cognitive Services User ロールを選択し、次へ を選択します。

    Select Congnitive User Role

  9. このロールに自分のアカウントを追加し、レビューと割り当て を選択します。

    Add an user

  10. 左側のナビゲーションバーで リソース管理 を選択し、キーとエンドポイント を選択します。後でキーをコピーできるようにこのページを開いたままにしておきます。

    Key and Endpoint

Azure AI Content Safety プロンプトシールドの使用

この演習では、Azure AI Studio を使用して、Content Safety プロンプトシールドを2つのサンプル入力でテストします。1つはユーザープロンプトをシミュレートし、もう1つは潜在的に安全でないテキストが埋め込まれたドキュメントをシミュレートします。

  1. 別のブラウザタブで Azure AI Studio の Content Safety ページを開き、サインインします。
  2. 適度なテキストコンテンツ の中の 試してみる を選択します。

    Text Contents Moderation

  3. 適度なテキストコンテンツ ページで、Azure AI サービス の下に先ほど作成した Content Safety リソースを選択します。
  4. Select your contents safety resource

  5. 1つの文に複数のリスクカテゴリがあります を選択し、ドキュメントテキストの潜在的な問題を確認します。

    Multi Risk Category in a sentence

  6. テストを実行 を選択し、結果を確認します。

    Run Test

  7. 必要に応じてしきい値レベルを変更し、再度 テストを実行 を選択します。
  8. Content Safety のページに戻り 保護されたマテリアルの検出-テキスト用 を選択します。

    Select protected materials for text

  9. 保護された歌詞 を選択し、これが公開された歌の歌詞であることを確認します。

    Protected Lyrics

  10. テストを実行 を選択し、結果を確認します。
  11. Content Safetyのページに戻り 適度な画像コンテンツ を選択します。

Select image content moderation

  1. 自傷行為のコンテンツ を選択します。

Select self-harm content

  1. AI Studio ではすべての画像がデフォルトでぼかされていることに注意してください。また、サンプルの性的コンテンツは非常に軽度であることも認識しておいてください。
  2. テストを実行 を選択し、結果を確認します。
  3. Content Safetyのページに戻り プロンプトシールド を選択します。

Select Prompt Shield

  1. プロンプトシールド ページで、Azure AI サービス の下に先ほど作成した Content Safety リソースを選択します。
  2. プロンプト & ドキュメント攻撃コンテンツ を選択し、ユーザープロンプトとドキュメントテキストの潜在的な問題を確認します。

Select prompt and document attack content

  1. テストを実行 を選択します。
  2. 結果を表示 で、ユーザープロンプトとドキュメントの両方で Jailbreak 攻撃が検出されたことを確認します。

    Result Jailbreak

    [!TIP] AI Studio にはすべてのサンプルのコードが用意されています。

  3. 次のステップの下にあるコードの表示メニューを選択し、コードの表示ボタンを選択します。サンプルコードウィンドウが表示されます。
  4. 下向き矢印を使ってPythonまたはC#を選び、コピーを選択してサンプルコードをクリップボードにコピーします。
  5. サンプルコード画面を閉じます。

    Sample Code

    アプリケーションの設定

    これから、C# または Python でアプリケーションを作成します。

C#

事前準備
  • Visual Studio Code をインストールします。対応しているプラットフォームについてはこちらを確認してください。
  • この演習では、ターゲットフレームワークとして .NET 8 を使用します。
  • Visual Studio Code に C# 拡張機能 をインストールします。
  • 必要に応じ、Visual Studio Code を日本語化してください。

    Visual Studio Codeを日本語化する方法

    1. Visual Studio Code を起動します。
    2. 左下の歯車アイコン(設定)をクリックします。
    3. 「Command Palette…」を選択します。
    4. 「Configure Display Language」と入力し、Enter キーを押します。
    5. 言語リストが表示されるので、「Japanese」を選択します。
    6. 再起動を促すメッセージが表示されるので、「Restart」をクリックします。
    7. Visual Studio Code が再起動し、日本語化されます。
セットアップ

Visual Studio Code を演習のために準備するには、次の手順を実行します。

  1. Visual Studio Code を起動し、エクスプローラービューで .NET プロジェクトを作成 をクリックし、コンソールアプリ を選択します。

    Create Dot Net Project

  2. コンピューター上のフォルダーを選択し、プロジェクトに名前を付けます。プロジェクトを作成します を選択します。もし警告メッセージが表示されたら内容を確認します。

    Name the new project

    Create a project

  3. エクスプローラー ペインで、ソリューション エクスプローラーを展開し、Program.cs を選択します。

    Open Program.cs

  4. 実行 -> デバッグなしで実行 を選択してプロジェクトをビルドおよび実行します。
  5. ソリューション エクスプローラーで、C# プロジェクトを右クリックし、NuGetパッケージを追加 を選択します。

    Add NuGet Package

    ここで .Net 8.0 SDKのインストールを要求された場合は、OSに適したSDKのパッケージを選択してインストールしてください。

  6. Azure.AI.TextAnalytics を検索し、最新バージョンを選択します。

    Search Azure.AI.TextAnalytics package

  7. 2つ目の NuGet パッケージ Microsoft.Extensions.Configuration.Json を検索し、バージョン8.0.1 を選択します。プロジェクトファイルには、2つの NuGet パッケージがリストされているはずです。

    Search Microsoft.Extention.Configuration.Json

    Project File

コードを追加する
  1. Program.cs ファイルの中身を全て削除し、先ほどコピーしたC#のサンプルコードをコピーします。
  2. Replace with your own subscription _key and endpoint のコメント行を見つけます。
  3. Azure ポータルで、キーとエンドポイントのページからキーの1つ(1または2)をコピーし、この値で **** を置き換えます。
  4. Azure ポータルで、エンドポイントをコピーし、この値で **** を置き換えます。
  5. Azure AI Studio で、User prompt の値をコピーし、この値で **** を置き換えます。
  6. **** までスクロールし、この行のコードを削除します。
  7. Azure AI Studio で、Document の値をコピーします。
  8. **** までスクロールし、ドキュメントの値を貼り付けます。
  9. 実行 -> デバッグなしで実行 を選択し、攻撃が検出されたことを確認します。

    実行結果

    Prompt & document attack content result

Python

事前準備
  • Visual Studio Code をインストールします。対応しているプラットフォームについてはこちらを確認してください。
  • Visual Studio Code に Python 拡張機能 をインストールします。
  • requests モジュール をインストールします。
  • 必要に応じ、Visual Studio Code を日本語化してください。
セットアップ
  1. .py 拡張子の新しい Python ファイルを作成し、適切な名前を付けます。
  2. 先ほどコピーしたPythonのサンプルコードを貼り付けます。
  3. Replace with your own subscription _key and endpoint というタイトルのセクションまでスクロールします。
  4. Azure ポータルで、キーとエンドポイントのページからキーの1つ(1または2)をコピーし、この値で **** を置き換えます。
  5. Azure ポータルで、エンドポイントをコピーし、この値で **** を置き換えます。
  6. Azure AI Studio で、User prompt の値をコピーし、この値で **** を置き換えます。
  7. **** までスクロールし、この行のコードを削除します。
  8. Azure AI Studio で、Document の値をコピーします。
  9. **** までスクロールし、ドキュメントの値を貼り付けます。
  10. ファイルの統合ターミナルからプログラムを実行します。例:

    • python .¥prompt-shield.py
  11. 攻撃が検出されたことを確認します。 実行結果 Python results
  12. 必要に応じて、異なるテストコンテンツやドキュメントの値で実験してみてください。