非同期モードによるドキュメントのリスクおよび違反検出機能を提供します。本トピックでは、Document Moderation 2.0 で利用可能な API オペレーションについて説明します。
アクセスガイドライン
Content Moderation の従量課金方式を有効化します:Content Moderation 2.0 サービスが有効化されていることを確認してください。詳細については、「サービスの有効化」をご参照ください。サービス有効化は無料です。API オペレーションを呼び出した後、課金システムが使用量に応じて課金を行います。
AccessKey ペアを作成します:Resource Access Management (RAM) ユーザーとして AccessKey ペアを作成済みであることを確認してください。詳細については、「AccessKey の作成」をご参照ください。RAM ユーザーが所有する AccessKey ペアを使用する場合は、Alibaba Cloud アカウントから RAM ユーザーに AliyunYundunGreenWebFullAccess 権限を付与してください。詳細については、「RAM 認可」をご参照ください。
SDK を使用します:詳細については、「Document Moderation 2.0 SDK および統合ガイド」をご参照ください。
モデレーションタスクの送信
注意事項
ビジネスオペレーション:FileModeration。非同期モードのみ対応しています。
対応リージョンおよびアクセスアドレス:
リージョン パブリックネットワークアクセスアドレス イントラネットアクセスアドレス 対応サービス シンガポール green-cip.ap-southeast-1.aliyuncs.com green-cip-vpc.ap-southeast-1.aliyuncs.com document_detection_global 課金:本オペレーションは課金対象であり、処理対象ドキュメントのページ数に基づいて課金されます。
モデレーション対象:一般的なドキュメント形式がサポートされています。
結果の配信:モデレーション結果はリアルタイムで返却されません。ポーリングまたはコールバック通知を有効化することで結果を取得できます。結果は最大 24 時間保持されます。
コールバック通知:モデレーションタスク送信時に、callback パラメーターにコールバック URL を指定します。
ポーリング:callback パラメーターを空欄のまま送信し、その後、結果照会オペレーションを呼び出します。
ドキュメント要件:
対応プロトコル:HTTP および HTTPS。
対応フォーマット:DOC、DOCX、PPT、PPTX、PPS、PPSX、PDF、XLS、XLSX、XLTX、XLTM、HTML、TXT(UTF-8 エンコーディング)。
サイズ制限:1 ドキュメントあたり最大 200 MB。この制限を超える場合は、ドキュメントを圧縮または分割してください。
モデレーション所要時間はドキュメントのダウンロード時間に依存します。Alibaba Cloud OSS などの安定性・信頼性の高いストレージサービスをご利用ください。
ルール構成:初回呼び出しの前に、Content Moderation コンソールで Document Moderation のルールを構成してください。構成を行わないと、Document Moderation 2.0 はデフォルト設定で動作します。
QPS 制限
本オペレーションは、1 アカウントあたり 1 秒間に最大 100 回まで呼び出すことができます。システムは最大 20 件の同時モデレーションタスクをサポートします。この上限を超えるリクエストは破棄され、サービスが中断される可能性があります。本オペレーションを呼び出す際は、この制限にご注意ください。
デバッグ
Alibaba Cloud OpenAPI を使用して、Document Moderation 2.0 オペレーションをオンラインでデバッグし、サンプルコードおよび SDK 依存関係を表示し、オペレーションパラメーターを調査できます。
Content Moderation API を呼び出す前に、Alibaba Cloud アカウントで Content Moderation コンソールにログインしてください。API オペレーション呼び出しに伴う料金は、その Alibaba Cloud アカウントに請求されます。
リクエストパラメーター
| 名前 | 型 | 必須 | 例 | 説明 |
|---|---|---|---|---|
| Service | String | はい | document_detection_global | モデレーションサービスの種類。有効な値: document_detection_global(汎用ドキュメントモデレーション)。
|
| ServiceParameters | JSONString | はい | モデレーションサービスが必要とするパラメーター(JSON 文字列形式)。各フィールドの説明については、「ServiceParameters」をご参照ください。 |
表 1. ServiceParameters
| 名前 | 型 | 必須 | 例 | 説明 |
|---|---|---|---|---|
| url | String | はい* | http://www.aliyundoc.com/a.pdf | モデレーション対象ドキュメントの URL。URL はパブリックネットワークからアクセス可能である必要があります。最大長:2,048 文字。URL には漢字を含めることはできません。1 回のリクエストにつき 1 つの URL のみ許可されます。 |
| ossBucketName | String | いいえ* | bucket_0307 | 承認済み OSS バケットの名前。OSS イントラネットアドレスを使用する前に、Alibaba Cloud アカウントでクラウドリソースへのアクセス権限付与ページで承認を完了してください。 |
| ossObjectName | String | いいえ* | 20240307/07/28/test.pdf | 承認済み OSS バケット内のオブジェクト名。 |
| ossRegionId | String | いいえ* | cn-shanghai | OSS バケットのリージョン。 |
| docType | String | いいえ | ドキュメントのフォーマット。URL がファイル拡張子のないファイルを指す場合に必須です。有効な値:doc、docx、ppt、pptx、pps、ppsx、xls、xlsx、xltx、xltm、xlsb、xlsm、csv、pdf、html、txt。 説明 txt ファイルの場合、テキスト内容のみがモデレーション対象となります。スクリーンショットによる画像内容のモデレーションは行われません。txt ファイルからテキストを抽出し、代わりに Text Moderation 2.0 サービスを呼び出してください。 | |
| callback | String | いいえ | http://www.aliyundoc.com | モデレーション結果通知用のコールバック URL。HTTP および HTTPS をサポートします。空欄の場合は、ポーリングにより結果を取得します。コールバックエンドポイントは、UTF-8 エンコーディングで POST リクエストを受け付ける必要があります。また、checksum および content のフォームパラメーターを受信できる必要があります。Content Moderation はこれらのパラメーターを以下のように設定します:checksum は UID + seed + content 形式の文字列で、SHA256 アルゴリズムで署名されます。ここで UID は Alibaba Cloud アカウント ID(Alibaba Cloud 管理コンソールで照会可能)です。サーバー側でチェックサムを検証し、データ改ざんを検出してください。説明 UID は RAM ユーザー ID ではなく、Alibaba Cloud アカウント ID である必要があります。content は JSON エンコードされた文字列です。これを解析してモデレーション結果を取得してください。コンテンツのフォーマットについては、結果照会オペレーションの成功レスポンスのサンプルをご参照ください。 説明 サーバーがコールバック通知を正常に受信した場合は、HTTP 200 を返してください。それ以外の場合は、Content Moderation が最大 16 回再試行した後に停止します。通知が受信されない場合は、コールバック URL のステータスを確認してください。 |
| seed | String | いいえ | abc**** | コールバック通知署名生成に使用されるランダム文字列。最大長:64 文字。使用可能な文字:英字、数字、アンダースコア (_)。ただし、callback を設定する場合は必須です。 |
| cryptType | String | いいえ | SHA256 | コールバック通知コンテンツの署名アルゴリズム。有効な値:SHA256(デフォルト):SHA256 アルゴリズムを使用して署名します。SM3:HMAC-SM3 アルゴリズムを使用して署名し、小文字の 16 進数文字列(例:66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0)を返します。 |
| dataId | String | いいえ | fileId**** | モデレーション対象オブジェクトの ID。最大長:128 文字。使用可能な文字:英字、数字、アンダースコア (_)、ハイフン (-)、ピリオド (.)。 |
| referer | String | いいえ | www.aliyun.com | ホットリンク保護に使用される Referer リクエストヘッダー。最大長:256 文字。 |
*url、ossBucketName/ossObjectName/ossRegionId(OSS 承認)、およびローカルドキュメントアップロード(SDK 経由)は、相互排他な入力方法です。いずれか 1 つを選択してください。ローカルドキュメントアップロードのコード例については、「Document Moderation 2.0 SDK およびアクセスガイド」をご参照ください。
レスポンスパラメーター
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| Code | Integer | 200 | 状態コード。HTTP ステータスコードと一致します。詳細については、「Code の説明」をご参照ください。 |
| Data | JSONObject | モデレーション結果データ。 | |
| Data.TaskId | String | AAAAA-BBBBB | タスク ID。 |
| Message | String | OK | レスポンスメッセージ。 |
| RequestId | String | ABCD1234-1234-1234-1234-123**** | リクエスト ID。 |
サンプル
リクエストのサンプル
{
"service": "document_detection_global",
"serviceParameters": {
"taskId": "abcd****"
}
}{
"Service": "document_detection_global",
"ServiceParameters":
{
"url": "http://www.aliyundoc.com/a.pdf",
"dataId": "fileId-2024-0307-0728***"
}
}成功レスポンスのサンプル
{
"Msg": "OK",
"Code": 200,
"Data":
{
"TaskId": "AAAAA-BBBBB-CCCCCCCC"
},
"RequestId": "ABCD1234-1234-1234-1234-123****"
}Document Moderation タスク結果の取得
注意事項
ビジネスオペレーション:DescribeFileModerationResult。Document Moderation タスクの結果を取得します。
課金:本オペレーションは無料です。
照会タイミング:非同期モデレーションリクエスト送信後、少なくとも 30 秒経過してからモデレーション結果を照会してください。結果は最大 24 時間保持され、4 時間経過後に自動削除されます。
QPS 制限
本オペレーションは、1 アカウントあたり 1 秒間に最大 100 回まで呼び出すことができます。この上限を超えると速度制限が発生し、サービスに影響を与える可能性があります。本オペレーションを呼び出す際は、この制限にご注意ください。
デバッグ
Alibaba Cloud OpenAPI を使用して、本オペレーションをオンラインでデバッグし、サンプルコードおよび SDK 依存関係を表示し、オペレーションパラメーターを調査できます。
リクエストパラメーター
| 名前 | 型 | 必須 | 例 | 説明 |
|---|---|---|---|---|
| Service | String | はい | document_detection | モデレーションサービスの種類。タスク送信時に指定したサービス種類と一致している必要があります。 |
| ServiceParameters | JSONString | はい | モデレーションサービスが必要とするパラメーター(JSON 文字列形式)。各フィールドの説明については、「ServiceParameters」をご参照ください。 |
表 1. ServiceParameters
| 名前 | 型 | 必須 | 例 | 説明 |
|---|---|---|---|---|
| taskId | String | はい | abcd**** | 照会対象のタスク ID。1 回のリクエストにつき 1 つのタスク ID を指定します。タスク ID は、送信オペレーションのレスポンスから取得してください。 |
レスポンスパラメーター
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| RequestId | String | ABCD1234-1234-1234-1234-123**** | リクエスト ID。問題の特定およびトラブルシューティングに使用します。 |
| Data | Object | ドキュメントモデレーション結果。詳細については、「Data」をご参照ください。 | |
| Code | String | 200 | 状態コード。HTTP ステータスコードと一致します。詳細については、「Code の説明」をご参照ください。 |
| Message | String | OK | レスポンスメッセージ。 |
表 2. Data
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| DataId | String | fileId**** | モデレーション対象オブジェクトの ID。リクエストで dataId を指定した場合にのみ返却されます。 |
| Url | String | http://www.aliyundoc.com/a.docx | モデレーション対象オブジェクトの URL。 |
| DocType | String | ファイル拡張子のないファイルに対して指定するドキュメントフォーマット。有効な値:doc、docx、ppt、pptx、pps、ppsx、xls、xlsx、xltx、xltm、xlsb、xlsm、csv、pdf、html、txt。 | |
| PageSummary | Object | モデレーション結果のまとめ。詳細については、「PageSummary」をご参照ください。 | |
| RiskLevel | String | high | 全体的なリスクレベル。画像およびテキストのモデレーション結果から算出されます。有効な値:high(即時対応)、medium(手動レビュー推奨)、low(より高リスクなコンテンツが検出された場合にのみ対応)、none(リスクなし。ビジネス要件に応じて対応)。リスクスコアのしきい値は、Content Moderation コンソールで構成できます。 |
| PageResult | JSONArray | ページ単位のモデレーション結果。HTTP ステータスコード 280 はモデレーション実行中(部分的な結果を返却)を示し、200 はモデレーション完了を示します。詳細については、「PageResult」をご参照ください。 |
表 3. PageSummary
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| PageSum | Integer | 10 | モデレーション対象の総ページ数。 |
| ImageSummary | Object | 画像モデレーション結果のまとめ。txt ファイルでは存在しません。詳細については、「ImageSummary」をご参照ください。 | |
| TextSummary | Object | テキストモデレーション結果のまとめ。詳細については、「TextSummary」をご参照ください。 |
表 4. ImageSummary
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| RiskLevel | String | high | 構成済みのリスクスコアしきい値に基づく画像のリスクレベル。有効な値:high、medium、low、none。 |
| ImageLabels | JSONArray | 画像ラベルのまとめ。詳細については、「ImageLabels」をご参照ください。 |
表 5. ImageLabels
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| Label | String | violent_explosion | 画像のリスクラベル。詳細については、「リスクラベル解釈表」をご参照ください。 |
| LabelSum | Integer | 該当ラベルの出現回数。 | |
| Description | String | Fireworks content | ラベルの説明。このフィールドは参考情報であり、変更される可能性があります。結果処理は Label フィールドに基づいて行ってください。このフィールドは使用しないでください。 |
表 6. TextSummary
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| RiskLevel | String | high | テキストのリスクレベル。有効な値:high、medium、low、none。 |
| TextLabels | JSONArray | テキストラベルのまとめ。詳細については、「TextLabels」をご参照ください。 |
表 7. TextLabels
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| Label | String | violent_explosion | テキストのリスクラベル。 |
| LabelSum | Integer | 該当ラベルのマッチ回数。 |
表 8. PageResult
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| PageNum | Integer | 50 | ドキュメントのページ番号。 |
| ImageUrl | String | http://oss.aliyundoc.com/a.png | 現在のページのスクリーンショット URL。 |
| ImageResult | JSONArray | 現在のページの画像モデレーション結果。txt ファイルでは存在しません。詳細については、「ImageResult」をご参照ください。 | |
| TextResult | JSONArray | 現在のページのテキストモデレーション結果。詳細については、「TextResult」をご参照ください。 |
表 9. ImageResult
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| Description | String | ドキュメントページの画像コンテンツのモデレーション | 画像モデレーションの範囲を説明します。 |
| Service | String | baselineCheck | 画像モデレーションに使用されるサービス。 |
| RiskLevel | String | high | 構成済みのリスクスコアしきい値に基づく画像のリスクレベル。有効な値:high、medium、low、none。 |
| Location | JSONObject | {"x":0,"y":0,"w":100,"h":100} | (予約済み)画像領域の座標。 |
| LabelResult | JSONArray | 画像に対して返却されるラベル。詳細については、「LabelResult」をご参照ください。 |
表 10. LabelResult
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| Label | String | violent_explosion | 画像に対して返却されるラベル。同一スクリーンショットに対して複数のラベルが返却される場合があります。詳細については、「リスクラベル解釈表」をご参照ください。 |
| Confidence | Float | 81.22 | 信頼度スコア。有効な値:0~100(小数点以下 2 桁まで)。 |
| Description | String | Fireworks content | ラベルの説明。このフィールドは参考情報であり、変更される可能性があります。結果処理は Label フィールドに基づいて行ってください。このフィールドは使用しないでください。 |
表 11. TextResult
| 名前 | 型 | 例 | 説明 |
|---|---|---|---|
| Description | String | ドキュメントページのテキストコンテンツのモデレーション。 | テキストモデレーションの範囲を説明します。 |
| Service | String | pgc_detection | サービスがテキストモデレーションを呼び出しました。 |
| Text | String | This is the text part | モデレーション対象セクションのテキストコンテンツ。 |
| Labels | String | ad_compliance,C_customized | テキストに対して返却されるラベル。詳細については、「Text Moderation 2.0 が提供する多言語サービス」をご参照ください。 |
| RiskWords | String | Risk word A, Risk word B | テキスト内で検出されたリスクワード。 |
| RiskTips | String | Advertising Law_General Prohibition of Extreme Words | テキストに対して返却されるサブラベル。 |
| RiskLevel | String | high | 計算されたテキストリスクに基づくテキストのリスクレベル。有効な値:high、medium、low、none。 |
サンプル
リクエストのサンプル
成功レスポンスのサンプル
{
"Code": 200,
"Data": {
"DataId": "fileId-2024-0307-0728***",
"PageResult": [
{
"ImageResult": [
{
"Description": "ドキュメントページの画像コンテンツのモデレーション",
"LabelResult": [
{
"label": "nonLabel"
}
],
"Service": "baselineCheck_global"
}
],
"ImageUrl": "http://oss.aliyundoc.com/a.png",
"PageNum": 1,
"TextResult": [
{
"Description": "ドキュメントページのテキストコンテンツのモデレーション",
"Labels": "",
"RiskTips": "",
"RiskWords": "",
"Service": "comment_multilingual_global",
"Text": "Content Moderation プロダクトのテストケース a"
}
]
},
...
{
"ImageResult": [
{
"Description": "ドキュメントページの画像コンテンツのモデレーション",
"LabelResult": [
{
"Confidence": 89.01,
"Label": "pornographic_adultContent_tii"
}
],
"Service": "baselineCheck_global"
}
],
"ImageUrl": "http://oss.aliyundoc.com/b.png",
"PageNum": 10,
"TextResult": [
{
"Description": "ドキュメントページのテキストコンテンツのモデレーション",
"Labels": "contraband,sexual_content",
"RiskTips": "Prohibited_prohibited goods,Pornographic_film resources,Pornographic_Vulgar",
"RiskWords": "risk word A,risk word B",
"Service": "comment_multilingual_global",
"Text": "Content Moderation プロダクトのテストケース b"
}
]
}
],
"Url": "http://www.aliyundoc.com/a.docx"
},
"Message": "SUCCESS",
"RequestId": "1D0854A7-AAAAA-BBBBBBB-CC8292AE5"
}Code の説明
Code が 200 または 280 のリクエストのみが計測および課金対象となります。それ以外の Code は課金対象外です。
| Code | 説明 |
|---|---|
| 200 | リクエストが成功した、またはモデレーションが完了しました。 |
| 280 | モデレーションが実行中です。 |
| 400 | すべての必須リクエストパラメーターが設定されていません。 |
| 401 | リクエストパラメーターが無効です。 |
| 402 | 無効なリクエストパラメーターです。確認して修正し、再度お試しください。 |
| 403 | リクエストの QPS が上限を超えています。一度に送信するリクエスト数を減らしてください。 |
| 404 | ファイルのダウンロードに失敗しました。ファイルの URL を確認して、再度お試しください。 |
| 405 | ファイルのダウンロードまたは変換がタイムアウトしました。URL がアクセス不能である可能性があります。ファイルを確認・調整して、再度お試しください。 |
| 406 | ファイルが大きすぎます。ファイルサイズを確認・調整して、再度お試しください。 |
| 407 | ファイルフォーマットがサポートされていません。ファイルフォーマットを確認・変更して、再度お試しください。 |
| 408 | 権限が不足しています。アカウントが有効化されていない、支払い遅延がある、または本オペレーションを呼び出す権限がない可能性があります。 |
| 409 | 指定された RequestId が存在しません。モデレーション結果の有効期間(24 時間)を超過した可能性があります。 |
| 480 | 同時モデレーションタスク数が上限を超えています。同時タスク数を減らしてください。 |
| 500 | システムエラーが発生しました。 |