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.
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ó:
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.
Megnyitás a Codespace-ben.
Várja meg, amíg a kódtér elindul. Ez az indítási folyamat eltarthat néhány percig.
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.
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.
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
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. Várja meg az alkalmazás üzembe helyezését. Az üzembe helyezés befejezése 5–10 percet is igénybe vehet.
Az alkalmazás sikeres üzembe helyezése után két URL jelenik meg a terminálban.
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.
A böngészőben válassza ki vagy adja meg , hogy mi az a visszatérítési szabályzat.
Válasszon egy követési kérdést.
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.
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.
Jelentkezzen be a GitHub Codespaces irányítópultjára (https://github.com/codespaces).
Keresse meg a Jelenleg futó, a
Azure-Samples/serverless-chat-langchainjs
GitHub-adattárból származó kódtereket.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.
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: