Aracılığıyla paylaş


LangChain.js kullanarak RAG ile Sunucusuz Yapay Zeka Sohbeti kullanmaya başlama

Yapay zeka uygulamaları oluşturmak karmaşık olabilir. LangChain.js, Azure İşlevleri ve Sunucusuz teknolojilerle bu işlemi basitleştirebilirsiniz. Bu araçlar altyapıyı yönetir ve otomatik olarak ölçeklendirilir ve sohbet botu işlevlerine odaklanmanızı sağlar. Sohbet botu, yapay zeka yanıtları oluşturmak için kurumsal belgeleri kullanır.

Kod, Contoso Real Estate adlı kurgusal bir şirket için örnek veriler içerir. Müşteriler şirketin ürünleri hakkında destek soruları sorabilir. Veriler, şirketin hizmet koşulları, gizlilik ilkesi ve destek kılavuzu hakkındaki belgeleri içerir.

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ü.

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ış

Sohbet uygulaması

Kullanıcı uygulamayla etkileşim kurar:

  • İstemci web uygulamasında sohbet arabirimi ile.
  • İstemci web uygulaması, kullanıcının sorgusunu HTTP çağrıları aracılığıyla Sunucusuz API'ye gönderir.
  • Sunucusuz API, bir yanıt oluşturmak için Azure AI ile Azure AI Search arasındaki etkileşimleri koordine etmek için bir zincir oluşturur.
  • Belgelere başvurmanız gerekiyorsa PDF belgelerini almak için Azure Blob Depolama kullanılır.
  • Oluşturulan yanıt daha sonra web uygulamasına geri gönderilir ve kullanıcıya görüntülenir.

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

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

LangChainjs, hizmetler arasındaki karmaşıklığı basitleştirir

API akışı, etkileşimleri soyutlayarak LangChainJS'nin bu senaryoda nasıl yardımcı olduğunu anlamak için yararlıdır. Sunucusuz API uç noktası:

  • Soruyu kullanıcıdan alır.
  • İstemci nesneleri oluşturur:
    • Eklemeler ve sohbet için Azure OpenAI
    • Vektör deposu için Azure AI Araması
  • LLM modeli, sohbet iletisi (sistem ve kullanıcı istemleri) ve belge kaynağı ile bir belge zinciri oluşturur.
  • Belge zincirinden ve vektör deposundan bir alma zinciri oluşturur.
  • Alma zincirinden yanıtların akışını sağlar.

Geliştiricinin çalışması, Azure OpenAI ve Azure AI Search gibi bağımlılık hizmetlerini doğru yapılandırmak ve zincirleri doğru şekilde oluşturmaktır. Temel alınan zincir mantığı sorgunun nasıl çözümleneceğini bilir. Bu, LangChain gereksinimleriyle çalıştıkları sürece birçok farklı hizmet ve yapılandırmadan zincirler oluşturmanıza olanak tanır.

Azure bu mimaride nerededir?

Bu uygulama birden çok bileşenden yapılır:

Ö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 - Ücretsiz bir abonelik oluşturun
  • Azure hesabı izinleri - Azure Hesabınızın Kullanıcı Erişimi Yöneticisi veya Sahip gibi Microsoft.Authorization/roleAssignments/write izinlerine sahip olması gerekir.
  • İ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. Codespace'ta açın.

    GitHub Codespaces'ta aç

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

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

    azd auth login
    

    Kimlik doğrulama işlemini tamamlayın.

  4. 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, sunucusuz 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. 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. istemleri yanıtlamak için aşağıdaki tabloyu kullanın:

    İstem Yanıt
    Ortam adı Kısa ve küçük tutun. Adınızı veya diğer adınızı ekleyin. Örneğin, john-chat. Kaynak grubu adının bir parçası olarak kullanılır.
    Abonelik Kaynakları oluşturmak için aboneliği seçin.
    Konum (barındırma için) Listeden size yakın bir konum seçin.
    OpenAI modelinin konumu Listeden size yakın bir konum seçin. İlk konumunuzla aynı konum kullanılabiliyorsa bunu seçin.
  3. Uygulama dağıtılana kadar bekleyin. Dağıtımın tamamlanması 5-10 dakika sürebilir.

  4. Uygulama başarıyla dağıtıldıktan sonra terminalde iki URL'nin görüntülendiğini görürsünüz.

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

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

Sohbet uygulaması, PDF dosya kataloğundan kiralama bilgileriyle önceden yüklenir. 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 Para iadesi ilkesi nedir?'i seçin veya girin.

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

  2. Bir takip sorusu seçin.

    Sohbet uygulamasının önerilen izleme istemi ve yanıtının ekran görüntüsü.

  3. Yanıttan alıntıyı seçerek yanıtı oluşturmak için kullanılan belgeyi görüntüleyin. Bu, belgeyi Azure Depolama'dan istemciye teslim eder. Yeni tarayıcı sekmesini tamamladığınızda sunucusuz sohbet uygulamasına dönmek için bu sekmeyi kapatın.

    Alıntı içeren özgün belgenin ekran görüntüsü.

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 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 panosunda (https://github.com/codespaces ) oturum açın.

  2. GitHub deposundan Azure-Samples/serverless-chat-langchainjs alınan şu anda çalışan Codespaces'ınızı bulun.

    Durumları ve şablonları da dahil olmak üzere çalışan tüm Codespace'lerin ekran görüntüsü.

  3. codespace için bağlam menüsünü ...açın ve Sil'i seçin.

Yardım alın

Bu örnek depo sorun giderme bilgileri sunar.

Sorununuz giderildiyse sorununuzu deponun Sorunları'na kaydedin.