Azure API Management ile Python için OpenAI'nin ölçeklendirilmesi

Microsoft Foundry belirteci ve model kotası sınırlarındaki Azure OpenAI Modellerinin ötesine sohbet uygulamasını genişletmek için uygulamanıza kurumsal düzeyde yük dengeleme eklemeyi öğrenin. Bu yaklaşım, üç Azure OpenAI kaynağı arasındaki trafiği akıllı bir şekilde yönlendirmek için Azure API Management'ı kullanır.

Bu makalede iki ayrı örnek dağıtmanız gerekir:

  • Sohbet uygulaması:
    • Yük dengeleyici örneği dağıtılana kadar sohbet uygulamasını dağıtmayı bekleyin.
    • Sohbet uygulamasını zaten bir kez dağıttıysanız ortam değişkenini yük dengeleyici için özel bir uç noktayı destekleyecek şekilde değiştirin ve yeniden dağıtın.
  • Azure API Management ile yük dengeleyici.

Not

Bu makalede, makaledeki örnekler ve yönergeler için temel olarak bir veya daha fazla yapay zeka uygulaması şablonu kullanılır. Yapay zeka uygulama şablonları, dağıtımı kolay, iyi bakılmış referans uygulamaları sunar. Yapay zeka uygulamalarınız için yüksek kaliteli bir başlangıç noktası sağlamaya yardımcı olur.

Azure OPENAI'yi Azure API Management ile yük dengeleme mimarisi

Microsoft Foundry'deki Azure OpenAI Modellerinin belirli belirteç ve model kota sınırları olduğundan, tek bir Azure OpenAI kaynağı kullanan bir sohbet uygulaması bu sınırlar nedeniyle konuşma hatalarına neden olabilir.

Azure OpenAI kaynağının vurgulandığı sohbet uygulaması mimarisini gösteren Diyagramı.

Sohbet uygulamasını bu sınırlara girmeden kullanmak için API Management ile yük dengeli bir çözüm kullanın. Bu çözüm, API Management'tan sohbet uygulama sunucunuza tek bir uç noktayı sorunsuz bir şekilde kullanıma sunar.

üç Azure OpenAI kaynağının önünde Azure API Management ile sohbet uygulaması mimarisini gösteren Diyagramı.

API Management kaynağı, API katmanı olarak bir dizi Azure OpenAI kaynağının önünde yer alır. API katmanı iki senaryo için geçerlidir: normal ve kısıtlanmış. Belirteç ve model kotasının kullanılabilir olduğu normal bir senaryo sırasında Azure OpenAI kaynağı API katmanı ve arka uç uygulama sunucusu aracılığıyla 200'leri geri döndürür.

üç Azure OpenAI uç nokta grubuyla normal bir senaryo gösteren Diyagramı. İki uç noktanın ilk grubu başarılı trafik alır.

Bir kaynak, kota sınırları nedeniyle kısıtlandığında, API katmanı, özgün sohbet uygulaması isteğini yerine getirmek için hemen farklı bir Azure OpenAI kaynağını yeniden deneyebilir.

Kısıtlama senaryosunu gösteren diyagramı, 429 hata yanıt kodu ve istemcinin yeniden denemek için beklemesi gereken saniye sayısını belirten yanıt üst bilgisi ile birlikte.

Önkoşullar

Azure API Management yerel dengeleyici örnek uygulamasını açma

GitHub Codespaces, GitHub tarafından yönetilen ve kullanıcı arabirimi olarak Web için Visual Studio Code kullanan bir geliştirme kapsayıcısı çalıştırır. En basit geliştirme ortamı için GitHub Codespaces'ı kullanarak bu makaleyi tamamlamak için doğru geliştirici araçlarını ve bağımlılıklarını önceden yüklemiş olursunuz.

GitHub Codespaces'ta Aç .

Önemli

Tüm GitHub hesapları, iki çekirdek örneğiyle her ay 60 saate kadar ücretsiz gitHub Codespaces kullanabilir. Daha fazla bilgi için bkz. GitHub Codespaces aylık depolama ve çekirdek saatleri kapsamı.

Azure API Management yük dengeleyicisini dağıtma

  1. Yük dengeleyiciyi Azure'a dağıtmak için Azure Geliştirici CLI'sinde (AZD) oturum açın:

    azd auth login
    
  2. Oturum açma yönergelerini tamamlayın.

  3. Yük dengeleyici uygulamasını dağıtma:

    azd up
    

    Dağıtım için bir abonelik ve bölge seçin. Sohbet uygulamasıyla aynı abonelik ve bölge olması gerekmez.

  4. Devam etmeden önce dağıtımın tamamlanmasını bekleyin. Bu işlem 30 dakika kadar sürebilir.

Yük dengeleyici uç noktasını alma

