Aracılığıyla paylaş


.NET için 'Kendi veri örneğinizi kullanarak sohbet edin' ile çalışmaya başlama

Bu makalede, .NET için kendi veri örneğinizle Chat'i dağıtma ve çalıştırma işlemi gösterilmektedir. Bu örnek C#, Azure OpenAI Service ve Retrieval Artırılmış Nesil (RAG) kullanarak kurgusal bir şirkette çalışan avantajları hakkında yanıtlar almak için Azure Yapay Zeka Arama bir sohbet uygulaması uygular. Çalışan Yan Hakları sohbet uygulaması, çalışan el kitabı, yan haklar belgesi ve şirket rollerinin ve beklentilerinin listesi de dahil olmak üzere PDF dosyalarıyla birlikte yüklenmiştir.

Bu makalede şunları yapacaksınız:

  • Azure için bir sohbet uygulaması dağıtın.
  • Çalışan avantajları hakkında yanıtlar alın.
  • Yanıtların davranışını değiştirmek için ayarları değiştirin.

Bu yordamı tamamladıktan sonra yeni projeyi özel kodunuzla değiştirmeye başlayın.

Bu makale, Azure OpenAI hizmetini ve Azure Yapay Zeka Arama kullanarak sohbet uygulaması oluşturmayı gösteren makale koleksiyonunun bir parçasıdır.

Koleksiyondaki diğer makaleler şunlardır:

Mimariye genel bakış

Bu örnek uygulamada Contoso Electronics adlı kurgusal bir şirket, çalışanlarına avantajlar, iç ilkeler, iş açıklamaları ve roller hakkında sorular sormaları için sohbet uygulaması deneyimi sağlar.

Sohbet uygulamasının mimarisi aşağıdaki diyagramda gösterilmiştir:

İstemciden arka uç uygulamasına mimariyi gösteren diyagram.

  • Kullanıcı arabirimi - Uygulamanın sohbet arabirimi bir Blazor WebAssembly uygulamasıdır. Bu arabirim, kullanıcı sorgularını kabul eden, istekleri uygulama arka ucuna yönlendiren ve oluşturulan yanıtları görüntüleyen arabirimdir.
  • Backend - Uygulama arka planı bir ASP.NET Core Minimal API. Arka uç Blazor statik web uygulamasını barındırır ve farklı hizmetler arasındaki etkileşimleri düzenleyen özelliktir. Bu uygulamada kullanılan hizmetler şunlardır:

Maliyet

Bu mimarideki kaynakların çoğu temel veya tüketim fiyatlandırma katmanını kullanır. Tüketim fiyatlandırması kullanımı temel alır ve bu da yalnızca kullandığınız kadar ödeme yaptığınız anlamına gelir. Bu makaleyi tamamlamak için ücret uygulanır, ancak çok azdır. Makaleyi tamamladığınızda ücretlendirmeyi durdurmak için kaynakları silin.

Daha fazla bilgi için, Azure Samples: Örnek deposunda maliyet bölümüne bakın.

Önkoşullar

Bu makaleyi tamamlamak için gereken tüm bağımlılıklarla birlikte bir geliştirme kapsayıcısı ortamı sağlanı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 takip etmek için aşağıdaki önkoşullara ihtiyacınız vardır:

Açık geliştirme ortamı

Bu makaleyi tamamlamak için tüm bağımlılıkların yüklü olduğu bir geliştirme ortamıyla hemen başlayın.

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, GitHub Codespaces'in aylık dahil depolama ve çekirdek saatleri bölümüne bakın.

  1. main GitHub deposunun Azure-Samples/azure-search-openai-demo-csharp dalında yeni bir GitHub kod alanı oluşturmak için işlemi başlatın.

  2. Hem geliştirme ortamının hem de belgelerin aynı anda kullanılabilir olmasını sağlamak için, aşağıdaki GitHub Codespaces'te Aç düğmesine sağ tıklayın ve Bağlantıyı yeni pencerede aç'ı seçin.

    GitHub Codespaces'de Aç düğmesi.

  3. Codespace oluştur sayfasında codespace yapılandırma ayarlarını gözden geçirin ve ardından Yeni kod alanı oluştur'u seçin:

    Yeni bir kod alanı oluşturmadan önce onay ekranının 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 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.

  7. Bu makaledeki kalan görevler bu geliştirme kapsayıcısı bağlamında gerçekleşir.

