Megosztás:


Oktatóanyag: Készítsen egy mesterséges intelligencia alapú utazási ügynököt az Azure DocumentDB és a LangChain használatával

Ez az oktatóanyag bemutatja, hogyan hozhat létre egy önvezető AI-ügynököt, amely feldolgozza az utazók kérdéseit és foglalásait egy körutazási vonalon. Az AI-ügynök a LangChain-ügynök keretrendszerét használja a tervezéshez, az eszközhasználathoz és az észleléshez. Az ügynök ezután egyesíti ezeket a funkciókat az Azure DocumentDB vektoradatbázisával és az egységes memóriarendszer dokumentumtárolási képességeivel.

A mintaügynök Python FastAPI-háttérrendszeren belül működik, és a React JavaScript felhasználói felületén keresztül támogatja a felhasználói interakciókat. Ez az implementáció bemutatja, hogyan lépnek előre az AI-ügynökök az alapszintű csevegőrobotokon túl, hogy összetett feladatokat hajtsanak végre a hagyományosan kódolt logikát igénylő természetes nyelv alapján.

Ebben az oktatóanyagban a következőket sajátíthatja el:

  • Az Azure DocumentDB beállítása vektorkeresési képességekkel
  • Utazási dokumentumok betöltése és vektoros beágyazások létrehozása
  • AI-ügynök létrehozása a Python FastAPI és a LangChain használatával
  • Ügynökökre optimalizált eszközök bevezetése vakációkereső, útvonaltervező és foglalási rendszer számára
  • React webes felület létrehozása felhasználói interakciókhoz
  • A teljes AI-ügynökmegoldás tesztelése

Előfeltételek

  • Azure-előfizetés

  • Meglévő Azure DocumentDB-fürt

  • Az OpenAI API vagy az Azure OpenAI szolgáltatás fiókja.

  • Integrált fejlesztési környezet, például Visual Studio Code.

  • A fejlesztési környezetben telepített Python 3.11.4 vagy újabb verzió.

  • Node.js a React előtérhez van telepítve.

A mintaprojekt letöltése

Az összes kód és mintaadatkészlet elérhető a Travel AI Agent GitHub-adattárban.

  1. Klónozza vagy töltse le az adattárat (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) a helyi fejlesztési környezetbe.

  2. Lépjen be a projektkönyvtárba, és vizsgálja meg a struktúrát.

    • /loader: Python-kódot tartalmaz a mintadokumentumok és vektoros beágyazások Azure DocumentDB-be való betöltéséhez

    • /api: Az AI utazási ügynök üzemeltetésére szolgáló Python FastAPI-projektet tartalmazza

    • /web: A React webes felület kódját tartalmazza

Utazási dokumentumok betöltése az Azure DocumentDB-be

A /loader könyvtár tartalmaz egy Python-projektet, amellyel minta útidokumentumokat tölthet be az Azure DocumentDB-be, és létrehozhatja a szükséges vektoros beágyazásokat.

  1. Lépjen a /loader könyvtárba a terminálban.

  2. Python virtuális környezet létrehozása:

    python -m venv venv
    
  3. A virtuális környezet aktiválása:

    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  4. Telepítse a szükséges függőségeket:

    python -m pip install -r requirements.txt
    
  5. Hozzon létre egy .env fájlt a címtárban a /loader kapcsolat részleteivel:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  6. A main.py fájl szolgál az adatok betöltésének központi belépési pontjaként. Feldolgozza a minta utazási adatokat, beleértve a szállítási és a célinformációkat, majd utazási útvonalcsomagokat hoz létre.

  7. Futtassa az adatbetöltési szkriptet a /loader könyvtárból. A szkript a következő műveleteket hajtja végre:

    • Beolvassa a szállítási és a céladatokat JSON-fájlokból

    • Öt útvonalterv csomagot készít a ItineraryBuilder

    • Az útitervcsomagok mentése a itinerary gyűjteménybe

    • Célhelyeket ment a destinations gyűjteménybe

    • Vektoros beágyazásokat hoz létre a ships gyűjteményben lévő hajók számára

    • Szövegkeresési index hozzáadása a szállítási nevekhez

    python main.py
    
  8. Ellenőrizze, hogy a kimenet sikeres befejezést mutat-e:

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

Az AI travel agent API létrehozása

Az AI utazási ügynököt egy Python FastAPI-háttérrendszer üzemelteti, amely integrálható az előtérbeli felülettel, és nagy nyelvi modell (LLM) kéréseinek az Azure DocumentDB-adatokra való alapozásával dolgozza fel az ügynökkérelmeket.

  1. Lépjen a /api könyvtárba a terminálban.

  2. Python virtuális környezet létrehozása és aktiválása:

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  3. Telepítse a szükséges függőségeket:

    python -m pip install -r requirements.txt
    
  4. Hozzon létre egy .env fájlt a /api könyvtárban:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  5. Futtassa a FastAPI-alkalmazást a /api könyvtárból:

    python app.py
    
  6. A kiszolgáló alapértelmezés szerint elindul http://127.0.0.1:8000.

  7. Az API-végpontok megismeréséhez használja a Swagger interaktív dokumentációját a következő címen http://127.0.0.1:8000/docs: .