Dağıtımdaki ortam değişkenlerini görmek için aşağıdaki Bash komutunu çalıştırın. Bu bilgiye daha sonra ihtiyacınız olacak.

azd env get-values | grep APIM_GATEWAY_URL

Sohbet uygulamasını yük dengeleyici uç noktasıyla yeniden dağıtma

Bu örnekler sohbet uygulaması örneğinde tamamlanır.

  1. Aşağıdaki seçeneklerden birini kullanarak sohbet uygulaması örneğinin geliştirme kapsayıcısını açın.

    Dil GitHub Codespaces Visual Studio Code
    .NET GitHub Codespaces'da Aç Geliştirme Kapsayıcılarında Aç
    JavaScript GitHub Codespaces'da Aç Geliştirme Kapsayıcılarında Aç
    Piton GitHub Codespaces'da Aç Geliştirme Kapsayıcılarında Aç
  2. Azure Geliştirici CLI'sinde oturum açın (AZD):

    azd auth login
    

    Oturum açma yönergelerini tamamlayın.

  3. AZDadında bir chat-app ortamı oluşturun.

    azd env new <name>
    
  4. Sohbet uygulamasının arka ucuna Azure OpenAI istekleri için özel bir URL kullanmasını bildiren aşağıdaki ortam değişkenini ekleyin:

    azd env set OPENAI_HOST azure_custom
    
  5. Sohbet uygulamasının arka ucuna Azure OpenAI isteği için özel URL'yi bildirmek için bu ortam değişkenini ekleyin:

    azd env set AZURE_OPENAI_CUSTOM_URL <APIM_GATEWAY_URL>
    
  6. Sohbet uygulamasını dağıtın:

    azd up
    

TPM kotasını yapılandırma

Varsayılan olarak, yük dengeleyicideki Microsoft Foundry örneklerindeki Azure OpenAI Modellerinin her biri dakikada 30.000 belirteç (TPM) kapasitesiyle dağıtılır. Sohbet uygulamasını, kota sorunu yaşamadan birçok kullanıcıya uyum sağlayacak şekilde tasarlandığından güvenle kullanabilirsiniz. Şu durumlarda bu değeri değiştirin:

  • Dağıtım kapasitesi hataları alıyorsunuz: Değeri düşürebilirsiniz.
  • Daha yüksek kapasiteye ihtiyacınız var: Değeri yükseltin.
  1. Değeri değiştirmek için aşağıdaki komutu kullanın:

    azd env set OPENAI_CAPACITY 50
    
  2. Yük dengeleyiciyi yeniden dağıtın:

    azd up
    

Kaynakları temizleme

Sohbet uygulaması ve yük dengeleyici ile işiniz bittiğinde kaynakları temizleyin. Bu makalede oluşturulan Azure kaynakları Azure aboneliğinize faturalandırılır. Gelecekte bu kaynaklara ihtiyaç duymayı beklemiyorsanız, daha fazla ücret ödememek için bunları silin.

Sohbet uygulaması kaynaklarını temizleme

Bu kaynakları temizlemek için sohbet uygulaması makalesine dönün.

Yük dengeleyici kaynaklarını temizleme

Azure kaynaklarını silin ve kaynak kodunu kaldırın:

azd down --purge --force

Anahtarlar aşağıdakileri sağlar:

  • purge: Silinen kaynaklar hemen temizlenir. Azure OpenAI belirteçlerini dakika başına yeniden kullanabilirsiniz.
  • force: Silme işlemi kullanıcı onayı gerektirmeden sessizce gerçekleşir.

Kaynakları temizleme

GitHub Codespaces ortamını silmek, hesabınız için elde ettiğiniz ücretsiz çekirdek başına saat yetkilendirmesi miktarını en üst düzeye çıkarmanızı sağlar.

Önemli

GitHub hesabınızın yetkilendirmeleri hakkında daha fazla bilgi için bkz. GitHub Codespaces aylık dahil depolama ve çekirdek saatler.

  1. GitHub Codespaces panosundaoturum açın.

  2. azure-samples/openai-apim-lb GitHub deposundan alınan çalışmakta olan kod alanlarınızı bulun.

    Durumu ve şablonları da dahil olmak üzere çalışan tüm kod boşluklarını gösteren ekran görüntüsü.

  3. GitHub Codespaces öğesinin bağlam menüsünü açın ve Silöğesini seçin.

    Sil seçeneğinin vurgulandığı tek bir kod alanının bağlam menüsünü gösteren ekran görüntüsü.

Yardım alın

Azure API Management yük dengeleyicisini dağıtırken sorun yaşıyorsanız sorununuzu deponun Sorunları web sayfasına ekleyin.

Örnek kod

Bu makalede kullanılan örnekler şunlardır:

  • RAG ile Python sohbet uygulaması
  • Azure API Management ile Azure Load Balancer'ı