Ismerkedés a Java vállalati csevegési mintával a RAG használatával

Ez a cikk bemutatja, hogyan helyezheti üzembe és futtathatja a Nagyvállalati csevegőalkalmazás mintáját Javához. Ez a minta egy csevegőalkalmazást implementál a Java, az Azure OpenAI Service és a Retrieveal Augmented Generation (RAG) használatával az Azure AI Searchben, hogy válaszokat kapjon egy fiktív vállalat alkalmazotti juttatásairól. Az alkalmazás pdf-fájlokkal van elszórva, beleértve az alkalmazotti kézikönyvet, az előnyöket tartalmazó dokumentumot, valamint a vállalati szerepkörök és elvárások listáját.

A cikkben található utasításokat követve a következőket fogja követni:

  • Csevegőalkalmazás üzembe helyezése az Azure-ban.
  • Válaszokat kaphat az alkalmazottak juttatásairól.
  • A válaszok viselkedésének módosításához módosítsa a beállításokat.

A cikk befejezése után megkezdheti az új projekt módosítását az egyéni kóddal.

Ez a cikk egy cikkgyűjtemény része, amely bemutatja, hogyan hozhat létre csevegőalkalmazást az Azure OpenAI Service és az Azure AI Search használatával. A gyűjtemény további cikkei a következők:

Architekturális áttekintés

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.

Az architektúra fő összetevői a következők:

  • Egy webalkalmazás, amely az interaktív csevegési élményt üzemelteti.
  • Egy Azure AI Search-erőforrás, amely válaszokat kaphat saját adataiból.
  • Egy Azure OpenAI-szolgáltatás, amely a következőt nyújtja:
    • Kulcsszavak, amelyek javítják a keresést a saját adatain.
    • Válaszok az OpenAI-modellből.
    • Beágyazások az ada-modellből

Költség

Az architektúra legtöbb erőforrása alapszintű vagy használati tarifacsomagot használ. A használati díjszabás a használaton alapul, ami azt jelenti, hogy csak azért kell fizetnie, amit használ. A cikk elvégzéséhez díjat számítunk fel, de minimális lesz. Ha végzett a cikkel, törölheti az erőforrásokat, hogy ne keletkezhessenek díjak.

További információ a költségekről a mintaadattárban.

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:

  1. Azure-előfizetés – Ingyenes létrehozás
  2. 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.
  3. 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.
  4. 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. Indítsa el az új GitHub Codespace létrehozásának folyamatát a mainAzure-Samples/azure-search-openai-demo-java GitHub-adattár ágán.

  2. Kattintson a jobb gombbal a következő gombra, és válassza a Megnyitás hivatkozást az új ablakokban , hogy egyszerre legyen elérhető a fejlesztési környezet és a dokumentáció is.

  3. A Kódtér létrehozása lapon tekintse át a kódtér konfigurációs beállításait, majd válassza az Új kódtér létrehozása lehetőséget

    Képernyőkép a megerősítést kérő képernyőről egy új kódtér létrehozása előtt.

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

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

    azd auth login
    
  6. Másolja ki a kódot a terminálból, majd illessze be egy böngészőbe. Kövesse az utasításokat az Azure-fiókkal való hitelesítéshez.

  7. 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 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. Amikor a rendszer kéri, hogy adjon meg egy környezetnevet, tartsa rövid és kisbetűsként. Például: myenv. Az erőforráscsoport nevének részeként használatos.

  3. Amikor a rendszer kéri, válasszon ki egy előfizetést az erőforrások létrehozásához.

  4. Amikor a rendszer első alkalommal kéri egy hely kiválasztását, válasszon ki egy Önhöz közeli helyet. Ezt a helyet használják a legtöbb erőforráshoz, beleértve az üzemeltetést is.

  5. Ha a rendszer az OpenAI-modell helyét kéri, válasszon egy Önhöz közeli helyet. Ha ugyanaz a hely érhető el, mint az első hely, válassza ezt.

  6. Várja meg az alkalmazás üzembe helyezését. Az üzembe helyezés befejezése 5–10 percet is igénybe vehet.

  7. Az alkalmazás sikeres üzembe helyezése után megjelenik egy URL-cím a terminálban.

  8. Válassza ki a címkével ellátott URL-címet Deploying service web a csevegőalkalmazás böngészőben való megnyitásához. 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ő.

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 a PDF-fájlokból származó alkalmazottak juttatási adataival. A csevegőalkalmazással kérdéseket tehet fel az előnyökrő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 vagy írja be a "Mi szerepel a Northwind Health Plus csomagomban, amely nem szabványos?" szöveget a csevegés szövegmezőjében.

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

  2. A válaszból válassza ki az idézetek egyikét.

    Képernyőkép a csevegőalkalmazás első válaszáról egy piros mezőben kiemelt idézettel.

  3. A jobb oldali panelen a lapok segítségével megtudhatja, hogyan jött létre a válasz.

    Lap Leírás
    Gondolkodási folyamat Ez a csevegésben lévő interakciók szkriptje.
    Támogató tartalom Ez magában foglalja a kérdés megválaszolásához szükséges információkat és a forrásanyagot.
    Idézés Ekkor megjelenik az idézetet tartalmazó PDF-oldal.
  4. Ha elkészült, a kijelölt lap ismételt kiválasztásával zárja be a panelt.

