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.
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:
- .HÁLÓ
- Java
- JavaScript
- JavaScript-előtér Python-háttérrendszerrel
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 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:
- GitHub Codespaces (ajánlott)
- Visual Studio Code
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.
- GitHub Codespaces (ajánlott)
- Visual Studio Code
- 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.
- GitHub Codespaces (ajánlott)
- Visual Studio Code
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.
A mintaprojekt használatához hozzon létre egy új GitHub-kódteret a
mainAzure-Samples/azure-search-openai-demoGitHub-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.
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:
Várja meg, amíg a GitHub-kódtér elindul. Az indítási folyamat eltarthat néhány percig.
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 loginA GitHub egy biztonsági kódot jelenít meg a Terminál panelen.
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.
A parancssorban illessze be a biztonsági kódot a böngészőmezőbe.
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.
A Visual Studio Code Terminal panelen hozza létre az Azure-erőforrásokat, és telepítse a forráskódot az alábbi
azdparancs futtatásával:azd upA 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.
Az alkalmazás sikeres üzembe helyezése után a Terminál panelen megjelenik egy végpont URL-címe:
Válassza ki a végpont URL-címét 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ö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.
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:
A válaszmezőben válasszon ki egy idézetet:
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:
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, ausermegadott kérdéseket és a rendszerassistantá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. 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:
| 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.
A böngészőben válassza a Fejlesztői beállítások lehetőséget.
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.
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:
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.
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
- GitHub Codespaces
- Visual Studio Code
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.
Jelentkezzen be a GitHub Codespaces irányítópultba.
Az irányítópulton keresse meg a GitHub-adattárból
Azure-Samples/azure-search-openai-demoszármazó, jelenleg futó kódtereket:Nyissa meg a kódtér helyi menüjét, és válassza a Törlés elemet:
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.
Kapcsolódó tartalom
- 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