Azure Container Apps ile RAG kullanarak JavaScript sohbeti için Azure OpenAI'nin ölçeğini ö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 kılavuzlar için temel olarak bir veya daha fazla yapay zeka uygulaması şablonu kullanılır. Yapay zeka uygulama şablonları, yapay zeka uygulamalarınız için yüksek kaliteli bir başlangıç noktası sağlamaya yardımcı olan, bakımlı, kolay dağıtılan başvuru uygulamaları sağlar.
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.
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 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.
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.
Önkoşullar
Azure aboneliği. Ücretsiz bir tane oluşturun
İstenen Azure aboneliğinde Azure OpenAI'ya erişim verilir.
Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI'ye erişim için başvurabilirsiniz.
Geliştirme kapsayıcıları her iki örnek için de kullanılabilir ve bu makalenin tamamlanması için tüm bağımlılıklar gereklidir. Geliştirme kapsayıcılarını GitHub Codespaces'ta (tarayıcıda) veya Visual Studio Code'u kullanarak yerel olarak çalıştırabilirsiniz.
- GitHub hesabı
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.
Ö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
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ğeri 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 Python Azure Geliştirici CLI'sında (AZD) oturum açın.
azd auth login
Oturum açma yönergelerini tamamlayın.
gibi
chat-app
bir ada sahip bir 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'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>
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
Gruptaki kaynak listesinden Kapsayıcı Uygulaması kaynağını seçin.
Günlüğü görüntülemek için İzleme -> Günlük akışı'nı seçin.
Günlükte trafik oluşturmak için sohbet uygulamasını kullanın.
Azure OpenAI kaynaklarına başvuran günlükleri arayın. Üç kaynağın her biri ile başlayan
Proxying to https://openai3
günlük açıklamasında sayısal kimliğine sahiptir; burada3
üçüncü Azure OpenAI kaynağı gösterilir.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.
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.
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.
GitHub Codespaces panosunda (https://github.com/codespaces ) oturum açın.
GitHub deposundan
azure-samples/openai-aca-lb
alınan şu anda çalışan Codespaces'ınızı bulun.Codespace bağlam menüsünü açın ve sil'i seçin.
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