クイック スタート: マルチモーダル コンテンツを分析する (プレビュー)
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 を取得します。 一時的な場所にこれを保存します。
テキストを含む画像を分析する
以下のコマンドをテキスト エディターに貼り付け、次の変更を加えます。
<endpoint>
をリソース エンドポイント URL に置き換えます。<your_subscription_key>
をご自分のキーに置き換えます。- 本文の
"image"
フィールドに、"content"
フィールドまたは"blobUrl"
フィールドを設定します。 たとえば、{"image": {"content": "<base_64_string>"}
や{"image": {"blobUrl": "<your_storage_url>"}
などです。 - 必要に応じて、
"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 |