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


Első lépések: Csevegés saját adatokkal (Python-minta)

Ez a cikk bemutatja, hogyan helyezheti üzembe és futtathatja a csevegést saját adatmintával a Python-példakód használatával. Ez a minta csevegőalkalmazás a Python, az Azure OpenAI Service és a Retrieval Augmented Generation (RAG) szolgáltatást használó Azure AI Search segítségével készült.

Az alkalmazás választ ad a fiktív vállalatnál alkalmazotti juttatásokkal kapcsolatos felhasználói kérdésekre. A Retrieval-Augmented Generation (RAG) használatával hivatkozik a megadott PDF-fájlok tartalmára, amelyek a következők lehetnek:

  • Alkalmazotti kézikönyv
  • Előnyök áttekintési dokumentuma
  • A vállalati szerepkörök és elvárások listája

A dokumentumok elemzésével az alkalmazás pontos, környezetfüggő válaszokkal válaszolhat a természetes nyelvi lekérdezésekre. Ez a megközelítés bemutatja, hogyan használhatja a saját adatait intelligens, tartományspecifikus csevegési élményekhez az Azure OpenAI és az Azure AI Search használatával.

Azt is megtudhatja, hogyan konfigurálhatja az alkalmazás beállításait a válasz viselkedésének módosításához.

A cikkben ismertetett lépések elvégzése után megkezdheti a projekt testreszabását saját kóddal. Ez a cikk egy sorozat része, amely végigvezeti önt egy csevegőalkalmazás azure OpenAI Szolgáltatással és az Azure AI Search szolgáltatással történő létrehozásán. A sorozat további cikkei a következők:

Feljegyzés

Ez a cikk egy vagy több AI-alkalmazássablonon alapul, amelyek jól karbantartott referencia-implementációkat szolgálnak. Ezeket a sablonokat úgy tervezték, hogy könnyen üzembe helyezhetők legyenek, és megbízható, kiváló minőségű kiindulópontot biztosítsanak saját AI-alkalmazások létrehozásához.

Mintaalkalmazás-architektúra

Az alábbi ábra a csevegőalkalmazás egyszerű architektúráját mutatja be.

Az ügyféltől a háttérbeli csevegőalkalmazásig az adatforrásokkal rendelkező minta architektúráját bemutató ábra.

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

  • Egy webalkalmazás, amely az interaktív csevegőfelületet üzemelteti (általában Python Flask vagy JavaScript/React használatával), és felhasználói kérdéseket küld a háttérrendszernek feldolgozás céljából.
  • Egy Azure AI Search-erőforrás, amely intelligens keresést végez indexelt dokumentumokon (PDF-fájlokon, Word-fájlokon stb.) keresztül, és releváns dokumentumrészleteket (adattömböket) ad vissza a válaszokban való használathoz.
  • Egy Azure OpenAI-szolgáltatáspéldány, amely:
    • Dokumentumokat és felhasználói kérdéseket alakít át vektoros ábrázolásokká a szemantikai hasonlóság kereséséhez.
    • Kinyeri a fontos kulcsszavakat az Azure AI Search-lekérdezések finomításához.
    • A beolvasott adatok és a felhasználói lekérdezés használatával szintetizálja a végső válaszokat.

A csevegőalkalmazás jellemző folyamata a következő:

  • A felhasználó egy kérdést küld be: A felhasználó természetes nyelvi kérdést ad meg a webalkalmazás felületén keresztül.
  • Az Azure OpenAI feldolgozza a kérdést: A háttérrendszer az Azure OpenAI-t használja a következő célokra:
    • Hozza létre a kérdés beágyazását a text-embedding-ada-002 modellel.
    • Kulcsszavak kinyerése igény szerint a keresési relevancia finomítása érdekében
  • Az Azure AI Search a releváns adatokat kéri le: A beágyazással vagy kulcsszavakkal szemantikai keresést hajthat végre indexelt tartalmakon (például PDF-fájlokon) az Azure AI Searchben.
  • Az eredmények kombinálása a kérdéssel: A legrelevánsabb dokumentumrészletek (adattömbök) a felhasználó eredeti kérdésével vannak kombinálva.
  • Az Azure OpenAI létrehoz egy választ: A rendszer a kombinált bemenetet egy GPT-modellnek (például gpt-35-turbo vagy gpt-4) továbbítja, amely környezetérzékeny választ hoz létre.
  • A rendszer visszaadja a választ a felhasználónak: A létrehozott válasz megjelenik a csevegőfelületen.

