적용 대상: 모든 API Management 계층
azure-openai-semantic-cache-lookup 정책을 사용하여 이전 요청과 프롬프트의 벡터 근접성 및 지정된 유사성 점수 임계값에 따라 구성된 외부 캐시에서 Azure OpenAI Chat Completion 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-062024-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>
특성
| 특성 | 설명 | 필수 항목 | 기본값 |
|---|---|---|---|
| 점수 임계값 | 점수 임계값은 들어오는 프롬프트가 저장된 응답을 반환하기 위해 캐시된 프롬프트와 얼마나 가깝게 일치해야 하는지를 정의합니다. 값의 범위는 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 요소가 추가되면 값이 연결되어 고유한 조합을 만듭니다. |
아니요 |
사용
사용법 참고 사항
- 이 정책은 정책 섹션에서 한 번만 사용할 수 있습니다.
- 애플리케이션 기반 값을
score-threshold미세 조정하여 적절한 민감도를 사용하여 쿼리에 대해 캐시된 응답을 반환할 시기를 결정합니다. 0.05와 같은 낮은 값으로 시작하고 캐시 적중 횟수의 누락 비율을 최적화하도록 조정합니다. - 점수 임계값이 0.2를 초과하면 캐시 불일치가 발생할 수 있습니다. 중요한 사용 사례에 더 낮은 값을 사용하는 것이 좋습니다.
- 특정 사용자 또는 사용자 그룹 식별자를 사용하여 지정하여
vary-by캐시 항목에 대한 사용자 간 액세스를 제어합니다. - embeddings 모델에는 프롬프트 볼륨 및 프롬프트를 수용하기에 충분한 용량과 충분한 컨텍스트 크기가 있어야 합니다.
- 프롬프트 공격으로부터 보호하기 위해 프롬프트 쉴드를 사용하여 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>
관련 정책
관련 콘텐츠
정책 작업에 대한 자세한 내용은 다음을 참조하세요.
- 자습서: API 변환 및 보호
- 정책 문 및 해당 설정에 대한 전체 목록에 대한 정책 참조
- 정책 식
- 정책 설정 또는 편집
- 정책 구성 재사용
- 정책 코드 조각 리포지토리
- 정책 플레이그라운드 리포지토리
- Azure API Management 정책 도구 키트
- Copilot 지원을 받아 정책을 만들고, 설명하며, 문제를 해결하세요.