Aracılığıyla paylaş


Azure Container Apps ile RAG kullanarak JavaScript sohbeti için Azure OpenAI'nin ölçeğini ölçeklendirme

Sohbet uygulamasını Azure OpenAI Hizmeti belirteci ve model kotası sınırlarının ötesine genişletmek için uygulamanıza yük dengeleme eklemeyi öğrenin. Bu yaklaşım, gelen trafiği üç uç noktadan birine yönlendirmek üzere üç Azure OpenAI uç noktası ve birincil kapsayıcı oluşturmak için Azure Container Apps'i 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ştirin ve yeniden dağıtın.

    • Sohbet uygulaması şu dillerde kullanılabilir:

      • .NET
      • JavaScript
      • Python
  • Yük dengeleyici uygulaması

Not

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

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ırlar nedeniyle konuşma hatalarına neden olur.

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

Sohbet uygulamasını bu sınırlara girmeden kullanmak için Container Apps ile yük dengeli bir çözüm kullanın. Bu çözüm, 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ı.

Kapsayıcı uygulaması, Azure OpenAI kaynaklarının önünde konumlanmıştır. Kapsayıcı uygulaması iki senaryoyu çözer: normal ve hız sınırlandırılmış. tr-TR: Normal bir senaryo sırasında belirteç ve model kotasının kullanılabilir olduğu durumlarda, Azure OpenAI kaynağı, kapsayıcı uygulaması ve uygulama sunucusu aracılığıyla 200 döner.

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.

Kaynak, kota sınırları nedeniyle kısıtlanmış bir senaryoda olduğunda, konteyner uygulaması özgün sohbet uygulaması isteğini karşılamak için farklı bir Azure OpenAI kaynağını kullanarak hemen yeniden deneyebilir.

429 başarısız yanıt kodu ve istemcinin yeniden denemek için kaç saniye beklemesi gerektiğini gösteren bir yanıt üst bilgisi içeren bir sınırlama senaryosunu gösteren Diyagramı.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturun

  • Geliştirme kapsayıcıları, her iki örnek için de mevcuttur ve bu makalenin tamamlanması için gerekli tüm bağımlılıkları içermektedir. Geliştirme kapsayıcılarını GitHub Codespaces'ta (tarayıcıda) veya Visual Studio Code'u kullanarak yerel olarak çalıştırabilirsiniz.

    • Codespaces (önerilen)
    • Visual Studio Code
    • GitHub hesabı.

Container Apps yük dengeleyici örnek uygulamasını açma

GitHub Codespaces, Web için Visual Studio Code'u kullanıcı arayüzü olarak kullanarak 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ı, iki çekirdek örneğiyle her ay 60 saate kadar ücretsiz gitHub Codespaces kullanabilir. Daha fazla bilgi için bkz. GitHub Codespaces aylık dahil depolama ve çekirdek saatler.

Azure Container Apps yük dengeleyicisini dağıtma

  1. 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
    
  2. 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"
    
  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.

Dağıtım uç noktasını alma

  1. Kapsayıcı uygulaması için dağıtılan uç noktayı görüntülemek için aşağıdaki komutu kullanın:

    azd env get-values
    
  2. CONTAINER_APP_URL Değerini kopyalayın. Sonraki bölümde kullanacaksınız.

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 Open in GitHub CodespacesGitHub Codespaces'ta aç Geliştirme Kapsayıcılarında Aç
    JavaScript Open in GitHub CodespacesGitHub Codespaces'ta aç Geliştirme Kapsayıcılarında Aç
    Piton Open in GitHub CodespacesGitHub Codespaces'ta 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. AZDgibi bir isimle 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. Aşağıdaki ortam değişkenini ekleyin. Önceki bölümdeki URL'nin yerine <CONTAINER_APP_URL> kullanın. Bu eylem, sohbet uygulamasının arka ucuna Azure 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
    

Sohbet uygulamasını, birçok kullanıcı arasında kotası dolmadan güvenle ölçeklendirebildiğini bilerek kullanın.

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 Azure Container Apps kaynağını seçin.

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

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

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

    Azure Container Apps akış günlüklerini gösteren, günlük açıklamalarını göstermek için iki günlük satırının vurgulandığı ekran görüntüsü.

Yük dengeleyici isteğin kotayı aştığını belirten bir durum 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ı, 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

Kaynakları temizlemek için sohbet uygulaması makalesine dönün:

  • .NET
  • JavaScript
  • Python

Yük dengeleyici kaynaklarını temizle

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, böylece Azure OpenAI Hizmeti belirteçlerini dakikada yeniden kullanabilirsiniz.
  • force: Silme işlemi, kullanıcı onayı gerektirmeden sessizce gerçekleşir.

GitHub Codespaces ve Visual Studio Code'ı temizleme

  • GitHub Codespaces
  • Visual Studio Code

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 hakları hakkında daha fazla bilgi için GitHub Codespaces aylık dahil edilen depolama ve çekirdek saatler'e bakın.

  1. GitHub Codespaces kontrol panelinegiriş yapın.

  2. azure-samples/openai-aca-lb GitHub deposundan alınan şu anda çalışan 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. codespace 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 Container Apps 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:

  • JavaScript sohbet uygulaması RAG ile
  • Azure Container Apps ile Yük Dengeleyici

Sonraki adım

  • Azure Load Testing Service ile sohbet uygulamanızı yük testine tabi tutmak için Azure Load Testing kullanın.