Python için sohbet özel uç noktalarını kullanmaya başlama

Bu makalede, özel uç noktalar tarafından erişilebilen Python için kurumsal sohbet uygulaması örneğinin nasıl dağıtılacağı ve çalıştırılacağı gösterilmektedir.

Bu örnek, kurgusal bir şirkette çalışan avantajları hakkında yanıtlar almak için Azure Yapay Zeka Arama'te Python, Azure OpenAI Hizmeti ve Alma Artırılmış Nesil (RAG) kullanarak bir sohbet uygulaması uygular. Uygulama, çalışan el kitabını, avantaj belgesini ve şirket rollerinin ve beklentilerinin listesini içeren PDF dosyalarıyla birlikte dağıtılır.

Bu makaledeki yönergeleri izleyerek:

  • Web tarayıcısında genel erişim için Azure'a bir sohbet uygulaması dağıtın.
  • Sohbet uygulamasını özel uç noktalarla yeniden dağıtabilirsiniz.

Bu yordamı tamamladıktan sonra, sohbet uygulamanızın yalnızca özel ağ üzerinden erişilebilir olduğunu bilerek yeni projeyi özel kodunuzla değiştirmeye ve yeniden dağıtmaya başlayabilirsiniz.

Mimariye genel bakış

Varsayılan dağıtım, genel uç noktaları olan bir sohbet uygulaması oluşturur.

Temel bir RAG sohbet uygulamasının ağ mimarisini gösteren Diyagramı.

Özel verilerle zenginleştirilmiş sohbet uygulamaları için sohbet uygulamanıza erişimin güvenliğini sağlamak çok önemlidir. Bu makalede sanal ağ kullanarak bir çözüm sunulur.

Azure sanal ağı içindeki tüm hizmetlerle ağ mimarisini gösteren Diyagramı.

Sanal ağ içinde, Azure App Service uygulaması ve diğer arka uç Azure hizmetleri için ayrı bir alt ağ vardır. Bu yapı, her alt ağa farklı ağ güvenlik grubu kuralları uygulamayı kolaylaştırır.

Sanal ağ içindeki bir sohbet uygulaması alt ağını ve arka uç alt ağını gösteren diyagram.

Sanal ağ içinde hizmetler birbirleriyle iletişim kurmak için özel uç noktaları kullanır. Her özel uç nokta, özel uç noktanın adını sanal ağ içindeki bir IP adresine çözümlemek için bir özel Etki Alanı Adı Sistemi (DNS) bölgesiyle ilişkilendirilir.

sanal ağ içindeki Azure OpenAI için özel uç noktayı ve özel DNS bölgesini gösteren Diyagramı.

Dağıtım adımları

Çözümü iki kez dağıtın. Sohbet uygulamasının düzgün çalıştığını doğrulamak için genel erişimle bir kez dağıtın. Sanal ağ kullanarak sohbet uygulamanızın güvenliğini sağlamak için özel erişimle yeniden dağıtın.

Önkoşullar

Bu makaleyi tamamlamak için gereken tüm bağımlılıkları içeren bir geliştirme kapsayıcısı ortamına ihtiyacınız vardır. Geliştirme kapsayıcısını GitHub Codespaces'ta (tarayıcıda) veya Visual Studio Code kullanarak yerel olarak çalıştırabilirsiniz.

Bu makaleyi kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır.

  • Bir Azure aboneliği. Bir tane ücretsizoluşturun.
  • Azure hesabı izinleri. Azure hesabınızın, Microsoft.Authorization/roleAssignments/write veya Sahipgibi izinleri olmalıdır.
  • GitHub hesabı.

Örnek kaynaklar için kullanım maliyeti

Bu mimaride kullanılan kaynakların çoğu temel veya tüketim tabanlı fiyatlandırma katmanları altındadır. Bu fiyatlandırma modeli yalnızca kullandığınız kadar ödeme yaptığınız ve geliştirme veya test sırasında ücretlerin en düşük olduğu anlamına gelir.

Özel ağ ile dağıtım yapmak, dağıtımınıza ek maliyet getirir. Uygulamayı değerlendirmeyi veya dağıtmayı bitirdiğinizde, devam eden ücretlerden kaçınmak için sağlanan tüm kaynakları silin.

Beklenen maliyetlerin ayrıntılı dökümü için, örneğin GitHub deposundaki Başlamadan önce bölümüne bakın.

Açık geliştirme ortamı

Bu makaleyi tamamlamak için gerekli tüm bağımlılıkları içeren önceden yapılandırılmış bir geliştirme ortamı dağıtmak için aşağıdaki yönergeleri kullanın.

GitHub Codespaces, Web için Visual Studio Code kullanıcı arabirimi ile GitHub tarafından yönetilen bir geliştirme kapsayıcısını ç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ı, iki çekirdek örneğiyle her ay 60 saate kadar ücretsiz gitHub Codespaces kullanabilir. Daha fazla bilgi için bkz. GitHub Codespaces aylık olarak dahil edilen depolama ve çekirdek saatler.

  1. main GitHub deposunun dalında yeni bir GitHub kod alanı oluşturma işlemini başlatın.

  2. Aşağıdaki düğmeye sağ tıklayın ve Bağlantıyı yeni pencerede aç seçeneğini seçerek geliştirme ortamı ve belgelerin aynı anda kullanılabilir olmasını sağlayın.

    GitHub Codespaces'ta aç.

  3. Codespace oluştur sayfasında codespace yapılandırma ayarlarını gözden geçirin ve Codespaceoluştur'u seçin.

    yeni bir kod alanı oluşturmadan önce onay ekranını gösteren ekran görüntüsü .

  4. Kod alanının başlamasını bekleyin. Bu başlatma işlemi birkaç dakika sürebilir.

  5. Ekranın alt kısmındaki terminalde Azure Geliştirici CLI'sı ile Azure'da oturum açın:

    azd auth login
    
  6. Kodu terminalden kopyalayın ve bir tarayıcıya yapıştırın. Azure hesabınızla kimlik doğrulaması yapmak için yönergeleri izleyin.

