Azure OpenAI トークンの使用に関するメトリックを出力する
適用対象: すべての API Management レベル
azure-openai-emit-token-metric
ポリシーは、Azure OpenAI Service API を介した大規模言語モデル トークンの使用に関するカスタム メトリックを Application Insights に送信します。 トークン数のメトリックには、合計トークン、プロンプト トークン、完了トークンが含まれます。
Note
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
サポートされている Azure OpenAI Service モデル
このポリシーは、次の種類の Azure OpenAI Service から API Management に追加された API で使用されます。
[API の種類] | サポートされているモデル |
---|---|
チャット入力候補 | gpt-3.5 gpt-4 |
完了 | gpt-3.5-turbo-instruct |
埋め込み | text-embedding-3-large text-embedding-3-small text-embedding-ada-002 |
詳細については、「Azure OpenAI Service モデル」を参照してください。
カスタム メトリックの制限
Azure Monitor では、API Management からメトリックを出力する機能に影響を与える可能性があるカスタム メトリックに対して使用制限が課されます。 たとえば、現在 Azure Monitor では、メトリックあたりで 10 ディメンション キーの制限と、サブスクリプション内のリージョンあたりでアクティブな時系列に合計 50,000 の制限 (12 時間以内) が設定されています。
これらの制限により、API Management ポリシーでカスタム メトリック (emit-metric
や azure-openai-emit-token-metric
など) を構成する場合に次のような影響があります。
ポリシーごとに最大 10 のカスタム ディメンションを構成できます。
12 時間以内に ポリシーで生成されるアクティブな時系列の数は、期間中に構成された各ディメンションで一意な値の数の積です。 たとえば、ポリシーで 3 つのカスタム ディメンションが構成され、各ディメンションが期間内に 10 の使用可能な値を持つ場合、 ポリシーは 1,000 (10 x 10 x 10) のアクティブな時系列を提供します。
サブスクリプション内の同じリージョンにある複数の API Management インスタンスで ポリシーを構成した場合、すべてのインスタンスがリージョンのアクティブな時系列の制限に影響します。
Azure Monitor のカスタム メトリックに関する設計上の制限事項と考慮事項の詳細については、こちらを参照してください。
前提条件
- 1 つ以上の Azure OpenAI Service API を API Management インスタンスに追加する必要があります。 詳細については、「Azure API Management に Azure OpenAI Service API を追加する」を参照してください。
- API Management インスタンスを Application Insights と統合する必要があります。 詳細については、「Azure API Management と Azure Application Insights を統合する方法」を参照してください。
- Azure OpenAI API で Application Insights ログを有効にします。
- Application Insights でディメンションを使用してカスタム メトリックを有効にします。 詳細については、「カスタム メトリックを出力する」を参照してください。
ポリシー ステートメント
<azure-openai-emit-token-metric
namespace="metric namespace" >
<dimension name="dimension name" value="dimension value" />
...additional dimensions...
</azure-openai-emit-token-metric>
属性
属性 | 説明 | 必須 | 規定値 |
---|---|---|---|
namespace | 文字列。 メトリックの名前空間。 ポリシー式は使用できません。 | いいえ | API Management |
要素
要素 | 説明 | 必須 |
---|---|---|
dimension | メトリックに含まれるディメンションごとに、これらの要素を 1 つ以上追加します。 | はい |
dimension の属性
属性 | 説明 | 必須 | 既定値 |
---|---|---|---|
name | 文字列またはポリシー式。 ディメンションの名前。 | はい | 該当なし |
value | 文字列またはポリシー式。 ディメンションの値。 省略できるのは、name が既定のディメンションのいずれかと一致する場合のみです。 その場合、ディメンション名に従って値が指定されます。 |
いいえ | 該当なし |
値なしで使用できる既定のディメンション名
- API ID
- 操作 ID
- Product ID
- User ID
- サブスクリプション ID
- 場所
- ゲートウェイ ID
使用方法
- ポリシー セクション: inbound
- ポリシー スコープ: グローバル、ワークスペース、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド、ワークスペース
使用上の注意
- このポリシーは、ポリシー定義ごとに複数回使用できます。
- このポリシーには、最大 10 個のカスタム ディメンションを構成できます。
- このポリシーは、ポータルを使用して Azure OpenAI Service から API を追加するときに、必要に応じて構成できます。
- 使用可能な場合は、Azure OpenAI Service API からの応答の使用状況セクションの値を使用してトークン メトリックを判別します。
- 特定の Azure OpenAI エンドポイントでは、応答のストリーミングがサポートされています。 ストリーミングを有効にするために API 要求で
stream
がtrue
に設定されている場合、トークン メトリックが推定されます。
例
次の例では、Azure OpenAI トークン数メトリックを API ID と共にカスタム ディメンションとして Application Insights に送信します。
<policies>
<inbound>
<azure-openai-emit-token-metric
namespace="AzureOpenAI">
<dimension name="API ID" />
</azure-openai-emit-token-metric>
</inbound>
<outbound>
</outbound>
</policies>
関連ポリシー
- ログ記録
- emit-metric ポリシー
- azure-openai-token-limit ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。