Az AI-ügynök működésének tesztelése

Ellenőrizze, hogy az AI-ügynök a várt módon működik-e.

  1. A Swagger-felületen tesztelje a munkamenetvégpontot:

    • Navigáljon, /session/ és válassza a Kipróbálás lehetőséget

    • A beszélgetési előzmények nyomon követéséhez szükséges munkamenet-azonosító lekérésére irányuló kérés végrehajtása

  2. Tesztelje az ügynök csevegési funkcióit:

    • Navigáljon, /agent/agent_chat és válassza a Kipróbálás lehetőséget

    • Használja ezt a példabemenetet az ügynök teszteléséhez:

    {
      "input": "I want to take a relaxing vacation.",
      "session_id": "your-session-id-from-step-1"
    }
    
  3. Az ügynöknek a vektorok hasonlósági keresésén alapuló körutazási javaslatokkal kell válaszolnia, ami az LLM és az Azure DocumentDB integrációját mutatja be.

A React webes felületének létrehozása

A webes felület felhasználóbarát módot biztosít az AI-utazási ügynökkel való kommunikációra egy beszélgetési felületen keresztül.

A React-környezet beállítása

  1. Navigáljon a /web könyvtárba a terminálban.

  2. Telepítse a projektfüggőségeket:

    npm ci
    
  3. Hozzon létre egy .env fájlt a /web könyvtárban:

    REACT_APP_API_HOST=http://127.0.0.1:8000
    

A webalkalmazás indítása

  1. Indítsa el a React fejlesztői kiszolgálót:

    npm start
    
  2. Az alkalmazás automatikusan megnyílik az alapértelmezett böngészőben, általában a következő helyen http://localhost:3000: .

  3. A felület egy utazási webhelyet jelenít meg cruise hajóval és célrendszerképekkel.

A teljes megoldás tesztelése

  1. A főoldalon válassza az Könnyedén tervezze meg az utazását az utazási asszisztens csevegőfelületének megnyitásához.

  2. A csevegőfelület egy előre feltöltött üzenettel megnyílik egy párbeszédpanelen: "Pihentető nyaralást szeretnék."

  3. Válassza a Küldés lehetőséget az üzenet AI-ügynöknek való elküldéséhez.

  4. Az ügynök az Ön bemenete alapján válaszol a körutazási javaslatokra, és a következőt mutatja be:

    • Természetes nyelvek feldolgozása

    • Vektoros hasonlósági keresés az Azure DocumentDB-ben

    • A beszélgetés memóriája az ülés alatt

    • HTML-formátumú válaszok a csevegőfelületen

  5. A beszélgetés folytatásával megtekintheti az ügynök képességeinek teljes körét. Kérdezzen konkrét hajókról, itineraries-ekről vagy foglalásokról.

Az AI-ügynök architektúrájának ismertetése

Az AI-ügynök implementációja egy rétegzett architektúrát követ, amely elválasztja a problémákat, és lehetővé teszi a karbantarthatóságot.

Szolgáltatásréteg összetevői

A szolgáltatási réteg tartalmazza az alapvető üzleti logikát és a LangChain-ügynök implementálását:

  • Ügynök inicializálása: A init.py modul beállítja a ChatOpenAI-modellt, az ügynökeszközöket és a beszélgetési előzményeket.

  • Ügynökeszközök: Három fő eszköz kezeli a nyaralás keresését, az útvonalkeresést és a körutazás foglalását.

  • Memóriakezelés: A beszélgetési előzményeket az Azure DocumentDB tárolja munkamenet-azonosítók használatával.

Ügynökeszközök funkciói

Az AI-ügynök három speciális eszközt használ.

  1. vacation_lookup: Vektorkeresést végez az Azure DocumentDB-ben a releváns utazási információk megkereséséhez.

  2. itinerary_lookup: Lekéri a hajócsomag részleteit és az egyes hajók menetrendjét.

  3. book_cruise: Utasinformáció-ellenőrzéssel kezeli a körutazási csomagok foglalásait.

Adatréteg-integráció

Az adatréteg kezeli az Azure DocumentDB-vel folytatott összes interakciót.

  • Vektorkeresés: Hasonlósági keresés az utazási javaslatok pontozásával.

  • Dokumentumtárolás: Strukturált adatok hajókhoz, úti célokhoz és útitervekhez.

  • Beszélgetési előzmények: Munkamenet-alapú csevegőüzenet-tároló.

Erőforrások tisztítása

Ha már nincs szüksége az oktatóanyagban létrehozott erőforrásokra, törölheti őket a folyamatban lévő díjak elkerülése érdekében:

  1. Az Azure Portalon navigáljon az Azure DocumentDB-fiókjához.

  2. Ha dedikált erőforráscsoportot hozott létre ehhez az oktatóanyaghoz, törölje a teljes erőforráscsoportot.

  3. Ellenkező esetben törölje a létrehozott gyűjteményeket:

    • travel.itinerary

    • travel.destinations

    • travel.ships

    • travel.history

Következő lépés