Előfeltételek

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

  • Egy Azure-előfizetés. Mielőtt hozzákezdene, hozzon létre egy ingyenes fiókot.

  • Azure-fiókengedélyek. Az Azure-fiókjának Microsoft.Authorization/roleAssignments/write engedélyekkel kell rendelkeznie. Az olyan szerepkörök, mint a felhasználói hozzáférés rendszergazdája vagy a tulajdonos , megfelelnek ennek a követelménynek.

  • Az Azure OpenAI-nak biztosított hozzáférés az Azure-előfizetésben. A legtöbb esetben egyéni tartalomszűrőket hozhat létre, és az Azure OpenAI-modellekhez való általános hozzáféréssel kezelheti a súlyossági szinteket. A jóváhagyásalapú hozzáférés regisztrációja nem szükséges az általános hozzáféréshez. További információ: Korlátozott hozzáférésű szolgáltatások az Azure AI-szolgáltatásokhoz.

  • Tartalomszűrő vagy visszaélés módosítása (nem kötelező). Egyéni tartalomszűrők létrehozásához, a súlyossági szintek módosításához vagy a visszaélések monitorozásának támogatásához hivatalos hozzáférés-jóváhagyásra van szükség. A hozzáférésre a szükséges regisztrációs űrlapok kitöltésével jelentkezhet. További információt a módosított tartalomszűrők regisztrációja és/vagy a visszaélések monitorozása című témakörben talál.

  • A hozzáférés támogatása és hibaelhárítása. A hibaelhárításhoz való hozzáféréshez nyisson meg egy támogatási problémát a GitHub-adattárban.

  • Egy GitHub-fiók. Az adattár megforkozására és a GitHub Codespaces használatára vagy helyi klónozására van szükség.

A mintaerőforrások használati költsége

Az architektúrában használt erőforrások többsége alapszintű vagy használatalapú tarifacsomagok alá tartozik. Ez azt jelenti, hogy csak azért kell fizetnie, amit használ, és a költségek általában minimálisak a fejlesztés vagy a tesztelés során.

A minta elvégzéséhez kisebb költségek merülhetnek fel az olyan szolgáltatások használatából, mint az Azure OpenAI, az AI Search és a Storage. Miután végzett az alkalmazás kiértékelésével vagy üzembe helyezésével, törölheti az összes kiépített erőforrást, hogy elkerülje a folyamatos díjakat.

A várható költségek részletes lebontásához tekintse meg a mintához tartozó GitHub-adattár költségbecslését .

Nyílt fejlesztési környezet

Először is állítson be egy olyan fejlesztői környezetet, amely minden függőséget telepítve van a cikk végrehajtásához.

  • Egy Azure-előfizetés. Hozzon létre egyet ingyenesen.
  • Azure-fiókengedélyek. Az Azure-fiókjának Microsoft.Authorization/roleAssignments/write engedélyekkel kell rendelkeznie. Az olyan szerepkörök, mint a felhasználói hozzáférés rendszergazdája vagy a tulajdonos , megfelelnek ennek a követelménynek.
  • Egy GitHub-fiók. Az adattár megforkozására és a GitHub Codespaces használatára vagy helyi klónozására van szükség.

Fejlesztői környezet megnyitása

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.

A legegyszerűbb és leggördülékenyebb beállításhoz használja a GitHub Codespacest. A GitHub Codespaces a GitHub által felügyelt fejlesztői tárolót futtat, és felhasználói felületként (UI) biztosítja a Webes Visual Studio Code-ot . Ez a környezet tartalmazza az összes szükséges eszközt, SDK-t, bővítményt és függőséget előre telepítve, így manuális konfiguráció nélkül azonnal megkezdheti a fejlesztést.

A Codespaces használata biztosítja a következőket:

  • A megfelelő fejlesztői eszközök és verziók már telepítve vannak.
  • Nem kell helyileg telepítenie a Dockert, a VS Code-ot vagy a bővítményeket.
  • Gyors előkészítés és reprodukálható környezet beállítása.

Fontos