Bu makaledeki kalan görevler bu geliştirme ortamı konteyneri bağlamında gerçekleştirilir.

Özel ayarlar

Bu çözüm, Azure Geliştirici CLI'sını kullanarak yapılandırdığınız özel ayarlara göre altyapıyı yapılandırıp dağıtır. Aşağıdaki tabloda bu çözüm için özel ayarlar açıklanmaktadır.

Ayar Açıklama
AZURE_PUBLIC_NETWORK_ACCESS Desteklenen Azure kaynaklarında genel ağ erişiminin değerini denetler. Geçerli değerler Enabled veya Disabled.
AZURE_USE_PRIVATE_ENDPOINT Azure kaynaklarını sanal ağa bağlayan özel uç noktaların dağıtımını denetler. TRUE değeri, özel uç noktaların bağlantı için dağıtılacağı anlamına gelir.
AZURE_USE_VPN_GATEWAY Sanal ağ için VPN ağ geçidi dağıtımını denetler. Bu ayarı kullanmaz ve genel erişimi devre dışı bırakırsanız, sanal ağa bağlanmak için farklı bir yönteme ihtiyacınız vardır. Bu değer, TRUE bağlantı için bir VPN ağ geçidinin dağıtılacağı anlamına gelir.

Sohbet uygulamasını dağıt

İlk dağıtım kaynakları oluşturur ve genel olarak erişilebilir bir uç nokta sağlar.

  1. Bu çözümü genel erişim için yapılandırmak için aşağıdaki komutu çalıştırın:

    azd env set AZURE_PUBLIC_NETWORK_ACCESS Enabled
    

    Ortam adı istendiğinde, kaynak grubunu oluşturmak için ortam adının kullanıldığını unutmayın. Anlamlı bir ad girin. Bir ekipte veya kuruluştaysanız, morgan-chat-private-endpointsgibi adınızı ekleyin. Ortam adını not edin. Kaynakları Azure portalında bulmak için daha sonra buna ihtiyacınız vardır.

  2. Sanal ağ kaynaklarının sağlanmasını dahil etmek için aşağıdaki komutu çalıştırın. Dağıtımın ikinci dağıtıma kadar erişimi kısıtlamadığını unutmayın.

    azd env set AZURE_USE_PRIVATE_ENDPOINT true
    
  3. Çözümü aşağıdaki komutla dağıtın:

    azd up
    

    Kaynakları sağlama, dağıtım işleminin en çok zaman alan bölümüdür. Devam etmeden önce dağıtımın tamamlanmasını bekleyin.

  4. Dağıtım işleminin sonunda uygulama uç noktası görüntülenir. Sohbet uygulamasını açmak için bu uç noktayı bir tarayıcıya kopyalayın. Kartlardaki sorulardan birini seçin ve yanıtı bekleyin.

    Uç nokta URL'sini not alın çünkü makalenin devamında yeniden ihtiyacınız vardır.

Özel erişimle sohbet uygulamasını Azure'a dağıtma

Özel erişim için sohbet uygulamasının güvenliğini sağlamak için dağıtım yapılandırmasını değiştirin.

  1. Sanal ağa erişmek için vpn ağ geçidi kullanmak için aşağıdaki komutu çalıştırın:

    azd env set AZURE_USE_VPN_GATEWAY true
    
  2. Genel erişimi kapatmak için aşağıdaki komutu çalıştırın:

    azd env set AZURE_PUBLIC_NETWORK_ACCESS Disabled
    
  3. Kaynak yapılandırmasını değiştirmek için aşağıdaki komutu çalıştırın. Yalnızca altyapı yapılandırması değiştiğinden bu komut uygulama kodunu yeniden dağıtmaz.

    azd provision
    
  4. Sağlama tamamlandıktan sonra sohbet uygulamasını yeniden tarayıcıda açın. Genel uç nokta devre dışı bırakıldığından sohbet uygulamasına artık erişilemiyor.

Sohbet uygulamasına erişme

Sohbet uygulamasına erişmek için Azure VPN Gateway veya Azure Sanal Masaüstügibi bir araç kullanın. Uygulamaya erişmek için kullandığınız tüm araçların güvenli ve kuruluşunuzun güvenlik ilkeleriyle uyumlu olması gerektiğini unutmayın.

Kaynakları temizleme

Aşağıdaki adımlar, kullandığınız kaynakları temizleme işleminde size yol gösterir.

Azure kaynaklarını temizleyin

gelecekte Azure kaynaklarına ihtiyaç duymayı beklemiyorsanız, devam eden maliyetlerden kaçınmak için bunları silin.

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

azd down --purge

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 GitHub Codespaces aylık içeren depolama ve çalışma saatleri bölümüne bakın .

  1. GitHub Codespaces kontrol panelinegiriş yapın.

  2. Azure-Samples/azure-search-openai-demo 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

Bu örnek depo sorun giderme bilgileri sunar.

Eğer sorununuz giderilmediyse, sorununuzu deponun Sorunları web sayfasına ekleyin.

  • GitHub'daki kurumsal sohbet uygulaması deposunabakın.
  • Azure OpenAI en iyi yöntemler çözüm mimarisiyle sohbet uygulaması oluşturun.
  • Azure Yapay Zeka Aramaile üretici yapay zeka uygulamalarında erişim denetimi hakkında bilgi edinin.