大規模言語モデル API 要求への応答をキャッシュする

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

llm-semantic-cache-store ポリシーは、構成された外部キャッシュに対するチャット完了 API 要求への応答をキャッシュします。 応答のキャッシュを使用すると、バックエンド Azure OpenAI API の帯域幅および処理の要件が低減され、API コンシューマーによって認識される遅延が小さくなります。

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

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

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

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

ポリシー ステートメント

<llm-semantic-cache-store duration="seconds"/>

属性

属性 説明 必要 既定値
期間 キャッシュに格納されたエントリの有効期間 (秒単位)。 ポリシー式を使用できます。 はい 該当なし

使用法

使用上の注意

  • このポリシーは、ポリシー セクションで 1 回だけ使用できます。
  • キャッシュ参照が失敗した場合、キャッシュ関連の操作を使用する API 呼び出しでエラーは発生せず、キャッシュ操作が正常に完了します。
  • キャッシュ検索の直後に レート制限 ポリシー (または キーごとのレート制限 ポリシー) を構成することをお勧めします。 これにより、キャッシュが使用できない場合にバックエンド サービスが過負荷にならないようにすることができます。

対応する llm-semantic-cache-lookup ポリシーの例

次の例では、 llm-semantic-cache-lookup ポリシーと llm-semantic-cache-store ポリシーを使用して、類似性スコアのしきい値が 0.05 のセマンティックに類似したキャッシュされた応答を取得する方法を示します。 キャッシュされた値は、呼び出し元のサブスクリプション ID によってパーティション分割されます。

キャッシュ検索後に レートリミ ットポリシー(または キー別レートリミ ットポリシー)を追加し、呼び出し数を制限し、キャッシュが利用できない場合にバックエンドサービスの過負荷を防ぎます。

<policies>
    <inbound>
        <base />
        <llm-semantic-cache-lookup
            score-threshold="0.05"
            embeddings-backend-id ="llm-backend"
            embeddings-backend-auth ="system-assigned" >
            <vary-by>@(context.Subscription.Id)</vary-by>
        </llm-semantic-cache-lookup>
        <rate-limit calls="10" renewal-period="60" />
    </inbound>
    <outbound>
        <llm-semantic-cache-store duration="60" />
        <base />
    </outbound>
</policies>

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