次の方法で共有


大規模言語モデル API 要求に対するキャッシュされた応答を取得する

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

llm-semantic-cache-lookup ポリシーを使い、以前の要求に対するプロンプトのベクトル近接性と指定した類似性スコアしきい値に基づいて、構成された外部キャッシュから大規模言語モデル (LLM) API の要求に対する応答のキャッシュ検索を実行します。 応答のキャッシュを使用すると、バックエンド LLM API の帯域幅および処理の要件が低減され、API コンシューマーによって認識される遅延が小さくなります。

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

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

Azure AI モデル推論 API またはサードパーティの推論プロバイダーを介して提供される OpenAI と互換性のあるモデルを使用して、Azure API Management に追加された LLM API でポリシーを使用します。

ポリシー ステートメント

<llm-semantic-cache-lookup
    score-threshold="similarity score threshold"
    embeddings-backend-id ="backend entity ID for embeddings API"
    embeddings-backend-auth ="system-assigned"             
    ignore-system-messages="true | false"      
    max-message-count="count" >
    <vary-by>"expression to partition caching"</vary-by>
</llm-semantic-cache-lookup>

属性

属性 説明 必要 既定値
score-threshold キャッシュされた応答をプロンプトに返すかどうかを決定するために使われる類似性スコアのしきい値。 値は 0.0 から 1.0 の間の 10 進数です。 値が小さい方が、セマンティックの類似性が高くなります。 詳細情報。 はい 該当なし
embeddings-backend-id OpenAI 埋め込み API 呼び出しのバックエンド ID。 はい 該当なし
embeddings-backend-auth Azure OpenAI 埋め込み API バックエンドに使われる認証。 はい。 system-assigned に設定する必要があります。 該当なし
ignore-system-messages ブール値。 true (推奨) に設定すると、キャッシュの類似性を評価する前に、GPT チャット完了プロンプトからシステム メッセージが削除されます。 いいえ 偽り
max-message-count 指定した場合、キャッシュがスキップされた後の残りのダイアログ メッセージ数。 いいえ 該当なし

要素

名前 説明 必要
vary-by 実行時に決定されるカスタム式。その値によってキャッシュはパーティション分割されます。 複数の vary-by 要素を追加すると、値が連結され、一意の組み合わせが作成されます。 いいえ

使用法

使用上の注意

  • このポリシーは、ポリシー セクションで 1 回だけ使用できます。
  • キャッシュするクエリを決定するときに適切な秘密度が使用されるように、アプリケーションに基づいて score-threshold の値を微調整します。 0.05 などの低い値から始めて、キャッシュ ヒットとミスの比率を最適化するように調整します。
  • 埋め込みモデルには、プロンプトのボリュームとプロンプトに対応できる十分な容量と十分なコンテキスト サイズが必要です。
  • スコアのしきい値が 0.2 を超える場合、キャッシュの不一致が発生する可能性があります。 機密性の高いユース ケースには、より小さい値を使用することを検討してください。
  • vary-by特定のユーザーまたはユーザー グループ識別子を指定して、キャッシュ エントリへのユーザー間アクセスを制御します。
  • プロンプト攻撃から保護するために、プロンプト シールド付きの llm-content-safety ポリシーを追加することを検討してください。

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

<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>
    </inbound>
    <outbound>
        <llm-semantic-cache-store duration="60" />
        <base />
    </outbound>
</policies>

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