Megosztás a következőn keresztül:


Induljon el a szerver nélküli AI csevegéssel és RAG-gal a LangChain.js használatával

Az AI-alkalmazások létrehozása összetett lehet. A LangChain.js, az Azure Functions és a kiszolgáló nélküli technológiák leegyszerűsíthetik ezt a folyamatot. Ezek az eszközök automatikusan kezelik az infrastruktúrát és a skálázást, így a csevegőrobot funkcióira összpontosíthat. A csevegőrobot vállalati dokumentumokkal hoz létre AI-válaszokat.

A kód egy fiktív vállalat mintaadatait tartalmazza. Az ügyfelek támogatási kérdéseket tehetnek fel a vállalat termékeivel kapcsolatban. Az adatok a vállalat szolgáltatási feltételeire, adatvédelmi szabályzatára és támogatási útmutatójára vonatkozó dokumentumokat tartalmaznak.

Képernyőkép a böngészőben látható csevegőalkalmazásról, amelyben több javaslat is megjelenik a csevegési bevitelhez, valamint egy szövegmező kérdések beírására.

Megjegyzés

Ez a cikk egy vagy több AI-alkalmazássablont használ példák és útmutatók alapjául a cikkben. Az AI-alkalmazássablonok jól karbantartott, könnyen üzembe helyezhető referencia-implementációkat biztosítanak, amelyek segítenek magas színvonalú kiindulópontot biztosítani az AI-alkalmazások számára.

Architekturális áttekintés

A csevegőalkalmazás

A felhasználó az alkalmazással lép kapcsolatba:

  • A beszélgetéshez használt ügyfél-webalkalmazás csevegőfelülete.
  • Az ügyfél webalkalmazás HTTP-hívásokon keresztül elküldi a felhasználó lekérdezését a Kiszolgáló nélküli API-nak.
  • A Kiszolgáló nélküli API létrehoz egy láncot, amely koordinálja az Azure AI és az Azure AI Search közötti interakciókat a válasz létrehozásához.
  • A PDF-dokumentum lekérése az Azure Blob Storage használatával.
  • A rendszer ezután visszaküldi a létrehozott választ a webalkalmazásnak, és megjeleníti a felhasználónak.

A csevegőalkalmazás egyszerű architektúrája az alábbi ábrán látható:

Az ügyféltől a háttéralkalmazásig terjedő architektúrát ábrázoló diagram.

LangChain.js leegyszerűsíti a szolgáltatások közötti bonyolultságot

Az API-folyamat hasznos, ha az interakciók absztrakciója révén megérti, hogy a LangChain.js milyen hasznos ebben a forgatókönyvben. A kiszolgáló nélküli API-végpont:

  • Megkapja a kérdést a felhasználótól.
  • Ügyfélobjektumokat hoz létre:
    • Azure OpenAI beágyazáshoz és csevegéshez
    • Az Azure AI Search a vektortároló számára
  • Létrehoz egy dokumentumláncot az LLM-modellel, a csevegőüzenettel (rendszer- és felhasználói kérésekkel) és a dokumentum forrásával.
  • Lekérési láncot hoz létre a dokumentumláncból és a vektortárolóból.
  • Streameli a válaszokat a lekérési láncból.

A fejlesztő feladata, hogy megfelelően konfigurálja a függőségi szolgáltatásokat, például az Azure OpenAI-t és az Azure AI Searchet, és megfelelően hozza létre a láncokat. A mögöttes lánclogika tudja, hogyan oldhatja meg a lekérdezést. Így számos különböző szolgáltatásból és konfigurációból hozhat létre láncokat, amíg azok megfelelnek a LangChain.js követelményeknek.

Hol található az Azure ebben az architektúrában?

Ez az alkalmazás több összetevőből készült:

  • Egy webalkalmazás, amely egyetlen, a Littel készült csevegőweb-összetevőből áll, és az Azure Static Web Apps szolgáltatáson van üzemeltetve. A kód a packages/webapp mappában található.

  • Az Azure Functions és a LangChain.js használatával készült kiszolgáló nélküli API, amely betölti a dokumentumokat, és válaszokat hoz létre a felhasználói csevegési lekérdezésekre. A kód a packages/api mappában található.

  • Azure OpenAI-szolgáltatás beágyazások létrehozására és válaszok generálására.

  • Adatbázis a dokumentumokból kinyert szöveg és a LangChain.js által létrehozott vektorok tárolására az Azure AI Search használatával.

  • A forrásdokumentumok tárolására az Azure Blob Storage nevű fájltárolót használjuk.

Előfeltételek

A fejlesztői tárolókörnyezet elérhető az összes szükséges függőséggel ennek a cikknek a elvégzéséhez. A fejlesztői tárolót a GitHub Codespacesben (böngészőben) vagy helyileg is futtathatja a Visual Studio Code használatával.

A cikk használatához a következő előfeltételekre van szüksége:

  • Kódterek (ajánlott)
  • Visual Studio Code

Nyílt fejlesztési környezet

A cikk elvégzéséhez használja az alábbi utasításokat egy előre konfigurált fejlesztési környezet üzembe helyezéséhez, amely tartalmazza az összes szükséges függőséget.

  • GitHub Codespaces (ajánlott)
  • Visual Studio Code

A GitHub Codespaces egy GitHub által felügyelt fejlesztői tárolót futtat Visual Studio Code a webes felhasználói felületként. A legegyszerűbb fejlesztési környezethez használja a GitHub Codespacest, hogy a megfelelő fejlesztői eszközökkel és függőségekkel rendelkezzen a cikk elvégzéséhez.

