AI Search Open Platform では、API を使用してドキュメントコンテンツ解析サービスを呼び出すことができます。 このサービスをビジネス処理チェーンに統合して、非構造化データを構造化データに解析し、構造化データをビジネスに適用できます。
サービス名 | サービスID | サービスの説明 | API呼び出しのQPS制限 (Alibaba CloudアカウントおよびRAMユーザーの場合) |
ドキュメント解析サービス | ops-document-analyze-001 | 非構造化ドキュメントからタイトルやセグメントなどの論理的な階層構造、およびテキスト、表、画像、その他の情報を抽出し、構造化形式で出力します。 サポートされているドキュメントタイプは、TXT、PDF、HTML、DOC、DOCX、PPT、PPTX です。 | 10 説明 より高いQPSを申請するには、チケットを送信してください。 |
ops-document-analyze-002 | PDF やイメージなど、さまざまな非構造化ドキュメントフォーマットを解析し、テーブル、数式、チャートなどの複雑な要素の検出に優れており、高速な推論速度を実現します。 |
前提条件
認証情報を取得します。
API を使用して AI Search Open Platform サービスを呼び出す場合は、呼び出し元の ID を認証する必要があります。
サービスアクセスアドレスを取得します。
インターネットまたは VPC(Virtual Private Cloud)経由でサービスを呼び出すことができます。 詳細については、「サービス登録アドレスを取得する」をご参照ください。
一般情報
リクエスト本文の最大サイズは 8 MB を超えることはできません。
概要
ドキュメントコンテンツの解析では、同期インターフェイスと非同期インターフェイスの両方が提供されます。 HTTP タイムアウトのリスクがあるため、本番環境では同期インターフェイスは推奨されず、デバッグに使用できます。 本番環境では非同期インターフェイスが推奨され、2 つのステップが含まれます。まず、非同期抽出タスクを作成して task_id を取得し、次に非同期タスク取得インターフェイスを呼び出して、タスクが完了するまでステータスを継続的にクエリします。
非同期抽出タスクを作成する
リクエストメソッド
POST
URL
{host}/v3/openapi/workspaces/{workspace_name}/document-analyze/{service_id}/asynchost:サービスを呼び出すためのアドレス。 インターネットまたは VPC 経由で API サービスを呼び出すことができます。 詳細については、「サービス登録アドレスを取得する」をご参照ください。
workspace_name:ワークスペースの名前(例:default)。
service_id:組み込みサービス ID(例:ops-document-analyze-001)。
リクエスト パラメーター
ヘッダーパラメーター
API キー認証
パラメーター | タイプ | 必須 | 説明 | 例 |
Content-Type | String | はい | リクエストタイプ。 有効な値:application および json。 | application/json |
Authorization | String | はい | API キー。 | Bearer OS-d1**2a |
ボディ パラメーター
パラメーター | タイプ | 必須 | 説明 | 例 |
service_id | String | はい | 組み込みサービス ID。 | ops-document-analyze-001 |
document.url | String | いいえ | ドキュメントの URL。 有効な値:HTTP および HTTPS プロトコル。 パブリックネットワークからステートレスにダウンロードできることを確認してください。 document.contentまたはdocument.urlのいずれかが必要です。 | http://opensearch-shanghai.oss-cn-shanghai.aliyuncs.com/chatos/***/file-parser/samples/GB10767.pdf |
document.content | String | いいえ | Base64 でエンコードされたドキュメントコンテンツ。 document.contentまたはdocument.urlのいずれかが必要です。 | "aGVsbG8gd29ybGQ=" |
document.file_name | String | いいえ | ドキュメント名。 このパラメーターを空のままにすると、URL から名前を推測できます。 このパラメーターと document.url パラメーターを空のままにすると、ドキュメント名を明示的に指定する必要があります。 | test.pdf |
document.file_type | String | いいえ | ドキュメントタイプ。 このパラメーターを空のままにすると、ドキュメントタイプはドキュメント名のサフィックスから推測できます。 推測できない場合は、ドキュメントタイプを明示的に指定する必要があります。 サポートされているドキュメントタイプは、TXT、PDF、HTML、DOC、DOCX、PPT、PPTX です。 | |
output.image_storage | String | いいえ | 画像保存方法。
| url |
strategy.enable_semantic | Boolean | いいえ | TXT ドキュメントまたは階層構造が不明確なドキュメントの解析中に、セマンティック階層抽出を有効にするかどうかを指定します。 有効な値:
| false |
目次と本文の区別が明確でないドキュメントの場合、セマンティック階層抽出により、結果の階層構造がより正確になります。
usage.semantic_token_count パラメーターの値が返された場合、セマンティック階層抽出が有効になっており、セマンティックトークンの消費に対して課金されます。 戻り値がない場合は、機能が失敗し、課金されないことを示します。
次の表に基づいて、セマンティック階層抽出を有効にした後の時間とトークンの消費量を見積もることができます。
PDF ページ | トークン数 | セマンティック階層抽出なし | セマンティック階層抽出あり | |
時間 (秒) | 時間 (秒) | セマンティックトークン | ||
7 | 11,504 | 2 | 49 | 36,243 |
25 | 10,375 | 1 | 33 | 59,332 |
42 | 41,435 | 5 | 68 | 130,717 |
レスポンスパラメーター
パラメーター | タイプ | 説明 | 例 |
result.task_id | String | ドキュメント解析非同期タスクの ID。 | d5a4019e-853a-****-b5b6-8053d9f5a9fc |
cURL リクエスト例
curl --location 'http://****shanghai.opensearch.aliyuncs.com/v3/openapi/workspaces/default/document-analyze/ops-document-analyze-001/async/' \
--header 'Authorization: Bearer your API Key' \
--header 'Content-Type: application/json' \
--data '{
"document":{
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241018/jahnyn/%E8%A7%A3%E6%9E%90%E6%B5%8B%E8%AF%95.doc"
},
"output" :{
"image_storage":"base64"
},
"strategy": {
"enable_semantic":true
}
}'レスポンス例
正常なレスポンスの例
{
"request_id": "D5A4019E-853A-4E20-****-8053D9F5A9FC",
"latency": 5.0,
"http_code": 200,
"result": {
"task_id": "d5a4019e-853a-****-b5b6-8053d9f5a9fc"
}
}異常なレスポンスの例
アクセスリクエストエラーが発生した場合、出力結果にはコードとメッセージによってエラー理由が示されます。
{
"request_id": "590A7EB8-AA84-****-AF31-8C35DC965972",
"latency": 0.0,
"code": "InvalidParameter",
"http_code": 400,
"message": "document.file_name は必須です"
}非同期抽出タスクを取得する
リクエストメソッド
取得
URL
{host}/v3/openapi/workspaces/{workspace_name}/document-analyze/{service_id}/async/task-status?task_id=${task_id}host:サービスを呼び出すためのアドレス。 インターネットまたは VPC 経由で API サービスを呼び出すことができます。 詳細については、「サービス登録アドレスを取得する」をご参照ください。
workspace_name:ワークスペースの名前(例:default)。
service_id:組み込みサービス ID(例:ops-document-analyze-001)。
task_id:ドキュメント解析レスポンスで返された非同期タスク ID(例:d5a4019e-853a-****-b5b6-8053d9f5a9fc)。
リクエストパラメーター
ヘッダー パラメーター
API キー認証
パラメーター | タイプ | 必須 | 説明 | 例 |
Content-Type | String | はい | リクエストタイプ。 有効な値:application および json。 | application/json |
Authorization | String | はい | API キー。 | Bearer OS-d1**2a |
レスポンスパラメーター
パラメーター | タイプ | 説明 | 例 |
result.task_id | String | ドキュメント解析非同期タスクの ID。 | 24c3ad59-****-40cf-974b-b63d63e0571 |
result.status | String | タスクステータス。 有効な値:
| PENDING |
result.error | String | result.status を FAIL に設定した場合のエラーメッセージ。 タスクが成功した場合、このパラメーターの値は空です。 | ドキュメントの復号化に失敗しました |
result.data | Object | ドキュメント解析結果。 | markdown |
result.data.content | String | ドキュメント解析結果 - コンテンツ。
| "XXX" |
result.data.content_type | String | ドキュメント解析結果 - コンテンツ形式。
| markdown |
result.data.page_num | Int | ドキュメント解析結果 - ページ数。 | 15 |
request_id | String | システムが API 呼び出しに割り当てたユニーク ID。 | B4AB89C8-B135-****-A6F8-2BAB8018688 |
latency | Float/Int | リクエスト時間。 単位:ミリ秒。 | 10 |
usage | Object | この呼び出しによって生成された課金情報。 | "usage": { "token_count": 123, "table_count": 5, "image_count": 6, "semantic_token_count":3068 } |
usage.token_count | Int | ドキュメントの文字数。 | 1234 |
usage.table_count | Int | ドキュメントの表の数。 | 5 |
usage.image_count | Int | ドキュメントの画像の数。 | 6 |
usage.semantic_token_count | Int | セマンティック抽出モデルの入力トークン。 | 3068 |
cURL リクエスト例
curl -XGET -H"Content-Type: application/json"
"http://****-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/document-analyze/ops-document-analyze-001/async/task-status?task_id=110d6349-2e51-****-8bfb-25e5de434686"
-H "Authorization: Bearer Your API-KEY"レスポンス例
通常の応答例
{
"request_id": "27F9CEC3-9052-****-83FF-E7957B680492",
"latency": 13.0,
"http_code": 200,
"result": {
"status": "SUCCESS",
"data": {
"content": "適切な帰属表示が提供されている場合、Alibaba は、ジャーナリズムまたは学術的な著作物での使用のみを目的として、本書の表と図を複製する許可をここに付与します....",
"content_type": "markdown",
"page_num": 15
},
"task_id": "24c3ad59-b196-****-974b-b63d63e05895"
},
"usage": {
"token_count": 31867,
"table_count": 4,
"image_count": 8,
"semantic_token_count":3068
}
}異常なレスポンスの例
アクセスリクエストエラーが発生した場合、出力結果にはコードとメッセージによってエラーの理由が示されます。
{
"request_id": "0F94BD89-989C-****-963C-6E4F3FF99445",
"latency": 3.0,
"code": "BadRequest.TaskNotExist",
"http_code": 404,
"message": "task[2fda34f5-40b4-****-a9a2-3e2c1e807361] not exist" // タスクが存在しません
}同期抽出タスクを作成する
HTTP タイムアウトのリスクがあるため、本番環境では同期インターフェイスを使用しないことをお勧めします。 このインターフェイスはデバッグに使用できます。
リクエストメソッド
POST
URL
{host}/v3/openapi/workspaces/{workspace_name}/document-analyze/{service_id}/syncパラメーターの説明
host:サービスを呼び出すためのアドレス。 インターネットまたは VPC 経由で API サービスを呼び出すことができます。 詳細については、「サービス登録アドレスを取得する」をご参照ください。
workspace_name:ワークスペースの名前(例:default)。
service_id:組み込みサービス ID(例:ops-document-analyze-001)。
リクエストパラメータ
ヘッダー パラメーター
API キー認証
パラメーター | タイプ | 必須 | 説明 | 例 |
Content-Type | String | はい | リクエストタイプ。 有効な値:application および json。 | application/json |
Authorization | String | はい | API キー。 | Bearer OS-d1**2a |
ボディ パラメーター
パラメーター | タイプ | 必須 | 説明 | 例 |
document.url | String | いいえ | ドキュメントの URL。 有効な値:HTTP および HTTPS プロトコル。 パブリックネットワークからステートレスにダウンロードできることを確認してください。 document.contentまたはdocument.urlのいずれかが必要です。 | http://opensearch-shanghai.oss-cn-shanghai.aliyuncs.com/chatos/***/file-parser/samples/GB10767.pdf |
document.content | String | いいえ | Base64 でエンコードされたドキュメントコンテンツ。 document.contentまたはdocument.urlのいずれかが必要です。 | "aGVsbG8gd29ybGQ=" |
document.file_name | String | いいえ | ドキュメント名。 このパラメーターを空のままにすると、URL から名前を推測できます。 このパラメーターと document.url パラメーターを空のままにすると、ドキュメント名を明示的に指定する必要があります。 | test.pdf |
document.file_type | String | いいえ | ドキュメントタイプ。 このパラメーターを空のままにすると、ドキュメントタイプはドキュメント名のサフィックスから推測できます。 推測できない場合は、ドキュメントタイプを明示的に指定する必要があります。 サポートされているドキュメントタイプは、TXT、PDF、HTML、DOC、DOCX、PPT、PPTX です。 | |
output.image_storage | String | いいえ | 画像保存方法。
| url |
strategy.enable_semantic | Boolean | いいえ | セマンティック階層抽出を有効にするかどうかを指定します。この機能を有効にすると、ドキュメントがMarkdown階層形式で返され、精度が向上します。 この機能を有効にすると、ドキュメント全体の解析時間が長くなります。 解析時間が 400 秒を超える場合、または非常に長いドキュメント(100 ページ以上)の場合は、システムによって機能が自動的に無効になることがあります。 この機能は、HTML、PPT、または PPTX タイプのドキュメントをサポートしていません。 | false |
レスポンスパラメーター
パラメーター | タイプ | 説明 | 例 |
result.status | String | タスクステータス。 有効な値:
| PENDING |
result.error | String | result.status を FAIL に設定した場合のエラーメッセージ。 タスクが成功した場合、このパラメーターの値は空です。 | ドキュメントの復号化に失敗しました |
result.data | Object | ドキュメント解析結果。 | markdown |
result.data.content | String | ドキュメント解析結果 - コンテンツ。
| "XXX" |
result.data.content_type | String | ドキュメント解析結果 - コンテンツ形式。
| markdown |
result.data.page_num | Int | ドキュメント解析結果 - ページ数。 | 15 |
request_id | String | システムが API 呼び出しに割り当てたユニーク ID。 | B4AB89C8-B135-****-A6F8-2BAB801A2CE4 |
latency | Float/Int | リクエスト時間。 単位:ミリ秒。 | 10 |
usage | Object | この呼び出しによって生成された課金情報。 | "usage": { "token_count": 123, "table_count": 5, "image_count": 6, "semantic_token_count":3068 } |
usage.token_count | Int | ドキュメントの文字数。 | 1234 |
usage.table_count | Int | ドキュメントの表の数。 | 5 |
usage.image_count | Int | ドキュメントの画像の数。 | 6 |
usage.semantic_token_count | Int | セマンティック抽出モデルの入力トークン。 | 3068 |
cURL リクエスト例
curl --location 'http://****shanghai.opensearch.aliyuncs.com/v3/openapi/workspaces/default/document-analyze/ops-document-analyze-001/sync/' \
--header 'Authorization: Bearer your API Key' \
--header 'Content-Type: application/json' \
--data '{
"document":{
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241018/jahnyn/%E8%A7%A3%E6%9E%90%E6%B5%8B%E8%AF%95.doc"
},
"output" :{
"image_storage":"base64"
},
"strategy": {
"enable_semantic":true
}
}'レスポンス例
通常の応答例
{
"request_id": "27F9CEC3-9052-****-83FF-E7957B689D04",
"latency": 13.0,
"http_code": 200,
"result": {
"status": "SUCCESS",
"data": {
"content": "適切な帰属表示が提供されている場合、Alibaba は、ジャーナリズムまたは学術的作品での使用のみを目的として、本書の表と図を複製する許可をここに付与します....",
"content_type": "markdown",
"page_num": 15
}
},
"usage": {
"token_count": 31867,
"table_count": 4,
"image_count": 8,
"semantic_token_count":3068
}
}異常なレスポンスの例
アクセスリクエストエラーが発生した場合、出力結果にはコードとメッセージによってエラー理由が示されます。
{
"request_id": "6F33AFB6-A35C-****-AFD2-9EA16CCF4383",
"latency": 2.0,
"code": "InvalidParameter",
"http_code": 400,
"message": "JSON parse error: Cannot deserialize value of type `ImageStorage` from String \\"xxx\\" // JSON解析エラー: 文字列 \\"xxx\\" から `ImageStorage` 型の値をデシリアライズできません
}ステータスコードの説明
HTTP ステータス コード | エラーメッセージ | 説明 |
200 | - | タスクの失敗シナリオを含む、リクエストは成功しました。実際のタスクの状態は result.status から判断する必要があります。 |
404 | BadRequest.TaskNotExist | タスクが存在しません。 |
400 | InvalidParameter | 無効なリクエストです。 |
500 | InternalServerError | 内部エラーです。 |