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


A kiszolgáló nélküli AI-csevegés és a RAG használatának első lépései a LangChain.js

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, a Contoso Real Estate 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 csevegőalkalmazásról a böngészőben, amelyen számos javaslat látható a csevegés bemenetére, valamint a kérdés megadására szolgáló csevegő szövegmező.

Feljegyzés

Ez a cikk egy vagy több AI-alkalmazássablont használ a cikkben szereplő példák és útmutatók alapjául. 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ó a következő műveleteket használja az alkalmazással:

  • A csevegőfelülettel az ügyfél-webalkalmazásban.
  • 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.
  • Ha hivatkozni kell a dokumentumokra, az Azure Blob Storage-ban lekérheti a PDF-dokumentumokat.
  • 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 architektúrát ábrázoló ábra az ügyféltől a háttéralkalmazásig.

A LangChainjs leegyszerűsíti a szolgáltatások összetettségét

Az API-folyamat hasznos annak megértéséhez, hogy a LangChainJS hogyan hasznos ebben a forgatókönyvben az interakciók absztrakciója révén. 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óhoz
  • 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.
  • adatfolyamok a lekérési lánc válaszait.

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. Ez lehetővé teszi, hogy számos különböző szolgáltatásból és konfigurációból hozzon létre láncokat, amíg azok megfelelnek a LangChain követelményeinek.

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

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

  • Egyetlen csevegőweb-összetevővel készült webalkalmazás, amely a Littel készült, és az Azure Static Web Appsben van üzemeltetve. A kód a packages/webapp mappában található.

  • Az Azure Functions szolgáltatással készült kiszolgáló nélküli API, amely LangChain.js használatával 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ához és válasz létrehozásához.

  • 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 szolgáló fájltároló az Azure Blob Storage használatával.

Előfeltételek

A cikk elvégzéséhez szükséges összes függőséget tartalmazó fejlesztői tárolókörnyezet érhető el. 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:

  • Azure-előfizetés – Ingyenes létrehozás
  • Azure-fiókengedélyek – Az Azure-fióknak Microsoft.Authorization/roleAssignments/write engedélyekkel kell rendelkeznie, például felhasználói hozzáférés Rendszergazda istrator vagy tulajdonos.
  • A hozzáférést az Azure OpenAI a kívánt Azure-előfizetésen belül kapja meg. Ezen szolgáltatáshoz jelenleg csak alkalmazás útján kapható hozzáférés. Az Azure OpenAI-hoz való hozzáférésre a következő https://aka.ms/oai/accessűrlap kitöltésével jelentkezhet: . Ha probléma merül fel, nyisson meg egy hibát az adattárban, és lépjen velünk kapcsolatba.
  • GitHub-fiók

Nyílt fejlesztési környezet

Kezdje most a jelen cikk végrehajtásához telepített összes függőséget tartalmazó fejlesztői környezettel.

A GitHub Codespaces egy, a GitHub által felügyelt fejlesztői tárolót futtat a Webes Visual Studio Code-tal 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ó: GitHub Codespaces havonta tartalmazza a tárterületet és az alapórákat.

  1. Megnyitás a Codespace-ben.

    Megnyitás a GitHub Codespacesben

  2. Várja meg, amíg a kódtér 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. Futtassa a következő Azure Developer CLI-parancsot az Azure-erőforrások kiépítéséhez és a forráskód üzembe helyezéséhez:

    azd up
    
  2. Az alábbi táblázat segítségével válaszolhat a kérdésekre:

    Felszólítás Válasz
    Környezet neve Tartsa 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 címkével ellátott URL-címet Deploying service webapp 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 nyomon követési ü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 eltávolítása

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

A cikkben létrehozott Azure-erőforrások számlázása az Azure-előfizetésbe 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.

Futtassa a következő Azure Developer CLI-parancsot az Azure-erőforrások törléséhez és a forráskód eltávolításához:

azd down --purge

GitHub-kódterek eltávolítása

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ót a GitHub Codespaces havi tartalmazza a tárterületet és az alapórákat.

  1. Jelentkezzen be a GitHub Codespaces irányítópultjára (https://github.com/codespaces).

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

    Képernyőkép az összes futó kódtérről, beleértve azok állapotát és sablonjait.

  3. Nyissa meg a helyi menüt a kódtérhez, ...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éma nem oldja meg a problémát, jelentkezzen be az adattár problémáiba.