Azure Container Apps ile RAG kullanarak Java sohbeti için Azure OpenAI'i ölçeklendirme

Sohbet uygulamasını Azure OpenAI belirteci ve model kotası sınırlarının ötesine genişletmek için uygulamanıza yük dengeleme eklemeyi öğrenin. Bu yaklaşım, üç Azure OpenAI uç noktası oluşturmak için Azure Container Apps'i ve gelen trafiği üç uç noktadan birine yönlendirmek için birincil kapsayıcıyı kullanır.

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

  • Sohbet uygulaması

    • Sohbet uygulamasını henüz dağıtmıyorsanız yük dengeleyici örneği dağıtılana kadar 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ştirecek ve yeniden dağıtacaksınız.

    • Sohbet uygulaması şu dillerde kullanılabilir:

  • Yük dengeleyici uygulaması

Azure Container Apps ile Azure OpenAI yük dengeleme mimarisi

Azure OpenAI kaynağı belirli belirteç ve model kota sınırlarına sahip olduğundan, tek bir Azure OpenAI kaynağı kullanan bir sohbet uygulaması bu sınırlardan dolayı 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 uymadan kullanmak için Azure Container Apps ile yük dengeli bir çözüm kullanın. Bu çözüm, Azure Container Apps'ten sohbet uygulama sunucunuza tek bir uç noktayı sorunsuz bir şekilde kullanıma sunar.

Üç Azure OpenAI kaynağının önünde Azure Container Apps ile sohbet uygulaması mimarisini gösteren diyagram.

Azure Container uygulaması, bir dizi Azure OpenAI kaynağının önünde yer alır. Kapsayıcı uygulaması iki senaryoyu çözer: normal ve kısıtlanmış. Belirteç ve model kotasının kullanılabilir olduğu normal bir senaryoda , Azure OpenAI kaynağı Container App ve App Server aracılığıyla 200 değerini döndürür.

Normal bir senaryo gösteren diyagram. Normal senaryoda, iki uç noktanın ilk grubu başarılı trafik alan üç Azure OpenAI uç noktası grubu gösterilir.

Bir kaynak kota sınırları gibi kısıtlanmış bir senaryoda olduğunda, Azure Container uygulaması özgün sohbet uygulaması isteğini tam olarak yerine getirmek için farklı bir Azure OpenAI kaynağını hemen yeniden deneyebilir.

429 başarısız yanıt kodu ve istemcinin yeniden denemek için kaç saniye beklemesi gereken yanıt üst bilgisi ile azaltma senaryolarını gösteren diyagram.

Önkoşullar

Kapsayıcı uygulamaları yerel dengeleyici örnek uygulamasını açma

GitHub Codespaces, Kullanıcı arabirimi olarak Web için Visual Studio Code ile GitHub tarafından yönetilen 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ı Codespaces'ı her ay 2 çekirdek örneğiyle 60 saate kadar ücretsiz olarak kullanabilir. Daha fazla bilgi için bkz . GitHub Codespaces aylık dahil depolama ve çekirdek saatler.

Azure Container Apps yük dengeleyiciyi dağıtma

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

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

  3. Yük dengeleyici uygulamasını dağıtın.

    azd up
    

    Dağıtım için bir abonelik ve bölge seçmeniz gerekir. Bunların sohbet uygulamasıyla aynı abonelik ve bölge olması gerekmez.

  4. Devam etmeden önce dağıtımın tamamlanmasını bekleyin.

  5. Dağıtımın sonunda uç nokta adlı URL'yi alın. Bu, CONTAINER_APP_URL sonraki bölümde kullanılandır.

Yük dengeleyici uç noktası ile Sohbet uygulamasını yeniden dağıtma

