Aracılığıyla paylaş


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

ŞUNLAR IÇIN GEÇERLIDIR: Temel v2 | Standart v2

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 Azure OpenAI 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. Öğretici: Redis için Azure Cache anlamsal önbellek olarak kullanma.

Not

Bu makaledeki yapılandırma adımları, Azure OpenAI API'leri için anlamsal önbelleğe almayı etkinleştirir. Bu adımlar, Azure AI Modeli Çıkarım API'sinde kullanılabilen ilgili büyük dil modeli (LLM) API'leri için anlamsal önbelleğe almayı etkinleştirmek üzere genelleştirilebilir.

Önkoşullar

  • API Management örneğinize bir veya daha fazla Azure OpenAI Hizmeti API'si eklenmelidir. Daha fazla bilgi için bkz . Azure API Management'a Azure OpenAI Hizmeti API'sini ekleme.
  • Azure OpenAI hizmetinin aşağıdakiler için dağıtımları olmalıdır:
    • Sohbet Tamamlama API'si (veya 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ği, Azure OpenAI API'leri için yönetilen kimlik kimlik doğrulamasını kullanacak şekilde yapılandırılmalıdır. Daha fazla bilgi için bkz . Azure API Management kullanarak Azure OpenAI API'lerine erişimi doğrulama ve yetkilendirme.
  • Redis için Azure Cache Enterprise. RediSearch modülü Redis Enterprise önbelleğinde etkinleştirilmelidir.

    Not

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

  • Azure API Management örneğinde yapılandırılan dış önbellek. Adımlar için bkz. Azure API Management'ta dış Redis için Azure Cache 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:

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

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

Ekleme API'si için arka uç oluşturma

Eklemeler API'sinin dağıtımı için aşağıdaki ayarlarla bir arka uç kaynağı yapılandırın:

  • Ad - Seçtiğiniz bir ad, örneğin embeddings-backend. İlkelerde arka uça başvurmak için bu adı kullanırsınız.
  • Tür - Özel URL'yi seçin.
  • Çalışma Zamanı URL'si - Azure OpenAI Hizmeti'nde ekleme API'si dağıtımının URL'si, şuna benzer: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

Arka ucu test et

Arka ucu test etmek için Azure OpenAI Hizmeti 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 ve isteğe bağlı olarak işlem için bir Ad girin.
  3. Ön uç bölümündeki URL'de POST'ı seçin ve yolunu /girin.
  4. Üst Bilgiler sekmesinde, adı Content-Type ve değeriyle application/jsongerekli bir üst bilgi ekleyin.
  5. Kaydet'i 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 2024-02-01bir değere sahip bir api-version sorgu parametresi ekleyerek işlemi test edin. Geçerli bir istek gövdesi sağlayın. Örneğin:

{"input":"Hello"}

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

{
    "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 yapılandırın:

  • 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.8"
        embeddings-backend-id="embeddings-deployment"
        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>
    
    
  • 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.

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

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