Dağıt ve çalıştır

Örnek depo, bir sohbet uygulamasını Azure dağıtmak için ihtiyacınız olan tüm kod ve yapılandırma dosyalarını içerir. Aşağıdaki adımlar, örneği Azure dağıtma işleminde size yol gösterir.

sohbet uygulamasını Azure dağıtma

Önemli

Bu bölümde oluşturulan Azure kaynakları, özellikle Azure Yapay Zeka Arama kaynağından kaynaklanan anında maliyetlere neden olur. Bu kaynaklar, komutu tam olarak yürütülmeden önce kesintiye uğratsanız bile maliyetler oluşturabilir.

  1. Azure kaynaklarını sağlamak ve kaynak kodunu dağıtmak için aşağıdaki Azure Geliştirici CLI komutunu çalıştırın:

    azd up
    
  2. Bir ortam adı girmeniz istendiğinde, onu kısa ve küçük harflerle seçin. Örneğin, myenv. Kaynak grubu adının bir parçası olarak kullanılır.

  3. İstendiğinde, kaynakları oluşturmak amacıyla bir abonelik seçin.

  4. İlk kez bir konum seçmeniz istendiğinde, size yakın bir konum seçin. Bu konum, barındırma dahil olmak üzere kaynakların çoğu için kullanılır.

  5. OpenAI modeli için bir konum istenirse size yakın bir konum seçin. İlk konumunuzla aynı konum kullanılabiliyorsa bunu seçin.

  6. Uygulama dağıtılana kadar bekleyin. Dağıtımın tamamlanması 20 dakika kadar sürebilir.

  7. Uygulama başarıyla dağıtıldıktan sonra terminalde bir URL görüntülenir.

  8. Sohbet uygulamasını tarayıcıda açmak için etiketli Deploying service web URL'yi seçin.

    Tarayıcıdaki sohbet uygulamasının, sohbet girişi için birkaç öneriyi ve soru girmek için sohbet metin kutusunu gösteren ekran görüntüsü.

PDF dosyalarından yanıt almak için sohbet uygulamasını kullanma

Sohbet uygulaması, PDF dosyaları çalışan avantajları bilgileriyle önceden yüklenir. Avantajları hakkında sorular sormak için sohbet uygulamasını kullanabilirsiniz. Aşağıdaki adımlar, sohbet uygulamasını kullanma işleminde size yol gösterir.

  1. Tarayıcıda, sol gezintiyi kullanarak Sohbet sayfasına gidin.

  2. Sohbet metin kutusuna "Northwind Health Plus planımda standart olmayan ne var?" öğesini seçin veya girin. Yanıtınız aşağıdaki görüntüye benzer .

    Sohbet uygulamasının ilk yanıtının ekran görüntüsü.

  3. Yanıttan bir alıntı seçin. Bilgilerin kaynağını gösteren bir açılır pencere açılır.

    Sohbet uygulamasının alıntısının kırmızı kutuda vurgulandığı ilk yanıtın ekran görüntüsü.

  4. Yanıtın nasıl oluşturulduğunu anlamak için yanıt kutusunun üst kısmındaki sekmeler arasında gezinin.

    Sekme Açıklama
    Düşünce süreci Bu, sohbetteki etkileşimlerin betiğidir. Sistem istemini (content) ve kullanıcı sorunuzu (content ) görüntüleyebilirsiniz.
    Destekleyici içerik Bu, sorunuzu ve kaynak malzemeyi yanıtlamaya yönelik bilgileri içerir. Kaynak malzeme alıntılarının sayısı Geliştirici ayarlarında not edilir. Varsayılan değer 3'dür.
    Alıntı Bu, alıntıyı içeren kaynak sayfayı görüntüler.
  5. İşiniz bittiğinde yanıt sekmesine geri dönün.

