Aracılığıyla paylaş


Öğretici: Azure DocumentDB ve LangChain ile yapay zeka seyahat aracısı oluşturma

Bu öğreticide, yolcu sorgularını ve seyahat hattı rezervasyonlarını işleyen otonom bir yapay zeka aracısı oluşturma işlemi gösterilmektedir. Yapay zeka aracısı planlama, araç kullanımı ve algı için LangChain Aracısı çerçevesini kullanır. Aracı daha sonra bu özellikleri Azure DocumentDB'nin vektör veritabanı ve birleşik bellek sistemi için belge deposu özellikleriyle birleştirir.

Örnek aracı bir Python FastAPI arka ucu içinde çalışır ve React JavaScript kullanıcı arabirimi aracılığıyla kullanıcı etkileşimlerini destekler. Bu uygulama, yapay zeka aracılarının geleneksel olarak kodlanmış mantık gerektiren doğal dile dayalı karmaşık görevleri gerçekleştirmek için temel sohbet botlarının ötesine nasıl ilerlediğini gösterir.

Bu eğitimde şunları öğreniyorsunuz:

  • Vektör arama özellikleriyle Azure DocumentDB'i ayarlama
  • Seyahat belgelerini yükleme ve vektör eklemeleri oluşturma
  • Python FastAPI ve LangChain kullanarak yapay zeka aracısı oluşturma
  • Tatil araması, gezi amaçlı arama ve rezervasyon için aracı araçlarını uygulama
  • Kullanıcı etkileşimleri için React web arabirimi oluşturma
  • Yapay zeka aracısı çözümünün tamamını test edin

Önkoşullar

  • Mevcut bir Azure DocumentDB kümesi

  • OpenAI API'sine veya Azure OpenAI Hizmeti'ne yönelik bir hesap.

  • Visual Studio Code gibi tümleşik bir geliştirme ortamı.

  • Python 3.11.4 veya üzeri geliştirme ortamında yüklüdür.

  • react ön ucu için Node.js yüklendi.

Örnek projeyi indirme

Tüm kod ve örnek veri kümeleri Travel AI Agent GitHub deposunda kullanılabilir.

  1. Depoyu (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) yerel geliştirme ortamınıza kopyalayın veya indirin.

  2. Proje dizinine gidin ve yapısını keşfedin:

    • /loader: Azure DocumentDB'de örnek belgeleri ve vektör eklemelerini yüklemek için Python kodunu içerir

    • /api: Yapay zeka seyahat aracısını barındırmak için Python FastAPI projesini içerir

    • /web: React web arabirimi için kod içerir

Seyahat belgelerini Azure DocumentDB'ye yükleme

Dizin, /loader örnek seyahat belgelerini Azure DocumentDB'ye yüklemek ve gerekli vektör eklemelerini oluşturmak için bir Python projesi içerir.

  1. Terminalinizdeki dizine /loader gidin.

  2. Python sanal ortamı oluşturma:

    python -m venv venv
    
  3. Sanal ortamı etkinleştirin:

    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  4. Gerekli bağımlılıkları yükleyin:

    python -m pip install -r requirements.txt
    
  5. /loader dizinine, bağlantı ayrıntılarınızla bir .env dosyası oluşturun.

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  6. Dosya, main.py verileri yüklemek için merkezi giriş noktası görevi görür. Gemi ve hedef bilgileri de dahil olmak üzere örnek seyahat verilerini işler, ardından seyahat seyahat paketleri oluşturur.

  7. Dizinden /loader veri yükleme betiğini çalıştırın. Betik şu işlemleri gerçekleştirir:

    • JSON dosyalarından gönderim ve hedef verileri okur

    • kullanarak beş seyahat paketi oluşturur ItineraryBuilder

    • Seyahat planı paketlerini itinerary koleksiyonuna kaydeder

    • Hedefleri destinations koleksiyonuna kaydeder

    • Koleksiyondaki ships gemiler için vektör eklemeleri oluşturur

    • Sevk adlarına metin arama dizini ekler

    python main.py
    
  8. Çıktının başarıyla tamamlanmasını gösterdiğini doğrulayın:

    --build itinerary--
    --load itinerary--
    --load destinations--
    --load vectors ships--
    

Yapay zeka seyahat aracısı API'sini oluşturma

Yapay zeka seyahat aracısı, ön uç arabirimiyle tümleşen ve büyük dil modeli (LLM) istemlerini Azure DocumentDB verilerine karşı temel alarak aracı isteklerini işleyen bir Python FastAPI arka ucu aracılığıyla barındırılır.

  1. Terminalinizdeki dizine /api gidin.

  2. Python sanal ortamı oluşturma ve etkinleştirme:

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  3. Gerekli bağımlılıkları yükleyin:

    python -m pip install -r requirements.txt
    
  4. /api dizininde bir .env dosyası oluşturun.

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  5. FastAPI uygulamasını dizininden /api çalıştırın:

    python app.py
    
  6. Sunucu http://127.0.0.1:8000 üzerinde varsayılan olarak başlar.

  7. konumundaki http://127.0.0.1:8000/docsetkileşimli Swagger belgelerine erişerek API uç noktalarını keşfedin.

