Aracılığıyla paylaş


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

Bu makalede Java için veri örneğinizle sohbeti dağıtma ve çalıştırma işlemi gösterilmektedir. Bu örnek, kurgusal bir şirkette çalışan avantajları hakkında yanıtlar almak için Azure AI Search'te Java, Azure OpenAI Hizmeti ve Alma Artırılmış Nesli (RAG) kullanan bir sohbet uygulaması uygular. Uygulama, çalışan el kitabı, avantajlar belgesi ve şirket rollerinin ve beklentilerinin listesi de dahil olmak üzere PDF dosyalarıyla birlikte dağıtılır.

Bu makalede aşağıdaki görevleri yerine getirebilirsiniz:

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

Bu makaleyi tamamladıktan sonra, özel kodunuzla 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:

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.

Mimariye genel bakış

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

Diagram showing architecture from client to backend app.İstemciden arka uç uygulamasına mimariyi gösteren diyagram.

Mimarinin temel bileşenleri şunlardır:

  • Etkileşimli sohbet deneyimini barındırmak için bir web uygulaması.
  • Kendi verilerinizden yanıt almak için bir Azure AI Search kaynağı.
  • Sağlayabilecek bir Azure OpenAI Hizmeti:
    • Kendi verileriniz üzerinde aramayı geliştirmek için anahtar sözcükler.
    • OpenAI modelinden gelen yanıtlar.
    • Ada modelinden eklemeler

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 bir ücret alınmaktadır 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:

  • Azure aboneliği - Ücretsizoluşturun.
  • Azure hesabı izinleri - Azure hesabınızın Kullanıcı Erişimi Yöneticisi veya Sahipgibi Microsoft.Authorization/roleAssignments/write izinleri olmalıdır.
  • İ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. Sorun yaşıyorsanız bizimle iletişime geçmek için bu depoda bir sorun açın.
  • GitHub hesabı.

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 bkz . GitHub Codespaces aylık dahil depolama ve çekirdek saatler.

  1. 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 pencerelerde aç'ı seçin.

    Open in GitHub CodespacesGitHub Codespaces'ta aç

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

    Screenshot of the confirmation screen before creating a new codespace.Yeni bir kod alanı oluşturmadan önce onay ekranının ekran görüntüsü.

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

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

    azd auth login
    
  5. 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.

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

Dağıtma ve çalıştırma

Ö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, komutu tam olarak yürütülmeden önce kesintiye uğratsanız bile maliyetleri tahakkuk ettirebilir.

  1. Aşağıdaki komutu çalıştırarak Azure kaynaklarını sağlayın ve kaynak kodunu dağıtın:

    azd up
    
  2. Örneğin myenvgibi, bir ortam adı girmeniz istenirse, onu kısa ve küçük harfli tutun. 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. Bu işlemin tamamlanması 5-10 dakika 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.

    Sohbet girişi için çeşitli önerilerin yanı sıra soru girdiğiniz sohbet kutusunu gösteren tarayıcıda sohbet uygulamasının ekran görüntüsü.

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

Sohbet uygulaması, PDF dosyalarından ç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. Web tarayıcısında, sohbet metin kutusuna Northwind Health Plus planıma dahil olup standart planda olmayan neler var? yazın veya seçin.

    Screenshot of chat app's first answer.Sohbet uygulamasının ilk yanıtının ekran görüntüsü.

  2. Yanıttan alıntılardan birini seçin.

    Screenshot of chat app's first answer with its citation highlighted in a red box.Sohbet uygulamasının alıntısının kırmızı kutuda vurgulandığı ilk yanıtı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 Sohbetteki etkileşimlerin betiği.
    Destekleyici içerik Sorunuzu ve kaynak malzemeyi yanıtlamak için bilgileri içerir.
    Alıntı Alıntıyı içeren PDF sayfasını görüntüler.
  4. İşiniz bittiğinde, bölmeyi kapatmak için seçili sekmeyi yeniden seçin.

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

OpenAI modeli ve modelle etkileşime geçmek için kullanılan ayarlar, sohbet uygulamasının zekasını belirler.