Yanıtların davranışını değiştirmek için sohbet uygulaması ayarlarını kullanma

Sohbetin zekası OpenAI modeli ve modelle etkileşimde kullanılan ayarlar tarafından belirlenir.

Sohbet geliştirici ayarlarının ekran görüntüsü.

Ayarlar Açıklama
Geçersiz kılma istemi şablonu Bu, yanıtı oluşturmak için kullanılan istemdir.
Bu kadar çok arama sonucunu alın Bu, yanıtı oluşturmak için kullanılan arama sonuçlarının sayısıdır. Alıntıdaki bu kaynakların Düşünce süreci ve Destekleyici içerik sekmelerinde yer aldığını görebilirsiniz.
Kategoriyi dışla Bu, arama sonuçlarından dışlanan belgelerin kategorisidir.
Erişim için semantik dereceleyici kullanma Bu, arama sonuçlarının ilgi düzeyini artırmak için makine öğrenmesini kullanan Azure Yapay Zeka Arama özelliğidir.
Getirme modu Vektörler + Metin , arama sonuçlarının belgelerin metnine ve belgelerin eklemelerine dayandığı anlamına gelir. Vektörler , arama sonuçlarının belgelerin eklemelerine dayandığı anlamına gelir. Metin , arama sonuçlarının belgelerin metnine dayalı olduğu anlamına gelir.
Tüm belgeler yerine sorgu bağlamsal özetleri kullanma Her iki Use semantic ranker ve Use query-contextual summaries de işaretlendiğinde, LLM en yüksek dereceli belgelerde tüm pasajlar yerine anahtar pasajlardan ayıklanan resim yazılarını kullanır.
İzleme soruları önerin Sohbet uygulamasının yanıta göre takip soruları önermesini sağlayın.

Aşağıdaki adımlar, ayarları değiştirme işleminde size yol gösterir.

  1. Tarayıcıda, sayfanın sağ üst kısmındaki dişli simgesini seçin.

  2. Seçili değilse, Takip sorularını öner onay kutusunu seçin ve aynı soruyu yeniden sorun.

    What is included in my Northwind Health Plus plan that is not in standard?
    

    Sohbet, takip sorusu önerileriyle geri dönebilir.

  3. Ayarlar sekmesinde, Veri alma için anlam sıralayıcı kullan seçimini kaldırın.

  4. Aynı soruyu tekrar sorun.

    What is my deductible?
    
  5. Yanıtlardaki fark nedir?

    Semantik sıralayıcı kullanan yanıt, tek bir cevap sağladı. Semantik derecelendirmesi olmayan yanıt daha az doğrudan yanıt döndürdü.

Kaynakları temizleme

Bitirmek için kullandığınız Azure ve GitHub CodeSpaces kaynaklarını temizleyin.

Azure kaynaklarını temizleme

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.

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

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 hakları hakkında daha fazla bilgi için bakınız GitHub Codespaces aylık dahil depolama ve işlemci saatleri.

  1. GitHub Codespaces panosunda (https://github.com/codespaces) oturum açın.

  2. Azure-Samples/azure-search-openai-demo-csharp GitHub deposundan alınan şu anda çalışan kod alanlarınızı bulun.

    Durumları ve şablonları da dahil olmak üzere çalışan tüm kod alanları 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

Bu örnek depo sorun bilgileri sunar.

Sorununuz giderilemediyse sorununuzu deponun Issues kısmına kaydedin.

Sonraki adımlar