Yapay zeka aracısı işlevselliğini test edin

Yapay zeka aracısının beklendiği gibi çalıştığını test edin.

  1. Swagger arabiriminde oturum uç noktasını test edin:

    • /session/ Adresine gidin ve Deneyin'i seçin

    • Konuşma geçmişini izlemek için oturum kimliği alma isteğini yürütme

  2. Temsilci sohbet işlevselliğini test edin.

    • /agent/agent_chat Adresine gidin ve Deneyin'i seçin

    • Aracıyı test etmek için bu örnek girişi kullanın:

    {
      "input": "I want to take a relaxing vacation.",
      "session_id": "your-session-id-from-step-1"
    }
    
  3. Aracı, vektör benzerliği aramasını temel alan ve LLM ile Azure DocumentDB arasındaki tümleştirmeyi gösteren cruise önerileriyle yanıt vermelidir.

React web arabirimini oluşturma

Web arabirimi, konuşma arabirimi aracılığıyla yapay zeka seyahat aracısı ile etkileşime geçmek için kullanıcı dostu bir yol sağlar.

React ortamını ayarlama

  1. Terminalinizdeki dizine /web gidin.

  2. Proje bağımlılıklarını yükleyin:

    npm ci
    
  3. /web dizininde bir .env dosyası oluşturun.

    REACT_APP_API_HOST=http://127.0.0.1:8000
    

Web uygulamasını başlatma

  1. React geliştirme sunucusunu başlatın:

    npm start
    
  2. Uygulama, genellikle http://localhost:3000 konumunda, varsayılan tarayıcınızda otomatik olarak açılır.

  3. Arabirim, yolcu gemisi ve hedef görüntüleri içeren bir seyahat web sitesi gösterir.

Çözümün tamamını test edin

  1. Ana sayfada Seyahat yardımcısı sohbet arabirimini açmak için Yolculuğunuzu zahmetsizce planlayın'ı seçin.

  2. Sohbet arabirimi, önceden doldurulmuş bir ileti içeren bir iletişim kutusunda açılır: "Rahatlatıcı bir tatil yapmak istiyorum."

  3. İletiyi yapay zeka aracısına göndermek için Gönder'i seçin.

  4. Aracı, girişinize göre cruise önerileriyle yanıt verir ve şunları gösterir:

    • Doğal dil işleme

    • Azure DocumentDB'ye karşı vektör benzerliği araması

    • Oturum genelinde konuşma belleği

    • Sohbet arabiriminde HTML biçimli yanıtlar

  5. Konuşmayı sürdürerek aracın tüm yeteneklerini görün. Belirli gemiler, seyahatler veya rezervasyonlar hakkında bilgi isteyin.

Yapay zeka aracısı mimarisini anlama

Yapay zeka aracısı uygulaması, endişeleri ayıran ve sürdürülebilirliği sağlayan katmanlı bir mimariyi izler.

Hizmet Katmanı Bileşenleri

Hizmet katmanı, temel iş mantığını ve LangChain Aracısı uygulamasını içerir:

  • Aracı Başlatma: init.py Modül ChatOpenAI modelini, aracı araçlarını ve konuşma geçmişini ayarlar.

  • Aracı Araçları: Üç ana araç tatil arama, gezi arama ve gezi rezervasyonlarını işler.

  • Bellek Yönetimi: Konuşma geçmişi, oturum tanımlayıcıları kullanılarak Azure DocumentDB'de depolanır.

Aracı Araçları İşlevselliği

Yapay zeka aracısı üç özel araç kullanır.

  1. vacation_lookup: İlgili seyahat bilgilerini bulmak için Azure DocumentDB'ye karşı vektör araması yürütür.

  2. itinerary_lookup: Belirli gemiler için yolcu paketi ayrıntılarını ve zamanlamalarını alır.

  3. book_cruise: Yolcu bilgileri doğrulama ile yolcu paketi rezervasyonlarını işler.

Veri Katmanı Tümleştirmesi

Veri katmanı, Azure DocumentDB ile tüm etkileşimleri işler.

  • Vektör Arama: Seyahat önerileri için puanlama ile benzerlik araması.

  • Belge Depolama: Gemiler, hedefler ve seyahat çizelgeleri için yapılandırılmış veriler.

  • Konuşma Geçmişi: Oturum tabanlı sohbet iletisi depolama.

Kaynakları temizle

Bu öğreticide oluşturulan kaynaklara artık ihtiyacınız yoksa, devam eden ücretlerden kaçınmak için bunları temizleyebilirsiniz:

  1. Azure portalında Azure DocumentDB hesabınıza gidin.

  2. Bu öğretici için ayrılmış bir kaynak grubu oluşturduysanız kaynak grubunun tamamını silin.

  3. Aksi takdirde, oluşturulan belirli koleksiyonları silin:

    • travel.itinerary

    • travel.destinations

    • travel.ships

    • travel.history

Sonraki adım