Minden GitHub-fiók legfeljebb 60 órán át használhatja a GitHub Codespace-eket havonta 2 magpéldánysal. Ha túllépi az ingyenes kvótát, vagy nagyobb számítási lehetőségeket használ, a szokásos GitHub Codespaces számlázási díjak érvényesek. További információ: GitHub Codespaces – Havi belefoglalt tárterület és alapórák.

  1. A mintaprojekt használatához hozzon létre egy új GitHub-kódteret a mainAzure-Samples/azure-search-openai-demo GitHub-adattár ágán.

    Kattintson a jobb gombbal a GitHub Codespaces – Megnyitás lehetőségre az adattárlap tetején, és válassza a Hivatkozás megnyitása lehetőséget az új ablakban. Ez biztosítja, hogy a fejlesztői tároló egy teljes képernyős, dedikált böngészőlapon induljon el, így hozzáférhet a forráskódhoz és a beépített dokumentációhoz is.

    A

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

    Képernyőkép a megerősítést kérő képernyőről, amely új GitHub-kódteret hoz létre a mintához.

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

  3. Miután megnyílik a GitHub-kódtér, jelentkezzen be az Azure-ba az Azure Developer CLI-vel a kódtér terminálablakában a következő parancs megadásával:

    azd auth login
    

    A GitHub egy biztonsági kódot jelenít meg a Terminál panelen.

    1. Másolja ki a biztonsági kódot a Terminál panelen, és válassza az Enter lehetőséget. Megnyílik egy böngészőablak.

    2. A parancssorban illessze be a biztonsági kódot a böngészőmezőbe.

    3. Kövesse az utasításokat az Azure-fiókkal való hitelesítéshez.

A jelen cikkben szereplő további GitHub Codespaces-feladatokat ennek a fejlesztési tárolónak a kontextusában kell elvégeznie.

Csevegőalkalmazás üzembe helyezése az Azure-ban

A mintaadattár mindent tartalmaz, amire szüksége van a csevegés saját adatalkalmazással való üzembe helyezéséhez az Azure-ban, beleértve a következőket:

  • Alkalmazás forráskódja (Python)
  • Infrastruktúra mint kód fájlok (Bicep)
  • Konfigurálás a GitHub-integrációhoz és a CI/CD-hez (nem kötelező)

Az alábbi lépésekkel telepítheti az alkalmazást az Azure Developer CLI-vel (azd).

Fontos

Az ebben a szakaszban létrehozott Azure-erőforrások – különösen az Azure AI Search – azonnal megkezdhetik a díjak felszámítását a kiépítéskor, még akkor is, ha az üzembe helyezés a befejezés előtt megszakad. A váratlan költségek elkerülése érdekében monitorozza az Azure-használatot, és a tesztelés után azonnal törölje a nem használt erőforrásokat.

  1. A Visual Studio Code Terminal panelen hozza létre az Azure-erőforrásokat, és telepítse a forráskódot az alábbi azd parancs futtatásával:

    azd up
    
  2. A folyamat a konfiguráció alapján az alábbi beállítások közül egy vagy több megadását kéri:

    • Környezet neve: Ez az érték az erőforráscsoport nevének részeként használatos. Írjon be egy rövid nevet kisbetűkkel és kötőjelekkel (-például myenv). A nagybetűk, számok és speciális karakterek nem támogatottak.

    • Előfizetés: Válassza ki az előfizetést az erőforrások létrehozásához. Ha nem látja a kívánt előfizetést, a nyílbillentyűkkel görgetheti az elérhető előfizetések teljes listáját.

    • Hely: Ezt a régióhelyet használják a legtöbb erőforráshoz, beleértve az üzemeltetést is. Válasszon egy régióhelyet az Önhöz közel földrajzilag.

    • OpenAI-modell vagy dokumentumintelligencia-erőforrás helye: Válassza ki a földrajzilag legközelebbi helyet. Ha a helyhez kiválasztott régió elérhető ehhez a beállításhoz, jelölje ki ugyanazt a régiót.

    Az alkalmazás üzembe helyezése eltarthat egy ideig. A folytatás előtt várja meg, amíg az üzembe helyezés befejeződik.

  3. Az alkalmazás sikeres üzembe helyezése után a Terminál panelen megjelenik egy végpont URL-címe:

    Képernyőkép az üzembe helyezett alkalmazás végponti URL-címéről az

  4. Válassza ki a végpont URL-címét a csevegőalkalmazás böngészőben való megnyitásához:

    Képernyőkép a csevegőalkalmazásról, amelyen számos javaslat látható a csevegési bevitelhez, és a csevegés szövegmezője egy kérdés megadá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öltve tartalmazza az alkalmazottak juttatási adatait, amelyek PDF fájlokból származnak. 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. A válaszok a mögöttes modellek frissítésekor változhatnak.

  1. A csevegőalkalmazásban válassza a Mi történik a teljesítményértékelésben? lehetőséget, vagy írja be ugyanazt a szöveget a csevegés szövegmezőbe. Az alkalmazás a kezdeti választ adja vissza:

    Képernyőkép a csevegőalkalmazásnak a kérdésre adott kezdeti válaszáról: Mi történik a teljesítményértékelésben?

  2. A válaszmezőben válasszon ki egy idézetet:

    Képernyőkép a csevegőalkalmazás válaszmezőjében kiemelt idézetről.

  3. A GitHub Codespaces megnyitja a megfelelő Idézet panelt három többlapos régióval, és a fókusz az Idézet lapon van:

    Képernyőkép a GitHub Codespacesben megnyitott jobb oldali panelről, amelyen az Idézet lap információi láthatók.

    A GitHub Codespaces három lapnyi információt tartalmaz, amelyek segítenek megérteni, hogy a csevegőalkalmazás hogyan generálta a választ:

    Fül Leírás
    Gondolatfolyamat Megjeleníti a kérdés-válasz interakciók szkriptét a csevegésben. Megtekintheti a csevegőalkalmazás systemáltal biztosított tartalmat, a usermegadott kérdéseket és a rendszer assistantáltal tett pontosításokat.
    Támogató tartalom Felsorolja a kérdés megválaszolásához használt információkat és a forrásanyagot. A forrásanyag-idézetek számát a fejlesztői beállítások adja meg. Az idézetek alapértelmezett száma 3.
    Idézés A kijelölt idézet eredeti forrását jeleníti meg.
  4. Ha elkészült, válassza ki az aktuálisan kijelölt lapot a jobb oldali panelen. A jobb oldali panel bezárul.

