Aracılığıyla paylaş


Azure API Management'ta LLM API'leri için anlamsal önbelleğe almayı etkinleştirme

UYGULANANLAR: Tüm API Management katmanları

Arka uç API'lerine uygulanan bant genişliği ve işleme gereksinimlerini azaltmak ve API tüketicileri tarafından algılanan gecikme süresini azaltmak için LLM API isteklerine yönelik yanıtların anlamsal önbelleğe alınmasını etkinleştirin. Anlamsal önbelleğe alma ile, aynı istemler için önbelleğe alınmış yanıtlar ve metin aynı olmasa bile anlam olarak benzer istemler döndürebilirsiniz. Arka plan için bkz: Azure Yönetilen Redis'i anlamsal önbellek olarak kullanma kılavuzu.

Not

Bu makaledeki yapılandırma adımları, Microsoft Foundry modellerinde Azure OpenAI'den API Management'a eklenen API'ler için anlamsal önbelleğe almayı etkinleştirmeyi gösterir. Azure AI Model Çıkarım API'siyle veya üçüncü taraf çıkarım sağlayıcıları aracılığıyla sunulan OpenAI uyumlu modellerle kullanılabilen ilgili büyük dil modeli (LLM) API'leri için anlamsal önbelleğe almayı etkinleştirmek için benzer adımları uygulayabilirsiniz.

Önkoşullar

  • API Management örneğinize API'ler olarak Microsoft Foundry model dağıtımlarında bir veya daha fazla Azure OpenAI ekleyin. Daha fazla bilgi için bkz. Azure API Management'a Azure OpenAI API'sini ekleme.

  • Aşağıdaki API'ler için dağıtımlar oluşturun:

    • Sohbet Tamamlama API'si - API tüketici çağrıları için kullanılan dağıtım
    • Embeddings API - Anlamsal önbelleğe alma için kullanılan dağıtım
  • API Management örneğini Azure OpenAI API'lerine yönetilen kimlik doğrulaması kullanacak şekilde yapılandırın. Daha fazla bilgi için bkz . Azure API Management kullanarak Azure OpenAI API'lerine erişimi doğrulama ve yetkilendirme.

  • Redis önbelleğinde RediSearch modülünün etkinleştirildiği bir Azure Yönetilen Redis örneği.

    Not

    RediSearch modülünü yalnızca yeni bir Azure Yönetilen Redis önbelleği oluştururken etkinleştirebilirsiniz. Mevcut bir önbelleğe modül ekleyemezsiniz. Daha fazla bilgi edinin

  • Azure Yönetilen Redis örneğini Azure API Management örneğinde dış önbellek olarak yapılandırın. Adımlar için bkz . Azure API Management'ta dış Redis uyumlu önbellek kullanma.

Sohbet API'si dağıtımlarını test edin

İlk olarak, Sohbet Tamamlama API'sinin veya Sohbet API'sinin beklendiği gibi çalıştığından emin olmak için Azure OpenAI dağıtımını test edin. Adımlar için bkz . Azure OpenAI API'sini Azure API Management'a aktarma.

Örneğin, istek gövdesinde bir istemle API uç noktasına post isteği göndererek Azure OpenAI Sohbet API'sini test edin. Yanıt, istemin tamamlanmasını içermelidir. Örnek istek:

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

istek gövdesi ile birlikte:

{"messages":[{"role":"user","content":"Hello"}]}

İstek başarılı olduğunda, yanıt sohbet iletisi için bir tamamlama içerir.

Gömme API'si için bir arka uç oluşturun

Aşağıdaki ayarlarla ekleme api'leri dağıtımı için bir arka uç kaynağı oluşturun:

  • Ad - embeddings-backend gibi tercih ettiğiniz bir ad. İlkelerde arka uç referansı vermek için bu adı kullanırsınız.

  • Tür - Özel URL'yi seçin.

  • Çalışma Zamanı URL'si - Azure OpenAI'de ekleme API'si dağıtımının URL'si, şuna benzer: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings (sorgu parametreleri olmadan).

  • Yetkilendirme kimlik bilgileri - Yönetilen Kimlik sekmesine gidin.

    • İstemci kimliği - Sistem tarafından atanan kimlik'i seçin veya kullanıcı tarafından atanan yönetilen kimlik istemci kimliğini girin.
    • Kaynak Kimliği - Azure OpenAI için https://cognitiveservices.azure.com/ girin.

