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


Ismerkedj meg a kiszolgáló nélküli AI-csevegéssel a RAG és a LlamaIndex segítségével.

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.

A csevegőalkalmazás képernyőképe a böngészőben, amelyen a csevegés bemenete és a válasz látható.

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ó:

LlamaIndex RAG csevegőalkalmazás architektúrájának diagramja.

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:

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.

  1. Nyissa meg a kódtérben.

    Nyisd meg a(z) GitHub Codespaces-ben

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

  3. 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.

  1. 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
    
  2. 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.
  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ével ellátott URL-címet a csevegőalkalmazás böngészőben való megnyitásához.

    A webalkalmazás URL-címét megjelenítő üzembehelyezési parancs kimenetének képernyőképe.

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.

  1. A böngészőben válassza ki vagy írja be a Mennyibe kerül egy nagy csomag küldése Franciaországba?.

  2. A LlamaIndex a PDF-fájlt használja, és streameli a választ.

    A csevegőalkalmazás képernyőképe a böngészőben, amelyen a csevegés bemenete és a válasz látható.

    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.

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

  2. Keresse meg a jelenleg futó kódtereket, amelyek a Azure-Samples/llama-index-javascript GitHub-repozitóriumból származnak.

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

  3. 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.

Következő lépés