大規模言語モデル トークンを使用するためのメトリックを送信する

適用対象: すべての API Management レベル

llm-emit-token-metric ポリシーは、LLM API を介した大規模言語モデル (LLM) トークンの使用に関するカスタム メトリックを Application Insights に送信します。 トークン数のメトリックには、合計トークン、プロンプト トークン、完了トークンが含まれます。

Note

ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。

サポートされているモデル API

このポリシーは、次のいずれかの API スキーマに準拠する API Management に追加された LLM API で動作します。

  • OpenAI チャットの完了または応答 API
  • Anthropic Messages API (現在、API Management v2 レベルでサポートされています)

カスタム メトリックの制限

Azure Monitor では、API Management からメトリックを出力する機能に影響を与える可能性があるカスタム メトリックに対して使用制限が課されます。 たとえば、現在 Azure Monitor では、メトリックあたりで 10 ディメンション キーの制限と、サブスクリプション内のリージョンあたりでアクティブな時系列に合計 50,000 の制限 (12 時間以内) が設定されています。 API Management では、以下を含む既定のディメンションには、これらのうち 5 つが使用されます。

  • Region
  • サービス識別子
  • サービス名
  • サービスの種類

これらの制限により、API Management ポリシーでカスタム メトリック (emit-metricazure-openai-emit-token-metric など) を構成する場合に次のような影響があります。

  • ポリシーごとに最大 5 つのカスタム ディメンションを構成できます。

  • 12 時間以内に ポリシーで生成されるアクティブな時系列の数は、期間中に構成された各ディメンションで一意な値の数の積です。 たとえば、ポリシーで 3 つのカスタム ディメンションが構成され、各ディメンションが期間内に 10 の使用可能な値を持つ場合、 ポリシーは 1,000 (10 x 10 x 10) のアクティブな時系列を提供します。

  • サブスクリプション内の同じリージョンにある複数の API Management インスタンスで ポリシーを構成した場合、すべてのインスタンスがリージョンのアクティブな時系列の制限に影響します。

Azure Monitor のカスタム メトリックに関する設計上の制限事項と考慮事項の詳細については、こちらを参照してください。

Prerequisites

ポリシー ステートメント

<llm-emit-token-metric
        namespace="metric namespace" >      
        <dimension name="dimension name" value="dimension value" />
        ...additional dimensions...
</llm-emit-token-metric>

Attributes

Attribute Description Required 既定値
名前空間 文字列。 メトリックの名前空間。 ポリシー式は使用できません。 No API Management

Elements

Element Description Required
dimension メトリックに含まれるディメンションごとに、これらの要素を 1 つ以上追加します。 Yes

ディメンション属性

Attribute Description Required 既定値
name 文字列またはポリシー式。 ディメンションの名前。 Yes N/A
value 文字列またはポリシー式。 ディメンションの値。 省略できるのは、name が既定のディメンションのいずれかと一致する場合のみです。 その場合、ディメンション名に従って値が指定されます。 No N/A

値なしで使用できる既定のディメンション名

  • API ID(API識別子)
  • 操作 ID
  • 製品ID
  • ユーザーID
  • サブスクリプション ID
  • Location
  • ゲートウェイ ID
  • バックエンド ID

Usage

使用に関する注記

  • このポリシーは、ポリシー定義ごとに複数回使用できます。
  • このポリシーには、最大 5 つのカスタム ディメンションを構成できます。
  • 使用可能な場合は、LLM API からの応答の使用状況セクションの値を使用してトークン メトリックを判別します。
  • 特定の LLM エンドポイントでは、応答のストリーミングがサポートされています。 ストリーミングを有効にするために API 要求で streamtrue に設定されている場合、トークン メトリックが推定されます。

Example

次の例では、既定のディメンションとして API ID と共に、LLM トークン数メトリックを Application Insights に送信します。

<policies>
  <inbound>
      <llm-emit-token-metric
            namespace="MyLLM">   
            <dimension name="API ID" />
        </llm-emit-token-metric> 
  </inbound>
  <outbound>
  </outbound>
</policies>

ポリシーに対する処理の詳細については、次のトピックを参照してください。