다음을 통해 공유


Azure OpenAI API 요청의 캐시된 응답 가져오기

적용 대상: 모든 API Management 계층

azure-openai-semantic-cache-lookup 정책을 사용하여 이전 요청과 프롬프트의 벡터 근접성 및 지정된 유사성 점수 임계값에 따라 구성된 외부 캐시에서 Azure OpenAI Chat Completion API 요청에 대한 응답의 캐시 조회를 수행합니다. 응답 캐싱은 백 엔드 Azure OpenAI API에 적용되는 대역폭 및 처리 요구 사항을 줄이고 API 소비자가 인지하는 대기 시간을 낮춥니다.

참고 항목

참고 항목

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

Azure AI Foundry 모델에서 지원되는 Azure OpenAI

이 정책은 다음 유형의 AI Foundry 모델에서 Azure OpenAI의 API Management에 추가된 API 와 함께 사용됩니다.

API 형식 지원되는 모델
채팅 완료 gpt-3.5

gpt-4

gpt-4o

gpt-4o-mini

o1

o3
포함 text-embedding-3-large

text-embedding-3-small

text-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>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.