Azure Container Apps ile RAG kullanarak .NET 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 iki 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ı
Not
Bu makalede, makaledeki örnekler ve yönergeler için temel olarak bir veya daha fazla
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
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
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 senaryo gösteren diyagram
Bir kaynak kota sınırları gibi
Önkoşullar
Azure aboneliği. Bir tane ücretsiz oluşturun
İstenen Azure aboneliğinde Azure OpenAI'ye erişim izni verilir.
Şu anda bu hizmete erişim yalnızca uygulama tarafından verilmiştir. Azure OpenAI'ye erişim için
başvurmanız gerekir. Geliştirme kapsayıcıları her iki örnek için de kullanılabilir ve bu makaleyi tamamlamak için gereken tüm bağımlılıklar vardır. Geliştirme kapsayıcılarını GitHub Codespaces'ta (tarayıcıda) veya Visual Studio Code'u kullanarak yerel olarak çalıştırabilirsiniz.
- CodeSpaces'i kullanmak için yalnızca GitHub hesabı gerekir
Kapsayıcı uygulamaları yerel dengeleyici örnek uygulamasını açma
Ö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 olarak dahil edilen depolama ve çekirdek saatler.
Azure Container Apps yük dengeleyiciyi dağıtma
Sağlama ve dağıtım adımlarında kimlik doğrulaması sağlamak için Azure Geliştirici CLI'sinde oturum açın.
azd auth login --use-device-code
Sağlama sonrası adımında Azure CLI kimlik doğrulamasını kullanmak için bir ortam değişkeni ayarlayın.
azd config set auth.useAzCliAuth "true"
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.
Devam etmeden önce dağıtımın tamamlanmasını bekleyin.
Dağıtım uç noktasını alma
Azure Container uygulaması için dağıtılan uç noktayı görüntülemek için aşağıdaki komutu kullanın.
azd env get-values
CONTAINER_APP_URL
değerini kopyalayın. Sonraki bölümde kullanacaksınız.
Yük dengeleyici uç noktası ile Sohbet uygulamasını yeniden dağıtma
Bunlar sohbet uygulaması örneğinde tamamlanır.
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 JavaScript GitHub Codespaces'da Aç Piton Azure Geliştirici CLI'sında (AZD) oturum açın.
azd auth login
Oturum açma yönergelerini tamamlayın.
chat-app
gibi bir adla AZD ortamı oluşturun.azd env new <name>
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
Önceki bölümdeki URL için
<CONTAINER_APP_URL>
değiştirerek 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>
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ış olarak izle
Azure portalındakaynak grubunuzda arama yapın.
Gruptaki kaynak listesinden Kapsayıcı Uygulaması kaynağını seçin.
günlüğü görüntülemek için İzleme -> Günlük akışı seçin.
Günlükte trafik oluşturmak için sohbet uygulamasını kullanın.
Azure OpenAI kaynaklarına referans veren günlükleri arayın. Üç kaynağın her biri,
Proxying to https://openai3
ile başlayan günlük açıklamasında sayısal kimliğine sahiptir; burada3
üçüncü Azure OpenAI kaynağını gösterir.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.
TPM kotasını yapılandırma
Varsayılan olarak, yük dengeleyicideki Azure OpenAI örneklerinin her biri dakikada 30.000 belirteç (TPM) 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ıyorsunuz: Değeri düşürebilirsiniz.
- Daha yüksek kapasiteye ihtiyacınız var: Değeri yükseltin.
Değeri değiştirmek için aşağıdaki komutu kullanın:
azd env set OPENAI_CAPACITY 50
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.
Yükleme Dengeleyici kaynaklarını temizle
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 ayrıcalıkları hakkında daha fazla bilgi için bkz. GitHub Codespaces aylık olarak dahil edilen depolama ve çekirdek saatler.
GitHub Codespaces panosunda (https://github.com/codespaces) oturum açın.
azure-samples/openai-aca-lb
GitHub deposundan alınan şu anda çalışan Codespaces'ınızı bulun.codespace bağlam menüsünü açın ve Silöğesini seçin.
Yardım alın
Azure API Management yük dengeleyicisini dağıtırken sorun yaşıyorsanız, sorununuzu deponun Sorunlarkısmına kaydedin.
Örnek kod
Bu makalede kullanılan örnekler şunlardır:
- RAG ile .NET sohbet uygulaması
- Yük Dengeleyici ile Azure Container Apps
Sonraki adım
- Sohbet uygulamanızı yük testi için Azure Load Testing kullanma