Screenshot of chat developer settings.Sohbet geliştirici ayarlarının ekran görüntüsü.

Ayar Açıklama
Geçersiz kılma istemi şablonu Yanıtı oluşturmak için kullanılan istem.
Bu kadar çok arama sonucunu alın Yanıtı oluşturmak için kullanılan arama sonuçlarının sayısı. Bu kaynakların alıntının Düşünce süreci ve Destekleyici içerik sekmelerinde döndürülmüş olduğunu görebilirsiniz.
Kategoriyi dışla Arama sonuçlarından dışlanan belgelerin kategorisi.
Alma için semantik dereceleyici kullanma Arama sonuçlarının ilgi düzeyini artırmak için makine öğrenmesini kullanan Azure AI Search özelliği.
Tüm belgeler yerine sorgu bağlamsal özetleri kullanma Hem hem de Use semantic rankerUse query-contextual summaries işaretlendiğinde LLM, en yüksek dereceli belgelerde tüm pasajlar yerine anahtar geçitlerden 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.
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 Yanıt için tam yanıt kullanılabilir olana kadar beklemek yerine yanıt akışı yapın.

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. Takip soruları öner onay kutusunu seçin ve aynı soruyu bir kez daha sorun.

    What is my deductible?
    

    Sohbet aşağıdakiler gibi önerilen izleme sorularını döndürür:

    1. What is the cost sharing for out-of-network services?
    2. Are preventive care services subject to the deductible?
    3. How does the prescription drug deductible work?
    
  3. Ayarlar sekmesinde, Alma için anlam derecesini kullan'ın seçimini kaldırın.

  4. Aynı soruyu tekrar mı sorayım?

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

    Örneğin Anlam derecesini kullanan yanıt tek bir yanıt sağladı: The deductible for the Northwind Health Plus plan is $2,000 per year.

    Anlamsal derecelendirmesi olmayan yanıt, yanıtı almak için daha fazla çalışma gerektiren bir yanıt döndürdü: Based on the information provided, it is unclear what your specific deductible is. The Northwind Health Plus plan has different deductible amounts for in-network and out-of-network services, and there is also a separate prescription drug deductible. I would recommend checking with your provider or referring to the specific benefits details for your plan to determine your deductible amount.

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 kodunu kaldırmak için aşağıdaki komutu kullanı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 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. Azure-Samples/azure-search-openai-demo-java GitHub deposundan alınan, şu anda çalışan Codespace'lerinizi tespit edin.

    Screenshot of all the running Codespaces including their status and templates.Durumları ve şablonları da dahil olmak üzere ç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.

    Screenshot of the context menu for a single codespace with the delete option highlighted.Silme seçeneğinin vurgulandığı tek bir kod alanının bağlam menüsünün ekran görüntüsü.

Soru nasıl yanıtlandı?

Uygulama iki uygulamaya ayrılmıştır:

  • Vite derleme aracıyla React çerçevesini kullanan bir ön uç JavaScript uygulaması.
  • Soruyu bir arka uç Java uygulaması yanıtlar.

Arka uç /chat API'si, yanıtı alma işleminde adım adım ilerler:

  • RAG seçenekleri oluşturma: Yanıt oluşturmak için kullanılan bir dizi seçenek oluşturun.
  • RAG seçeneklerini kullanarak yaklaşım oluşturma: Doğru ve doğal bir yanıt oluşturmaya yönelik bir yaklaşım oluşturmak için alma tabanlı ve üretken tabanlı modellerin birleşimini kullanın.
  • RAG seçenekleri ve önceki konuşma ile yaklaşımı çalıştırın: Önceki konuşmaya dayalı bir yanıt oluşturmak için yaklaşımı ve RAG seçeneklerini kullanın. Yanıt, yanıtı oluşturmak için hangi belgelerin kullanıldığına ilişkin bilgileri içerir.

Yardım alın

Bu örnek depo sorun giderme bilgileri sunar. Sorununuz giderilmediyse, deponun Sorunları'ndakaydedin.

Sonraki adımlar