適用対象: すべての API Management レベル
azure-openai-semantic-cache-lookup ポリシーを使用して、構成された外部キャッシュからの Azure OpenAI チャット完了 API 要求に対する応答のキャッシュ 検索を実行します。これは、以前の要求に対するプロンプトのベクトル近接性と、指定された類似性スコアのしきい値に基づいています。 応答のキャッシュを使用すると、バックエンド Azure OpenAI API の帯域幅および処理の要件が低減され、API コンシューマーによって認識される遅延が小さくなります。
注
- このポリシーには、対応する "Azure OpenAI API 要求に対する応答をキャッシュする" ポリシーが必要です。
- セマンティック キャッシュを有効にする前提条件と手順については、「 Azure API Management で LLM API のセマンティック キャッシュを有効にする」を参照してください。
注
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
Azure AI Foundry モデルでサポートされている Azure OpenAI
このポリシーは、次の種類の AI Foundry モデルで Azure OpenAI から API Management に追加された API と共に使用されます。
| [API の種類] | サポートされているモデル |
|---|---|
| チャット入力候補 | gpt-3.5gpt-4gpt-4ogpt-4o-minio1o3 |
| 埋め込み | text-embedding-3-largetext-embedding-3-smalltext-embedding-ada-002 |
| 応答 (プレビュー) |
gpt-4o (バージョン: 2024-11-20、 2024-08-06、 2024-05-13)gpt-4o-mini (バージョン: 2024-07-18)gpt-4.1 (バージョン: 2025-04-14)gpt-4.1-nano (バージョン: 2025-04-14)gpt-4.1-mini (バージョン: 2025-04-14)gpt-image-1 (バージョン: 2025-04-15)o3 (バージョン: 2025-04-16)o4-mini (バージョン: '2025-04-16) |
注
従来の完了 API は、従来のモデル バージョンでのみ使用でき、サポートは制限されています。
モデルとその機能の最新の情報については、「 Foundry モデルの Azure OpenAI」を参照してください。
ポリシー ステートメント
<azure-openai-semantic-cache-lookup
score-threshold="score threshold to return cached response"
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>
</azure-openai-semantic-cache-lookup>
属性
| 属性 | 説明 | 必要 | 既定値 |
|---|---|---|---|
| score-threshold | スコアのしきい値は、格納されている応答を返すために、受信プロンプトがキャッシュされたプロンプトとどの程度一致する必要があるかを定義します。 値の範囲は 0.0 から 1.0 です。 値を小さくすると、一致するセマンティックの類似性が高くなります。 詳細情報。 | はい | 該当なし |
| embeddings-backend-id | バックエンド 埋め込み API 呼び出しの ID。 | はい | 該当なし |
| embeddings-backend-auth | API バックエンドの埋め込みに使用される認証。 | はい。
system-assigned に設定する必要があります。 |
該当なし |
| ignore-system-messages | ブール値。
true (推奨) に設定すると、キャッシュの類似性を評価する前に、チャット完了プロンプトからシステム メッセージを削除します。 |
いいえ | 偽り |
| max-message-count | 指定した場合、キャッシュがスキップされた後の残りのダイアログ メッセージ数。 | いいえ | 該当なし |
要素
| 名前 | 説明 | 必要 |
|---|---|---|
| vary-by | 実行時に決定されるカスタム式。その値によってキャッシュはパーティション分割されます。 複数の vary-by 要素を追加すると、値が連結され、一意の組み合わせが作成されます。 |
いいえ |
使用法
- ポリシー セクション: inbound
- ポリシー スコープ: グローバル、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド
使用上の注意
- このポリシーは、ポリシー セクションで 1 回だけ使用できます。
- アプリケーションに基づいて
score-thresholdの値を微調整し、クエリに対してキャッシュされた応答を返すタイミングを決定するために適切な秘密度が使用されるようにします。 0.05 などの低い値から始めて、キャッシュ ヒットとミスの比率を最適化するように調整します。 - スコアのしきい値が 0.2 を超える場合、キャッシュの不一致が発生する可能性があります。 機密性の高いユース ケースには、より小さい値を使用することを検討してください。
- 特定のユーザーまたはユーザー グループの識別子を使用して
vary-byを指定して、キャッシュ エントリへのクロスユーザー アクセスを制御します。 - 埋め込みモデルには、プロンプトのボリュームとプロンプトに対応できる十分な容量と十分なコンテキスト サイズが必要です。
- プロンプト攻撃から保護するために、プロンプト シールド付きの llm-content-safety ポリシーを追加することを検討してください。
- キャッシュ検索の直後に レート制限 ポリシー (または キーごとのレート制限 ポリシー) を構成することをお勧めします。 これにより、キャッシュが使用できない場合にバックエンド サービスが過負荷にならないようにすることができます。
例
対応する azure-openai-semantic-cache-store ポリシーの例
次の例では、 azure-openai-semantic-cache-lookup ポリシーと azure-openai-semantic-cache-store ポリシーを使用して、類似性スコアのしきい値が 0.05 のセマンティックに類似したキャッシュされた応答を取得する方法を示します。 キャッシュされた値は、呼び出し元のサブスクリプション ID によってパーティション分割されます。
注
キャッシュ参照の後に追加される レート制限 ポリシーは、キャッシュが使用できない場合にバックエンド サービスでのオーバーロードを防ぐために呼び出しの数を制限するのに役立ちます。
<policies>
<inbound>
<base />
<azure-openai-semantic-cache-lookup
score-threshold="0.05"
embeddings-backend-id ="azure-openai-backend"
embeddings-backend-auth ="system-assigned" >
<vary-by>@(context.Subscription.Id)</vary-by>
</azure-openai-semantic-cache-lookup>
<rate-limit calls="10" renewal-period="60" />
</inbound>
<outbound>
<azure-openai-semantic-cache-store duration="60" />
<base />
</outbound>
</policies>
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。