Embedding arka planı test etme

Ekleme arka ucu test etmek için Azure OpenAI API'niz için bir API işlemi oluşturun:

  1. API'nizin Tasarım sekmesinde + İşlem ekle'yi seçin.
  2. Bir Görünen ad girin, örneğin Embeddings, ve işlem için isteğe bağlı olarak bir Ad girebilirsiniz.
  3. In the Frontend bölümünde, URL kısmında POST'u seçin ve / yolunu girin.
  4. Üst Bilgiler sekmesinde, adı Content-Type ve değeri application/json olan gerekli bir üst bilgi ekleyin.
  5. Kaydetseçeneğini seçin.

API işleminin Gelen işleme bölümünde aşağıdaki ilkeleri yapılandırın. Set-backend-service ilkesinde, oluşturduğunuz arka ucun adını kullanın.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

Test sekmesinde, gibi api-versionbir değere sahip bir 2024-02-01 sorgu parametresi ekleyerek işlemi test edin. Geçerli bir talep içeriği sağlayın. Örneğin:

{"input":"Hello"}

İstek başarılı olursa, yanıt giriş metninin vektör gösterimini içerir. Örnek yanıt:

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Anlamsal önbelleğe alma ilkelerini yapılandırma

Azure API Management'ta Azure OpenAI API'leri için anlamsal önbelleğe almayı etkinleştirmek için aşağıdaki ilkeleri uygulayın: istek göndermeden önce önbelleği denetlemek için bir ilke (arama) ve gelecekte yeniden kullanmak üzere yanıtları depolamak için başka bir ilke (depo):

  • API'nin Gelen işleme bölümünde azure-openai-semantic-cache-lookup ilkesini ekleyin. özniteliğinde embeddings-backend-id , oluşturduğunuz Embeddings API arka ucu belirtin.

    Not

    Diğer büyük dil modeli API'leri için anlamsal önbelleğe almayı etkinleştirirken bunun yerine llm-semantic-cache-lookup ilkesini kullanın.

    Örnek:

    <azure-openai-semantic-cache-lookup
        score-threshold="0.15"
        embeddings-backend-id="embeddings-backend"
        embeddings-backend-auth="system-assigned"
        ignore-system-messages="true"
        max-message-count="10">
        <vary-by>@(context.Subscription.Id)</vary-by>
    </azure-openai-semantic-cache-lookup>
    <rate-limit calls="10" renewal-period="60" />
    

    Not

    Önbellek aramasının ardından, çağrı sayısını sınırlamaya ve önbelleğin kullanılabilir olmaması durumunda arka uç hizmetinde aşırı yüklemeyi önlemeye yardımcı olmak için bir hız sınırı ilkesi (veya anahtara göre hız sınırı ilkesi) ekleyin.

  • API'nin Giden işleme bölümünde azure-openai-semantic-cache-store ilkesini ekleyin.

    Not

    Diğer büyük dil modeli API'leri için anlamsal önbelleğe almayı etkinleştirirken bunun yerine llm-semantic-cache-store ilkesini kullanın.

    Örnek:

    <azure-openai-semantic-cache-store duration="60" />
    

Önbelleğe almayı onaylama

Anlamsal önbelleğe alma işleminin beklendiği gibi çalıştığını onaylamak için portaldaki test konsolunu kullanarak test Tamamlama veya Sohbet Tamamlama işlemini izleyin. İzlemeyi inceleyerek önbelleğin sonraki denemelerde kullanıldığını onaylayın. Azure API Management'ta API çağrılarını izleme hakkında daha fazla bilgi edinin.

Arama ilkesindeki score-threshold özniteliğini ayarlayarak, bir gelen istemin önbelleğe alınmış bir istemle ne kadar yakından eşleşmesi gerektiğini ve böylece depolanan yanıtı döndürmesini kontrol edin. Düşük puan eşiği, istemlerin önbelleğe alınmış yanıtları döndürmek için daha yüksek semantik benzerliğe sahip olması gerektiği anlamına gelir. Eşiğin üzerindeki puanlara sahip istemler önbelleğe alınmış yanıtı kullanmaz.

Örneğin, önbellek kullanılıyorsa Çıkış bölümünde aşağıdaki ekran görüntüsüne benzer girdiler bulunur:

Azure portalında istek izleme işleminin ekran görüntüsü.