Fontos

Minden GitHub-fiók legfeljebb 60 órán át használhatja a Codespace-eket havonta 2 magpéldánysal. További információért lásd a következőt: GitHub Codespaces havonta biztosított tárterület és alapórák.

  1. Nyissa meg a kódtérben.

    Megnyitás a GitHub Codespaces alkalmazásban

  2. Várja meg, amíg a fejlesztési környezet elindul. Ez az indítási folyamat eltarthat néhány percig.

  3. A képernyő alján lévő terminálon jelentkezzen be az Azure-ba az Azure Developer CLI használatával.

    azd auth login
    

    Fejezze be a hitelesítési folyamatot.

  4. A cikkben szereplő fennmaradó feladatok ennek a fejlesztési tárolónak a kontextusában történnek.

Üzembe helyezés és futtatás

A mintaadattár tartalmazza a kiszolgáló nélküli csevegőalkalmazás Azure-ban való üzembe helyezéséhez szükséges összes kódot és konfigurációs fájlt. Az alábbi lépések végigvezetik a minta Azure-ban való üzembe helyezésének folyamatán.

Csevegőalkalmazás üzembe helyezése az Azure-ban

Fontos

Az ebben a szakaszban létrehozott Azure-erőforrások azonnali költségekkel járnak, elsősorban az Azure AI Search-erőforrásból. Ezek az erőforrások akkor is költségekkel járhatnak, ha a parancsot a teljes végrehajtás előtt megszakítja.

  1. Az Azure-erőforrások kiépítése és a forráskód üzembe helyezése az alábbi Azure Developer CLI-paranccsal:

    azd up
    
  2. A következő táblázat használatával válaszoljon a kérdésekre:

    Felszólítás Válasz
    Környezet neve Legyen rövid és kisbetűs. Adja hozzá a nevét vagy aliasát. Például, john-chat. Az erőforráscsoport nevének részeként használják.
    Előfizetés Válassza ki az előfizetést az erőforrások létrehozásához.
    Hely (üzemeltetéshez) Válasszon ki egy Önhöz közeli helyet a listából.
    Az OpenAI-modell helye Válasszon ki egy Önhöz közeli helyet a listából. Ha ugyanaz a hely érhető el, mint az első hely, válassza ezt.
  3. Várja meg az alkalmazás üzembe helyezését. Az üzembe helyezés befejezése 5–10 percet is igénybe vehet.

  4. Az alkalmazás sikeres üzembe helyezése után két URL jelenik meg a terminálban.

  5. Válassza ki a Deploying service webapp címkéjű URL-t a csevegőalkalmazás böngészőben való megnyitásához.

A csevegőalkalmazás használata a PDF-fájlokból való válaszok lekéréséhez

A csevegőalkalmazás előre be van töltve egy PDF-fájlkatalógusból származó kölcsönzési információkkal. A csevegőalkalmazással kérdéseket tehet fel a bérleti folyamatról. Az alábbi lépések végigvezetik a csevegőalkalmazás használatának folyamatán.

  1. A böngészőben válassza ki vagy adja meg , hogy mi az a visszatérítési szabályzat.

    Képernyőkép a csevegőalkalmazás első kérdéséről és válaszáról.

  2. Válasszon egy követési kérdést.

    Képernyőkép a csevegőalkalmazás javasolt utólagos üzenetéről és válaszáról.

  3. A válaszból válassza ki az idézetet a válasz létrehozásához használt dokumentum megtekintéséhez. Ez kézbesíti a dokumentumot az Azure Storage-ból az ügyfélnek. Ha végzett az új böngészőlaplal, zárja be, hogy visszatérjen a kiszolgáló nélküli csevegőalkalmazáshoz.

    Képernyőkép az idézetet tartalmazó eredeti dokumentumról.

Az erőforrások tisztítása

Azure-erőforrások tisztítása

A cikkben létrehozott Azure-erőforrások költsége az Azure-előfizetésére kerül. Ha a jövőben nem lesz szüksége ezekre az erőforrásokra, törölje őket, hogy elkerülje a további költségek felmerülését.

Törölje az Azure-erőforrásokat, és távolítsa el a forráskódot az alábbi Azure Developer CLI-paranccsal:

azd down --purge

GitHub-kódterek tisztítása

  • GitHub Codespaces
  • Visual Studio Code

A GitHub Codespaces-környezet törlése biztosítja, hogy maximálisan kihasználható legyen a fiókhoz tartozó ingyenes óránkénti jogosultság.

Fontos

A GitHub-fiók jogosultságairól további információért lásd a GitHub Codespaces havi tárolási és alapóra-juttatásait.

  1. Jelentkezzen be a GitHub Codespaces vezérlőpultjára.

  2. Keresse meg a jelenleg futó kódtereket, amelyek a Azure-Samples/serverless-chat-langchainjs GitHub-adattárból származnak.

    Screenshot of all the running Codespaces including their status and templates.Képernyőkép az összes működő Codespacesről, az állapotukkal és sablonjaikkal együtt.

  3. Nyissa meg a kódtér kontextusmenüjét, ..., majd válassza a Törlés lehetőséget.

Segítség kérése

Ez a mintaadattár hibaelhárítási információkat nyújt.

Ha a problémája nincs megoldva, rögzítse a problémáját az adattár Issues-ében.