言語サービス機能を非同期で使用する方法
言語サービスを使用すると、REST API またはクライアント ライブラリを使用して、API 要求を非同期的に送信できます。 複数の異なる言語サービス機能を要求に追加して、データに対して同時に実行されるようにすることもできます。
現時点では、次の機能を非同期的に使用できます。
- エンティティ リンク設定
- ドキュメントの概要作成
- 会話の概要作成
- キー フレーズの抽出
- 言語検出
- 名前付きエンティティの認識 (NER)
- 顧客コンテンツの検出
- 感情分析とオピニオン マイニング
- Text Analytics for Health
- 個人を特定できる情報 (PII)
非同期要求を送信すると、要求に含めるテキスト レコードの数に基づいて、各機能の使用に対する料金が発生します。 たとえば、感情分析と NER のテキスト レコードを送信する場合、2 つのテキスト レコードの送信としてカウントされ、価格レベルに従って両方に対して請求されます。
REST API を使用して非同期ジョブを送信する
非同期 API ジョブを送信するには、要求で送信する JSON 本文についてリファレンス ドキュメントを確認します。
- ドキュメントを
analysisInput
オブジェクトに追加します。 tasks
オブジェクトで、データに対して実行する操作を含めます。 たとえば、センチメント分析を実行する場合は、SentimentAnalysisLROTask
オブジェクトを含めます。- 必要に応じて、次のことができます。
- データで使用される特定のモデルのバージョンを選択します。
tasks
オブジェクトに言語サービス機能を追加して、データに対して同時に実行できるようにします。
要求の JSON 本文を作成したら、キーを Ocp-Apim-Subscription-Key
ヘッダーに追加します。 次に、API 要求をジョブ作成エンドポイントに送信します。 たとえば、次のように入力します。
POST https://your-endpoint.cognitiveservices.azure.com/language/analyze-text/jobs?api-version=2022-05-01
呼び出しが成功すると、202 応答コードが返されます。 応答ヘッダーの operation-location
は、API の結果を取得するために使用する URL になります。 この値は次の URL のようになります。
GET {Endpoint}/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2022-05-01
ステータスと要求の結果を取得するには、前の API 応答のoperation-location
ヘッダーで受け取った URL に GET 要求を送信します。 必ずキーを Ocp-Apim-Subscription-Key
に含めてください。 応答には、API 呼び出しの結果が含まれます。
クライアント ライブラリを使用した非同期 API 要求の送信
最初に、選択した言語用のクライアント ライブラリがインストールされていることを確認します。 クライアント ライブラリをインストールする手順については、使用する機能のクイックスタートの記事を参照してください。
その後、クライアントオブジェクトを使用して、API への非同期呼び出しを送信します。 使用するメソッド呼び出しは、使用している言語によって異なります。 利用可能なサンプルとリファレンス ドキュメントを使用すると、開始する際の役に立ちます。
結果の可用性
この機能を非同期的に使うと、API の結果は、応答で示される要求取り込み時刻から 24 時間利用できます。 この時間が経過すると、結果は消去され、取得できなくなります。
自動言語検出
REST API のバージョン 2022-07-01-preview
以降、ドキュメントに対する自動言語検出を要求できます。 language
パラメーターを auto
に設定すると、検出されたテキストの言語コードが応答で言語値として返されます。 この言語検出では、言語リソースに対する追加料金は発生しません。
データ制限
Note
- 制限を超えるドキュメントを分析する必要がある場合は、テキストを小さなチャンクに分割してから API に送信することができます。
- ドキュメントとは、テキスト文字の 1 つの文字列です。
StringInfo.LengthInTextElements によって測定されるように、非同期要求に含まれるすべてのドキュメントで最大 125,000 文字を送信できます。 この文字数の制限は、より高いスループットを実現するために、同期要求の制限より緩くなっています。
ドキュメントが文字数制限を超えると、要求内のいずれかのドキュメントが最大サイズを超えている場合、API によってその全体が拒否されて、400 bad request
エラーが返されます。