次の方法で共有


クイック スタート: マルチモーダル コンテンツを分析する (プレビュー)

Multimodal API は、画像コンテンツとテキスト コンテンツの両方を含むマテリアルを分析して、有害なユーザー生成コンテンツや AI 生成コンテンツからアプリケーションとサービスの安全性を高めるのに役立ちます。 画像とそれに関連付けられているテキスト コンテンツを一緒に分析すると、コンテキストを維持しつつ、コンテンツをより包括的に理解できるようになります。

コンテンツのフィルター処理方法の詳細については、有害なカテゴリの概念に関するページを参照してください。 API 入力の制限については、「概要」の「入力の要件」セクションを参照してください。

重要

この機能は、特定の Azure リージョンでのみ使用できます。 利用可能なリージョンに関するページを参照してください。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure サブスクリプションを入手したら、Azure portal で Content Safety リソースを作成し、キーとエンドポイントを取得します。 リソースの一意の名前を入力し、サブスクリプションを選択して、リソース グループ、サポートされているリージョン、サポートされている価格レベルを選択します。 [作成] を選択します。
    • リソースのデプロイには数分かかります。 完了したら、[リソースに移動] を選びます。 左ペインの [リソース管理] で、[サブスクリプション キーとエンドポイント] を選びます。 後で使用するために、エンドポイントといずれかのキー値を一時的な場所にコピーします。
  • 次のいずれかがインストールされていること。
    • REST API 呼び出し用の cURL
    • Python 3.x がインストールされていること

テキストを含む画像を分析する

次のセクションでは、cURL を使用したマルチモーダル モデレーション要求のサンプルについて説明します。

サンプル画像を準備する

分析するサンプル画像を選び、それをデバイスにダウンロードします。

画像の制限事項については、「入力の要件」を参照してください。 アニメーション形式の場合、サービスによって最初のフレームが抽出されて分析が実行されます。

画像は 2 つの方法のいずれか (ローカル ファイルストリームまたは BLOB ストレージ URL) で入力できます。

  • ローカル ファイルストリーム (推奨): 画像を base64 にエンコードします。 codebeautify のような Web サイトを使用して、エンコードを行うことができます。 その後、エンコードされた文字列を一時的な場所に保存します。
  • BLOB ストレージ URL: Azure Blob Storage アカウントに画像をアップロードします。 BLOB ストレージのクイックスタートに従って、これを行う方法を確認してください。 その後、Azure Storage Explorer を開き、画像の URL を取得します。 一時的な場所にこれを保存します。

テキストを含む画像を分析する

以下のコマンドをテキスト エディターに貼り付け、次の変更を加えます。

  1. <endpoint> をリソース エンドポイント URL に置き換えます。
  2. <your_subscription_key> をご自分のキーに置き換えます。
  3. 本文の "image" フィールドに、"content" フィールドまたは "blobUrl" フィールドを設定します。 たとえば、{"image": {"content": "<base_64_string>"}{"image": {"blobUrl": "<your_storage_url>"} などです。
  4. 必要に応じて、"text" フィールドの値を、分析する独自のテキストに置き換えます。
curl --location '<endpoint>/contentsafety/imageWithText:analyze?api-version=2024-09-15-preview ' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data '{
  "image": {
      "content": "<base_64_string>"
 },
  "categories": ["Hate","Sexual","Violence","SelfHarm"],
  "enableOcr": true,
  "text": "I want to kill you"
}'

Note

BLOB ストレージの URL を使う場合、要求本文は次のようになります。

{
  "image": {
    "blobUrl": "<your_storage_url>"
  }
}

URL には以下のフィールドを含める必要があります。

名前 必須 説明 種類
API バージョン 必須 これは確認する API のバージョンです。 現在のバージョンは api-version=2024-09-15 です。 例: <endpoint>/contentsafety/imageWithText:analyze?api-version=2024-09-15 String

要求本文のパラメーターは、次の表のように定義されています。

名前 Description Type
content または blobUrl (必須) 画像のコンテンツまたは BLOB URL。 base64 でエンコードされたバイトまたは BLOB URL のいずれかを指定できます。 両方が指定されている場合、要求は拒否されます。 画像の最大許容サイズは 7,200 x 7,200 ピクセルで、最大ファイル サイズは 4 MB です。 画像の最小サイズは 50 ピクセル x 50 ピクセルです。 String
text (省略可能) 画像に添付されているテキスト。 1 つのテキスト要求で最大 1,000 文字 (Unicode コード ポイント) がサポートされます。 String
enableOcr (必須) true に設定すると、サービスは OCR を実行し、検出されたテキストと入力画像を同時に分析します。 入力画像から最大 1,000 文字 (Unicode コード ポイント) を認識します。 その他は切り捨てられます。 Boolean
categories (省略可能) これはカテゴリ名の配列であると想定されます。 使用できるカテゴリ名の一覧については、危害カテゴリ ガイドのページを参照してください。 カテゴリを指定しない場合、4 つのカテゴリがすべて使われます。 複数のカテゴリを使って、1 つの要求でスコアを取得します。 列挙型

コマンド プロンプト ウィンドウを開き、cURL コマンドを実行します。

出力

コンソールに、画像とテキストのモデレーション結果が JSON データとして表示されます。 次に例を示します。

{
  "categoriesAnalysis": [
    {
      "category": "Hate",
      "severity": 2
    },
    {
      "category": "SelfHarm",
      "severity": 0
    },
    {
      "category": "Sexual",
      "severity": 0
    },
    {
      "category": "Violence",
      "severity": 0
    }
  ]
}

出力の JSON フィールドは次のように定義されています。

名前 Description Type
categoriesAnalysis API によって予測される各出力クラス。 分類には複数のラベルを付けることができます。 たとえば、画像が画像モデレーション モデルにアップロードされると、性的コンテンツと暴力の両方として分類される可能性があります。 危害カテゴリ String
重大度 危害のカテゴリごとのフラグの重大度レベル。 危害カテゴリ Integer