A válasz viselkedésének módosítása a beállítások használatával

Az adott OpenAI-modell határozza meg a csevegés intelligenciáját és a modell használatához használt beállításokat. A Fejlesztői beállítások lehetőség megnyitja a Válaszgenerálás konfigurálása panelt, ahol módosíthatja a csevegőalkalmazás beállításait:

Képernyőkép a csevegőalkalmazás jobb oldali ablaktábláján elérhető fejlesztői beállításokról.

Beállítás Leírás
parancssori sablon felülbírálása Felülbírálja a kérdés és a keresési eredmények alapján használt promptot, amely a válasz létrehozására szolgál.
hőmérséklet Beállítja a kérés hőmérsékletét a választ generáló nagy nyelvi modellre (LLM). A magasabb hőmérsékletek kreatívabb válaszokat eredményeznek, de kevésbé lesznek megalapozottak.
mag Beállít egy magot a modell válaszainak reprodukálhatóságának javítása érdekében. A mag lehet bármilyen egész szám.
Minimális keresési pontszám Beállítja az Azure AI Search által visszaadott keresési eredmények minimális pontszámát. A pontszámtartomány attól függ, hogy a Hibrid (alapértelmezett), a Vektorokat vagy csak a Szöveget használja a lekérési mód beállításához.
Minimális pontszám a rerankerhez Beállítja a szemantikai rerankerből visszaadott keresési eredmények minimális pontszámát. A pontszám mindig 0 és 4 között mozog. Minél magasabb a pontszám, annál szemantikailag relevánsabb az eredmény a kérdésre.
Ennyi találat lekérése Beállítja az Azure AI Searchből lekérendő keresési eredmények számát. A további eredmények növelhetik a helyes válasz megtalálásának valószínűségét, de előfordulhat, hogy a modell "középen elveszik". A visszaadott források az Idézet panel Gondolatfolyamat és Támogató tartalom lapján láthatók.
Kategória belefoglalása Megadja a keresési eredmények létrehozásakor figyelembe venni kívánt kategóriákat. A legördülő listával választhatja ki a kívánt elemet. Az alapértelmezett művelet az összes kategória belefoglalása.
Kategória kizárása Megadja a keresési eredményekből kizárandó kategóriákat. Az alapértelmezett adatkészletben nincsenek kategóriák.
Szemantikai rangsoroló használata az információk visszakereséséhez Lehetővé teszi az Azure AI Search szemantikai rangsorolóját, amely a keresési eredményeket a felhasználó lekérdezéséhez való szemantikai hasonlóság alapján adja vissza.
Szemantikai feliratok használata Szemantikai feliratokat küld az LLM-nek a teljes keresési eredmény helyett. A szemantikai feliratok a szemantikai rangsorolás folyamata során nyerik ki a keresési eredményekből.
Nyomon követési kérdések ajánlása Megkéri az LLM-et, hogy a felhasználó lekérdezése alapján javasoljon követő kérdéseket.
lekérési mód Beállítja az Azure AI Search lekérdezés lekérési módját. Az alapértelmezett művelet a Vektorok + Szöveg (Hibrid), amely a vektorkeresés és a teljes szöveges keresés kombinációját használja. A Vektorok beállítás csak vektorkeresést használ. A Szöveg beállítás csak teljes szöveges keresést használ. A hibrid megközelítés optimális.
Csevegés befejezésére adott válaszok streamelése Folyamatosan streameli a csevegés felhasználói felületére adott választ a tartalom létrehozásakor.

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 beállítások lehetőséget.

  2. A beállítás engedélyezéséhez jelölje be a Következő kérdések javasolása jelölőnégyzetet, majd a Bezárás gombra kattintva alkalmazza a beállításmódosítást.

  3. A csevegőalkalmazásban adja meg újra a kérdést, ezúttal a kérdésmezőbe írja be a szöveget:

    What happens in a performance review?
    

    A csevegőalkalmazás válasza mostantól javasolt követő kérdéseket is tartalmaz:

    Képernyőkép arról, hogy a csevegőalkalmazás hogyan ad javasolt követő kérdéseket a válasz után.

  4. Válassza ismét a Fejlesztői beállítások lehetőséget, és törölje a jelölést a Szemantikai rangsoroló használata a lekéréshez opciónál. Zárja be a beállításokat.

  5. Tegye fel ismét ugyanezt a kérdést, és figyelje meg a csevegőalkalmazás válaszában lévő különbséget.

    A Szemantikai rangsorolóval: "A Contoso Electronics teljesítményértékelése során a felettese megvitatja az elmúlt év teljesítményét, és visszajelzést ad a fejlesztési területekről. Lehetősége lesz arra is, hogy megbeszélje céljait és célkitűzéseit a következő évre vonatkozóan. A felülvizsgálat kétirányú párbeszéd a vezetők és az alkalmazottak között, és arra ösztönzik az alkalmazottakat, hogy őszinteek és nyitottak legyenek a folyamat során (1). A felülvizsgálat során kapott visszajelzésnek pozitívnak és konstruktívnak kell lennie, amelynek célja, hogy segítse az alkalmazottakat a szerepkörük fejlesztésében és növekedésében. Az alkalmazottak írásos összefoglalót kapnak a teljesítményértékelésükről, amely tartalmazza a következő évre vonatkozó teljesítményértékelésüket, visszajelzésüket, céljaikat és célkitűzéseiket (1)."

    A Szemantikai rangsoroló nélkül: "A Contoso Electronics teljesítményértékelése során a felettese megvitatja az elmúlt év teljesítményét, és visszajelzést ad a fejlesztési területekről. Ez egy kétirányú párbeszéd, amelyben arra ösztönzik, hogy őszinte és nyitott legyen (1). A véleményezés során kapott visszajelzésnek pozitívnak és konstruktívnak kell lennie, amelynek célja, hogy segítse a fejlődést és a növekedést a szerepkörödben. A felülvizsgálatról írásos összefoglalót fog kapni, amely tartalmazza a következő évre vonatkozó teljesítményértékelést, visszajelzést és célokat (1)."

