適用対象: すべての API Management レベル
llm-semantic-cache-lookup
ポリシーを使い、以前の要求に対するプロンプトのベクトル近接性と指定した類似性スコアしきい値に基づいて、構成された外部キャッシュから大規模言語モデル (LLM) API の要求に対する応答のキャッシュ検索を実行します。 応答のキャッシュを使用すると、バックエンド LLM API の帯域幅および処理の要件が低減され、API コンシューマーによって認識される遅延が小さくなります。
注
- このポリシーには、対応する "大規模言語モデル API 要求への応答をキャッシュする" ポリシーが必要です。
- セマンティック キャッシュを有効にする前提条件と手順については、Azure API Management で Azure OpenAI 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 要素を追加すると、値が連結され、一意の組み合わせが作成されます。 |
いいえ |
使用法
- ポリシー セクション: inbound
- ポリシー スコープ: グローバル、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金
使用上の注意
- このポリシーは、ポリシー セクションで 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>
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。