A csevegőalkalmazás beállításainak használata a válaszok viselkedésének módosításához

A csevegőalkalmazás intelligenciáját az OpenAI-modell és a modell használatához használt beállítások határozzák meg.

Képernyőkép a csevegés fejlesztői beállításairól.

Beállítás Leírás
Parancssori sablon felülbírálása Ez az a kérdés, amely a válasz létrehozásához használatos.
Ennyi találat lekérése Ez a válasz létrehozásához használt keresési eredmények száma. Ezeket a forrásokat az idézet Gondolat folyamata és A tartalom támogatása lapján tekintheti meg.
Kategória kizárása Ez a dokumentumkategória, amely nem szerepel a keresési eredmények között.
Szemantikai rangsoroló használata lekéréshez Ez az Azure AI Search egyik funkciója, amely gépi tanulással javítja a keresési eredmények relevanciáját.
Lekérdezéskörnyezeti összegzések használata a teljes dokumentumok helyett Ha mindkettőt Use semantic rankerUse query-contextual summaries ellenőrzi, az LLM a legfontosabb szakaszokból kinyert képaláírás használja a legmagasabb rangsorolt dokumentumokban az összes rész helyett.
Nyomon követési kérdések ajánlása A csevegőalkalmazás a válasz alapján javasoljon további kérdéseket.
Lekérési mód A vektorok + szöveg azt jelenti, hogy a keresési eredmények a dokumentumok szövegén és a dokumentumok beágyazásán alapulnak. A vektorok azt jelentik , hogy a keresési eredmények a dokumentumok beágyazásán alapulnak. A szöveg azt jelenti, hogy a keresési eredmények a dokumentumok szövegén alapulnak.
Csevegés befejezésére adott válaszok streamelése Válasz streamelése ahelyett, hogy megvárja, amíg a teljes válasz el nem érhető a válaszhoz.

Az alábbi lépések végigvezetik a beállítások módosításának folyamatán.

  1. A böngészőben válassza a Fejlesztői Gépház lapot.

  2. Jelölje be a Következő kérdések javasolása jelölőnégyzetet, és tegye fel újra ugyanezt a kérdést.

    What is my deductible?
    

    A csevegés az alábbihoz hasonló javasolt követési kérdéseket adott vissza:

    1. What is the cost sharing for out-of-network services?
    2. Are preventive care services subject to the deductible?
    3. How does the prescription drug deductible work?
    
  3. A Gépház lapon törölje a jelölést: Szemantikai rangsoroló használata a lekéréshez.

  4. Újra felteheti ugyanezt a kérdést?

    What is my deductible?
    
  5. Mi a különbség a válaszokban?

    A szemantikai rangsorolót használó válasz például egyetlen választ adott: The deductible for the Northwind Health Plus plan is $2,000 per year.

    A szemantikai rangsor nélküli reponse választ adott, ami több munkát igényelt a válasz beszerzéséhez: Based on the information provided, it is unclear what your specific deductible is. The Northwind Health Plus plan has different deductible amounts for in-network and out-of-network services, and there is also a separate prescription drug deductible. I would recommend checking with your provider or referring to the specific benefits details for your plan to determine your deductible amount.

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ó kódtereket a Azure-Samples/azure-search-openai-demo-java GitHub-adattárból. 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 helyi menüjét, majd válassza a Törlés lehetőséget. Képernyőkép egyetlen kódtér helyi menüjéről a törlési lehetőség kiemelésével.

Hogyan ad választ a kérdésre?

Az alkalmazás két alkalmazásra van elválasztva:

  • Egy előtérbeli JavaScript-alkalmazás a React-keretrendszer és a Vite buildelési eszköz használatával.
  • Egy háttérbeli Java-alkalmazás választ ad a kérdésre.

A háttér /chat API végigvezeti a válasz beszerzésének folyamatán:

  • RAG-beállítások létrehozása: Hozzon létre egy olyan beállításkészletet, amely a válasz létrehozásához lesz felhasználva.
  • Megközelítés létrehozása RAG-beállításokkal: A lekéréses és a generatív alapú modellek kombinációjával pontos és természetes hangzású választ hozhat létre.
  • Futtassa a megközelítést a RAG beállításokkal és az előző beszélgetéssel: A megközelítés és a RAG beállításokkal az előző beszélgetés alapján hozhat létre választ. A válasz tartalmazza a válasz létrehozásához használt dokumentumokra vonatkozó információkat.

Segítség kérése

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

Ha a kibocsátott probléma nem oldja meg a problémát, jelentkezzen be az adattár problémáiba.

Következő lépések