Bunlar 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 Codespaces Visual Studio Code
    .NET GitHub Codespaces'ta aç Geliştirme Kapsayıcılarında Aç
    JavaScript GitHub Codespaces'ta aç Geliştirme Kapsayıcılarında Aç
    Python GitHub Codespaces'ta aç Geliştirme Kapsayıcılarında Aç
  2. Azure Geliştirici CLI'sında (AZD) oturum açın.

    azd auth login
    

    Oturum açma yönergelerini tamamlayın.

  3. gibi chat-appbir ada sahip bir AZD ortamı oluşturun.

    azd env new <name>
    
  4. Sohbet uygulamasının arka ucuna 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. Önceki bölümdeki URL'nin yerine <CONTAINER_APP_URL> aşağıdaki ortam değişkenini ekleyin. Bu eylem, Sohbet uygulamasının arka ucuna OpenAI isteği için özel URL'nin değerini bildirir.

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

    azd up
    

Artık sohbet uygulamasını, kotası dolmadan birçok kullanıcı arasında ölçeklendirilecek şekilde oluşturulduğundan güvenle kullanabilirsiniz.

Yük dengeleyici sonuçlarını görmek için günlükleri akışla aktarma

  1. Azure portalında kaynak grubunuzda arama yapın.

  2. Gruptaki kaynak listesinden Kapsayıcı Uygulaması kaynağını seçin.

  3. Günlüğü görüntülemek için İzleme -> Günlük akışı'nı seçin.

  4. Günlükte trafik oluşturmak için sohbet uygulamasını kullanın.

  5. Azure OpenAI kaynaklarına başvuran günlükleri arayın. Üç kaynağın her biri ile başlayan Proxying to https://openai3günlük açıklamasında sayısal kimliğine sahiptir; burada 3 üçüncü Azure OpenAI kaynağı gösterilir.

    Günlük açıklamasını gösteren iki günlük satırı yüksek ışıklı Azure Container App akış günlüklerini gösteren ekran görüntüsü.

  6. Sohbet uygulamasını kullanırken yük dengeleyici isteğin kotayı aştığını belirten durumu aldığında yük dengeleyici otomatik olarak başka bir kaynağa döner.

Dakika başına belirteç kotasını (TPM) yapılandırma

Varsayılan olarak, yük dengeleyicideki OpenAI örneklerinin her biri 30.000 TPM (dakika başına belirteç) kapasitesiyle dağıtılır. Sohbet uygulamasını, kotası dolmadan birçok kullanıcı arasında ölçeklendirilecek şekilde oluşturulduğundan güvenle kullanabilirsiniz. Şu durumlarda bu değeri değiştirin:

  • Dağıtım kapasitesi hataları alırsınız: bu değeri düşürebilirsiniz.
  • Daha yüksek kapasite planlama, değeri yükseltme.
  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

Hem sohbet uygulaması hem de 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.

Karşıya yükleme dengeleyici kaynaklarını temizleme

Azure kaynaklarını silmek ve kaynak kodu kaldırmak için aşağıdaki Azure Geliştirici CLI komutunu çalıştırın:

azd down --purge --force

Anahtarlar aşağıdakileri sağlar:

  • purge: Silinen kaynaklar hemen temizlenir. Bu, Azure OpenAI TPM'yi yeniden kullanmanıza olanak tanır.
  • force: Silme işlemi, kullanıcı onayı gerektirmeden sessizce gerçekleşir.

GitHub Codespaces'i 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 panosunda (https://github.com/codespaces ) oturum açın.

  2. GitHub deposundan azure-samples/openai-aca-lb alınan şu anda çalışan Codespaces'ınızı bulun.

    Durumları ve şablonları da dahil olmak üzere çalışan tüm Codespace'lerin ekran görüntüsü.

  3. Codespace bağlam menüsünü açın ve sil'i seçin.

    Silme seçeneğinin vurgulandığı tek bir kod alanının bağlam menüsünün 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ı'na kaydedin.

Örnek kod

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

Sonraki adım

  • Sohbet uygulamanızı yük testi için Azure Load Testing'i kullanma