Az erőforrások felmérése és tisztítása

A gyakorlat elvégzése után ajánlott eltávolítani a már nem szükséges erőforrásokat.

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

A cikkben létrehozott Azure-erőforrások az Azure-előfizetését terhelik. 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.

Törölje az Azure-erőforrásokat, és távolítsa el a forráskódot a következő azd parancs futtatásával:

azd down --purge --force

A parancskapcsolók a következők:

  • purge: A törölt erőforrások azonnal megsemmisítésre kerülnek. Ez a beállítás lehetővé teszi az Azure OpenAI-jogkivonatok percenkénti (TPM) metrikájának újrahasznosítását.
  • force: A törlés észrevétlenül, felhasználói hozzájárulás nélkül történik.

GitHub-kódterek tisztí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 belefoglalt tárterület és alapórák című témakörben talál.

  1. Jelentkezzen be a GitHub Codespaces irányítópultba.

  2. Az irányítópulton keresse meg a GitHub-adattárból Azure-Samples/azure-search-openai-demo származó, jelenleg futó kódtereket:

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

  3. Nyissa meg a kódtér helyi menüjét, és válassza a Törlés elemet:

    Képernyőkép egyetlen kódtér helyi menüjéről a törlési lehetőség kiemelésével.

Segítség kérése

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

Ha a problémája nincs megoldva, adja hozzá az adattár Problémák weblapjához.

  • Szerezze be a cikkben használt példa forráskódját
  • Csevegőalkalmazás építése az Azure OpenAI használatával – legjobb gyakorlati megoldásarchitektúra
  • Hozzáférés kezelés a generatív mesterséges intelligencia alkalmazásokban az Azure AI Search használatával
  • Nagyvállalati igényekre kész OpenAI-megoldás kiépítése az Azure API Management használatával
  • A vektorkeresés túlteljesítése hibrid lekérési és rangsorolási funkciókkal