Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egyszerűsítse AI-alkalmazások fejlesztését a RAG segítségével, ha saját, LlamaIndex, Azure Functions és Kiszolgáló nélküli technológiák által kezelt adatokat használ. 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 LlamaIndex az adatfolyamot a betöltéstől a streamelt válaszig kezeli.
Architektúra áttekintése
Az alkalmazásfolyamat a következőket tartalmazza:
- A csevegőfelület használatával adjon meg egy kérdést.
- A felhasználó kérésének elküldése a Kiszolgáló nélküli API-nak HTTP-hívásokon keresztül.
- A felhasználó kérésének fogadása, majd a Válasz feldolgozása és streamelése LlamaIndex-keretrendszer használatával. A kiszolgáló nélküli API egy motor használatával hoz létre kapcsolatot az Azure OpenAI nagy nyelvi modellel (LLM) és a LlamaIndex vektorindexével.
A csevegőalkalmazás egyszerű architektúrája az alábbi ábrán látható:
Ez a minta a LlamaIndex használatával hoz létre beágyazásokat, és tárolja a saját vektortárolójában. A LlamaIndex emellett integrációt biztosít más vektortárolókkal, beleértve Azure AI Search. Ez az integráció ebben a mintában nem mutatható be.
Hol található az Azure ebben az architektúrában?
Az alkalmazás architektúrája a következő szolgáltatásokra és összetevőkre támaszkodik:
- Azure OpenAI azt az AI-szolgáltatót jelöli, amelybe a felhasználó lekérdezéseit küldjük.
- A LlamaIndex az a keretrendszer, amely segít a tartalom (PDF-fájl) betöltésében, átalakításában és vektorizálásában, valamint egy keresési index létrehozásában az adatainkból.
- Azure Container Apps az alkalmazás tárolókörnyezete.
- Azure Managed Identity segít a legmagasabb szintű biztonság biztosításában, és megszünteti annak szükségességét, hogy fejlesztőként foglalkoznia kelljen a hitelesítő adatokkal és API-kulcsokkal.
A LlamaIndex kezeli az adatokat a betöltéstől a lekérésig
A Rag (Retrieval-Augmented Generation) rendszer LlamaIndex használatával történő implementálásához a következő fő lépések felelnek meg a LlamaIndex funkciónak:
Folyamat | Leírás | LlamaIndex |
---|---|---|
Adatbetöltés | Adatok importálása olyan forrásokból, mint a PDF-fájlok, API-k vagy adatbázisok. | SimpleDirectoryReader |
Adattömb dokumentumok | Nagyméretű dokumentumok lebontása kisebb adattömbökre. | SentenceSplitter |
Vektorindex létrehozása | Hozzon létre egy vektorindexet a hatékony hasonlósági keresésekhez. | VectorStoreIndex |
Rekurzív lekérés (nem kötelező) az indexből | Összetett adathalmazok kezelése hierarchikus lekéréssel. | |
Konvertálás lekérdezési motorlá | Konvertálja a vektorindexet lekérdezési motorlá. | asQueryEngine |
Speciális lekérdezésbeállítás (nem kötelező) | Ügynökök használata többügynökös rendszerben. | |
A RAG-folyamat implementálása | Definiáljon egy objektív függvényt, amely felhasználói lekérdezéseket vesz igénybe, és lekéri a releváns dokumentumtömböket. | |
Lekérés végrehajtása | Lekérdezések feldolgozása és dokumentumok újrarangsorolása. | RetrieverQueryEngine, CohereRerank |
Előfeltételek
A cikk elvégzéséhez szükséges összes függőséggel elérhető egy fejlesztői tároló környezet. 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
- 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-rendszergazdai vagy tulajdonosi.
- Egy GitHub-fiók.
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 a GitHub által felügyelt fejlesztői tárolót futtatja, a felhasználói felületként használt webes Visual Studio Code felületével. 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 két alapvető példánnyal. További információkért lásd: GitHub Codespaces havonta tartalmazza a tárhelyet és az alapórákat.
Nyissa meg a kódtérben.
Várja meg, amíg a kódtér elindul. Ez az indítási folyamat eltarthat néhány percig.
Jelentkezzen be az Azure-ba az Azure Developer CLI-vel a képernyő alján található terminálon.
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 költséggel járhatnak, még akkor is, ha megszakítja a parancsot, mielőtt az befejeződne.
Az Azure-erőforrások kiépítéséhez és a forráskód üzembe helyezéséhez futtassa a következő Azure Developer CLI-parancsot:
azd up
Az alábbi táblázat segítségével válaszolhat a kérdésekre:
Haladéktalan Válasz Környezet neve Tartsa röviden és kisbetűvel. 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
Deploying service webapp
címkével ellátott URL-címet 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 betöltött információkat tartalmaz a belföldi postai levelek fizikai szabványairól egy PDF-fájlkatalógus-ből. A csevegőalkalmazással kérdéseket tehet fel a levéllel és a csomagokkal kapcsolatban. 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 írja be a Mennyibe kerül egy nagy csomag küldése Franciaországba?.
A LlamaIndex a PDF-fájlt használja, és streameli a választ.
A válasz az Azure OpenAI-tól származik, a LlamaIndex vektortárolóba betöltött PDF-adatok befolyásolásával.
Erőforrások törlése
Az erőforrások tisztításához két dolgot kell megoldania:
- Az Azure-erőforrások az Azure Developer CLI,azd használatával tisztíthatók.
- Az Ön fejlesztői környezete; GitHub Codespaces vagy DevContainers a Visual Studio Code-on keresztül.
Azure-erőforrások tisztítása
A cikkben létrehozott Azure-erőforrások az Azure-előfizetéshez vannak számlázva. 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
Fejlesztői környezetek megtisztí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
További információ a GitHub-fiók jogosultságairól: GitHub Codespaces havi tartalmazza a tárterületet és az alapórákat.
Jelentkezzen be a GitHub Codespaces vezérlőpultjára.
Keresse meg a jelenleg futó kódtereket, amelyek a
Azure-Samples/llama-index-javascript
GitHub-repozitóriumból származnak.Nyissa meg a kódtér kontextusmenüjét
...
, majd válassza a Törlésopciót.
Segítség kérése
Ez a mintaadattár hibaelhárítási információkat kínál.
Ha a probléma nem oldódik meg, jelentse a problémát az adattár Problémákszekciójában.