Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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, 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ıda sohbet uygulamasının, sohbet girişi için birkaç öneri ve soru girmek için sohbet kutusunu gösteren ekran görüntüsü.
Not
Bu makale, makaledeki örnekler ve kılavuzlar için bir veya daha fazla yapay zeka uygulaması şablonunu temel olarak kullanı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:
- Konuşma için istemci web uygulamasındaki sohbet arabirimi.
- İ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.
- Azure Blob Depolama kullanılarak PDF belgesi alma.
- 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 kadar uzanan mimariyi gösteren diyagram.
LangChain.js hizmetler arasındaki karmaşıklığı basitleştirir
API akışı, etkileşimleri soyutlayarak LangChain.js bu senaryoda ne kadar yararlı 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 geri getirme 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. Sorgunun nasıl çözüleceğini temel zincir mantığı bilir. Bu, LangChain.js 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:
Lit ile oluşturulmuş tek bir sohbet web bileşeni ve Azure Static Web Apps üzerinde barındırılan bir web uygulaması. Kod
packages/webapp
klasöründe bulunur.Azure İşlevleri ve LangChain.js kullanılarak oluşturulmuş bir sunucusuz API, belgeleri almak ve kullanıcı sohbet sorgularına yanıtlar oluşturmak için tasarlanmıştır. Kod
packages/api
klasöründe bulunur.Bir Azure OpenAI hizmeti ile gömüler oluşturmak ve bir cevap üretmek.
Azure AI Search kullanarak belgelerden ayıklanan metinleri ve LangChain.js tarafından oluşturulan vektörleri depolamak için bir veritabanı.
Azure Blob Depolama kullanarak kaynak belgeleri depolamak için bir dosya depolama alanı.
Önkoşullar
Makalenin tamamlanması için gerekli tüm bağımlılıklarla birlikte bir geliştirme kapsayıcı ortamı sağlanmaktadı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
- Azure aboneliği - Ücretsiz bir tane 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.
- GitHub hesabı.
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, GitHub tarafından yönetilen bir geliştirme kapsayıcısını kullanıcı arabirimi olarak Web için Visual Studio Code ile ç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 aylık dahil depolama ve çekirdek saatler başlıklı belgelere bakın.
codespace içinde açın.
GitHub Codespaces'ta aç
Kod alanının başlamasını bekleyin. Bu başlatma işlemi birkaç dakika sürebilir.
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.
Bu makaledeki kalan görevler bu geliştirme kapsayıcısı bağlamında yürütülür.
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 maliyetler oluşturmaya devam edebilir.
Aşağıdaki Azure Geliştirici CLI komutunu kullanarak Azure kaynaklarını sağlayın ve kaynak kodunu dağıtın:
azd up
Aşağıdaki tabloyu kullanarak istemleri yanıtlayın:
İstem Yanıt Ortam adı Kısa ve küçük harfle 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 Kaynak 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. Uygulama dağıtılana kadar bekleyin. Dağıtımın tamamlanması 5-10 dakika sürebilir.
Uygulama başarıyla dağıtıldıktan sonra terminalde iki URL'nin görüntülendiğini görürsünüz.
Tarayıcıda sohbet uygulamasını açmak için
Deploying service webapp
etiketli URL'yi seçin.
PDF dosyalarından yanıt almak için sohbet uygulamasını kullanma
Sohbet uygulaması, bir PDF 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.
Tarayıcıda Para iadesi ilkesi nedir?'i seçin veya girin.
Bir takip sorusu seçin.
Sohbet uygulamasının önerilen izleme istemi ve yanıtının ekran görüntüsü.
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.
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.
Aşağıdaki Azure Geliştirici CLI komutuyla Azure kaynaklarını silin ve kaynak kodu kaldı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 hakları hakkında daha fazla bilgi için bkz: GitHub Codespaces aylık dahil depolama ve çekirdek saatler.
GitHub Codespaces panosundaoturum açın.
Şu anda çalışmakta olan ve GitHub deposundan alınan Codespaces'ınızı bulun.
Çalışmakta olan tüm Codespace'lerin, durumları ve şablonları da dahil olmak üzere ekran görüntüsü.
codespace için bağlam menüsünü
...
açın ve Sil'i seçin.
Yardım alın
Bu örnek depo, sorun giderme bilgilerinin yer aldığı [kaynak](https://github.com/Azure-Samples/serverless-chat-langchainjs/blob/main/README.md#troubleshooting) sunar.
Sorununuz ele alınmazsa, deponun Sorunlar bölümüne kaydedin.
İlgili içerik
- JavaScript ile sohbet uygulamasında yanıtları değerlendirmeye başlama
- Bu şablonda AZD'nin nasıl kullanıldığı hakkında daha fazla bilgi edinin: