Aracılığıyla paylaş


JavaScript için kendi veri örneğinizi kullanarak sohbeti kullanmaya başlama

Bu makale, JavaScript için "Verilerinizle Sohbet" örneğini nasıl dağıtacağını ve çalıştıracağını gösterir. Bu örnek, kiralık mülkler hakkında yanıtlar almak için JavaScript, Azure OpenAI Hizmeti ve Azure AI Search'te Yer Alma Güçlendirilmiş Üretim (RAG) kullanan bir sohbet uygulamasını içerir. Kiralık emlak sohbet uygulaması, Gizlilik İlkesi, Hizmet Koşulları ve Destek dahil olmak üzere markdown dosyalarındaki (*.md) verilerle beslenmiştir.

  • Demo JavaScript - tam yığın videosu
  • Demo JavaScript - Python arka uç ile ön uç videosu

Bu makaledeki yönergeleri izleyerek şunları yapacaksınız:

  • Azure'a bir sohbet uygulaması dağıtma.
  • Kiralık gayrimenkullerle ilgili web sitesi bilgilerini öğrenin.
  • Yanıtların davranışını değiştirmek için ayarları değiştirin.

Bu makaleyi tamamladıktan sonra, özel kodunuz ve verilerinizle yeni projeyi değiştirmeye başlayabilirsiniz.

Bu makale, Azure OpenAI Hizmeti ve Azure AI Search kullanarak nasıl sohbet uygulaması oluşturabileceğinizi gösteren makale koleksiyonunun bir parçasıdır. Koleksiyondaki diğer makaleler şunlardır:

  • .NET
  • Java
  • Python

Not

Bu makalede, makaledeki örnekler ve kılavuzlar için temel olarak bir veya daha fazla yapay zeka uygulama ş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.

Mimariye genel bakış

Aşağıdaki diyagramda sohbet uygulamasının basit bir mimarisi gösterilmiştir:

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

Sohbet örneği uygulaması Contoso Real Estate adlı kurgusal bir şirket için oluşturulmuş ve akıllı sohbet deneyimi, müşterilerinin ürünlerinin kullanımı hakkında destek soruları sormasına olanak tanır. Örnek veriler hizmet koşullarını, gizlilik ilkesini ve destek kılavuzunu açıklayan bir belge kümesi içerir. Belgeler dağıtım sırasında mimariye entegre edilir.

Uygulama, aşağıdakiler dahil olmak üzere birden çok bileşenden yapılır:

  • Arama hizmeti: Arama ve alma özelliklerini sağlayan arka uç hizmeti.
  • Dizin oluşturucu hizmeti: Verileri dizinleyen ve arama dizinlerini oluşturan hizmet.
  • Web uygulaması: Kullanıcı arabirimi sağlayan ve kullanıcı ile arka uç hizmetleri arasındaki etkileşimi düzenleyen ön uç web uygulaması.

Ön uç uygulaması, arama ve belge alımı için Azure hizmetlerini ve bunların bütünleşme akışını gösteren diyagram.

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 kaynaklar bir ücret oluşturur ancak çok azdır. Makaleyi tamamladığınızda, ücretlendirmeyi durdurmak için kaynakları silebilirsiniz.

Örnek depoda maliyet hakkında daha fazla bilgi edinin.

Ö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'u kullanarak yerel olarak çalıştırabilirsiniz.

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

  • Codespaces (önerilen)
  • Visual Studio Code

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 (önerilen)
  • Visual Studio Code

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

  1. Yeni bir GitHub Codespace oluşturma işlemini, main dalında, Azure-Samples/azure-search-openai-javascript GitHub deposu üzerinde başlatın.

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

    GitHub Codespaces'ta Aç

  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 önceki 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'da oturum açın.

    azd auth login --use-device-code
    
  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ının bağlamı içinde gerçekleştirilir.

Kur ve çalıştır

Örnek depo, Bir sohbet uygulamasını Azure'a 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'a dağıtma işleminde size yol gösterir.

Sohbet uygulamasını Azure'a dağıtma

Önemli

Bu bölümde oluşturulan Azure kaynakları, öncelikli olarak Azure AI Search kaynağından anlık maliyetler doğurabilir. Bu kaynaklar, komut tamamen tamamlanmadan önce kesintiye uğratsanız bile maliyete neden olabilir.

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

    azd up
    
  2. Ortam adı girmeniz istenirse, kısa ve küçük harflerle yazın. Örneğin, myenv. Kaynak grubu adının bir parçası olarak kullanılır.

  3. İstendiğinde, içinde kaynakları oluşturmak için 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ı 5-10 dakika sürebilir.

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

  8. "Deploying service web ile etiketlenmiş URL'yi seçin, böylece sohbet uygulamasını tarayıcıda açabilirsiniz."

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

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

Sohbet uygulaması, bir Markdown dosya kataloğundan kiralama bilgileriyle önceden yüklenmiş olarak gelir. Kiralama işlemiyle ilgili 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, sayfanın en altındaki metin kutusuna Para iadesi ilkesi nedir?'i seçin veya girin.

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

  2. Yanıttan Düşünce sürecini göster'i seçin.

    Düşünce sürecini göster seçeneğinin kırmızı kutuda vurgulandığı sohbet uygulamasının ilk yanıtının ekran görüntüsü.

  3. Sağ bölmede, yanıtın nasıl oluşturulduğunu anlamak için sekmeleri kullanın.

    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 özgün sayfayı görüntüler.
  4. İşiniz bittiğinde, sekmelerin üzerindeki X işaretiyle belirtilen gizle düğmesini seçin.

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

Sohbet uygulamasının zekası, OpenAI modeline ve modelle etkileşime geçmek için kullanılan ayarlara göre 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. Bu kaynakları, alıntının Düşünce süreci ve Destekleyici içerik sekmelerinde olarak görebilirsiniz.
Kategoriyi dışla Bu, arama sonuçlarından dışlanan belgelerin kategorisidir.
Erişim için semantik dereceleyici kullan Bu, arama sonuçlarının alaka düzeyini iyileştirmek için makine öğrenmesini kullanan bir Azure AI Search özelliğidir.
Tüm belgeler yerine sorgu bağlamsal özetleri kullanma Use semantic ranker ve Use query-contextual summaries her ikisi de işaretlendiğinde, LLM en yüksek sıradaki belgelerde tüm pasajlar yerine anahtar pasajlardan alınan başlıkları kullanır.
İzleme soruları önerin Sohbet uygulamasının yanıta göre takip soruları önermesini sağlayın.
Veri Alma 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.
Sohbet tamamlama yanıtlarını akışla aktarın Tam yanıtın kullanılabilir olmasını beklemek yerine yanıt akışını gerçekleştirin.

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

  1. Tarayıcıda Geliştirici Ayarları sekmesini seçin.

  2. Sorgu bağlamı özetleri yerine kullan onay kutusunu işaretleyin ve aynı soruyu yeniden sorun.

    What happens if the rental doesn't fit the description?
    

    Sohbet aşağıdaki gibi daha kısa bir yanıtla döndürüldü.

Kaynakları temizleme

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
  • 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 yetkilendirmeleri hakkında daha fazla bilgi için bkz . GitHub Codespaces aylık dahil depolama ve çekirdek saatler.

  1. GitHub Codespaces panosundaoturum açın.

  2. GitHub deposunda bulunan şu anda çalışan Codespaces'ınızı bulun.

    Durumları ve şablonlarıyla birlikte çalışan tüm Codespace'lerin 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 giderme bilgileri sunar.

Çözülmezse, sorunuzu deponun Sorunlar bölümüne kaydedin.

Sonraki adımlar