Aracılığıyla paylaş


LlamaIndex kullanarak RAG ile Sunucusuz Yapay Zeka Sohbeti kullanmaya başlama

LlamaIndex, Azure İşlevleri ve Sunucusuz teknolojiler tarafından yönetilen kendi verilerinizi kullanarak RAG ile yapay zeka uygulaması geliştirmeyi basitleştirin. Bu araçlar altyapıyı ve ölçeklendirmeyi otomatik olarak yöneterek sohbet botu işlevselliğine odaklanmanızı sağlar. LlamaIndex, veri işlem hattını veri toplamadan akış halindeki yanıta kadar işler.

Sohbet girişini ve yanıtı gösteren tarayıcıda sohbet uygulamasının ekran görüntüsü.

Mimariye genel bakış

Uygulama akışı şunları içerir:

  • İstem girmek için sohbet arabirimini kullanma.
  • Kullanıcının istemini HTTP çağrıları aracılığıyla Sunucusuz API'ye gönderme.
  • Kullanıcının istemini aldıktan sonra yanıtı işlemek ve akışa almak için LlamaIndex çerçevesini kullanma. Sunucusuz API, Azure OpenAI büyük dil modeline (LLM) ve LlamaIndex'ten vektör dizinine bağlantı oluşturmak için bir altyapı kullanır.

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

LlamaIndex RAG sohbet uygulaması mimarisinin diyagramı.

Bu örnek, eklemeler oluşturmak ve kendi vektör deposunda depolamak için LlamaIndex kullanır. LlamaIndex ayrıca Azure AI Searchdahil olmak üzere diğer vektör depolarıyla tümleştirme sağlar. Bu tümleştirme bu örnekte gösterilmiyor.

Azure bu mimaride nerededir?

Uygulamanın mimarisi aşağıdaki hizmetlere ve bileşenlere dayanır:

  • Azure OpenAI, kullanıcının sorgularını gönderdiğimiz yapay zeka sağlayıcısını temsil eder.
  • LlamaIndex, içeriğimizi (PDF dosyası) almamıza, dönüştürmemize ve vektörleştirmemize ve verilerimizden bir arama dizini oluşturmamıza yardımcı olan çerçevedir.
  • Azure Container Apps, uygulamanın barındırıldığı kapsayıcı ortamıdır.
  • Azure Yönetilen Kimlik, sınıfta en iyi güvenliği sağlamamıza yardımcı olur ve bir geliştirici olarak kimlik bilgileri ve API anahtarlarıyla ilgilenmeniz için gereksinimleri ortadan kaldırır.

LlamaIndex, veri girişinden erişime kadar verileri yönetir.

LlamaIndex kullanarak BIR RAG (Retrieval-Augmented Oluşturma) sistemi uygulamak için, aşağıdaki temel adımlar LlamaIndex işleviyle eşleştirilir:

İşlem Açıklama LlamaIndex
Veri Alımı PDF'ler, API'ler veya veritabanları gibi kaynaklardan verileri içeri aktarabilirsiniz. SimpleDirectoryReader
Parça Belgeleri Büyük belgeleri daha küçük öbeklere ayırma. Cümle Ayırıcı
Vektör dizini oluşturma Verimli benzerlik aramaları için bir vektör dizini oluşturun. VectorStoreIndex
Dizinden Özyinelemeli Alma (İsteğe Bağlı) Hiyerarşik alma ile karmaşık veri kümelerini yönetin.
Sorgu Altyapısına Dönüştür Vektör dizinini sorgu altyapısına dönüştürün. asQueryEngine
Gelişmiş sorgu kurulumu (İsteğe bağlı) Çok aracılı bir sistem için aracıları kullanın.
RAG işlem hattını uygulama Kullanıcı sorgularını alan ve ilgili belge öbeklerini alan bir hedef işlev tanımlayın.
Alma İşlemi Yapma Sorguları işleme ve belgeleri yeniden sıralama. RetrieverQueryEngine, CohereRerank

Önkoşullar

geliştirme kapsayıcısı ortamı, bu makaleyi tamamlamak için gereken tüm bağımlılıklarla birlikte kullanılabilir. 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:

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, kullanıcı arabirimi olarak Web için Visual Studio Code'u kullanan ve GitHub tarafından yönetilen bir geliştirme kapsayıcısını ç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 olarak dahil edilen depolama ve çekirdek saatler.

  1. codespace içinde açın.

    GitHub Codespaces 'de 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.

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 tamamlanmadan kesintiye uğratsanız bile maliyet oluşturabilir.

  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:

    Komut İstemı Cevap
    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şturacağınız 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. Uygulamayı başarıyla dağıttığınızda terminalde iki URL görüntülenir.

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

    Web uygulaması URL'sini gösteren dağıtım komutunun çıktısının ekran görüntüsü.

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

Sohbet uygulaması, yurt içi posta gönderileri için fiziksel standartlarla ilgili bilgilerle, numaralı PDF dosya kataloğu'den önceden yüklenmiştir. Posta mektubu ve paketler 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 'ı seçin veya girin. Fransa'ya büyük bir paket göndermenin maliyeti nedir?.

  2. LlamaIndex, yanıtı türetmek için PDF dosyasını kullanır ve bu yanıtı akış şeklinde iletir.

    Sohbet girişini ve yanıtı gösteren tarayıcıda sohbet uygulamasının ekran görüntüsü.

    Yanıt, LlamaIndex vektör deposuna alınan PDF verilerinin etkisiyle Azure OpenAI'den gelir.

Kaynakları temizleme

Kaynakları temizlemek için ele alınması gereken iki şey vardır:

  • Azure kaynakları, Azure Geliştirici CLI(azd) ile kaynakları temizleyebilirsiniz.
  • Geliştirme ortamınız, Visual Studio Code ile GitHub Codespaces veya DevContainers olabilir.

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

Geliştirici ortamlarını 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 bkz. GitHub Codespaces aylık dahil edilen depolama ve çekirdek saatler.

  1. GitHub Codespaces panosundaoturum açın.

  2. Azure-Samples/llama-index-javascript GitHub deposundan alınan şu anda çalışan Codespaces'ınızı bulun.

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

  3. Kod alanı için bağlam menüsünü ...açıp ardından Silöğesini seçin.

Yardım alın

Bu örnek depo, sorun giderme bilgileri sunar.

Sorununuz giderilmediyse, sorununuzu deponun Issuesbölümüne kaydedin.

Sonraki adım