DevOps-eljárások a LUIS-hoz
Fontos
A LUIS 2025. október 1-jén megszűnik, és 2023. április 1-től nem hozhat létre új LUIS-erőforrásokat. Javasoljuk, hogy a LUIS-alkalmazásokat a beszélgetési nyelv megértésére migrálja, hogy kihasználhassa a terméktámogatás és a többnyelvű képességek előnyeit.
A Language Understanding (LUIS) alkalmazást fejlesztő szoftvermérnökök ezen irányelvek követésével alkalmazhatják a DevOps-gyakorlatokat a forráskezelés, az automatizált buildek, a tesztelés és a kiadáskezelés területén.
A LUIS verziókövetési és elágaztatási stratégiái
A DevOps sikerének egyik fő tényezője a forráskövetés. A forrásvezérlő rendszer lehetővé teszi a fejlesztők számára, hogy együttműködjenek a kódon, és nyomon kövessék a változásokat. Az ágak használata lehetővé teszi a fejlesztők számára, hogy váltson a kódbázis különböző verziói között, és a csapat többi tagjától függetlenül működjön. Amikor a fejlesztők lekéréses kérelmet (PR) terjesztenek elő, amely frissítéseket javasol az egyik ágról a másikra, vagy ha a módosítások egyesülnek, ezek lehetnek az automatikus buildek kiváltói a kód összeállításához és folyamatos teszteléséhez.
A dokumentumban ismertetett fogalmak és útmutatók használatával luis-alkalmazásokat fejleszthet a forrásvezérlő rendszerek változásainak nyomon követése során, és kövesse az alábbi ajánlott szoftvermérnöki eljárásokat:
Verziókövetés
- A LUIS-alkalmazás forráskódja ember által olvasható formátumban van.
- A modell ismételhető módon készíthető forrásból.
- A forráskódot egy forráskódtár felügyelheti.
- A hitelesítő adatok és a titkos kulcsok, például a kulcsok soha nem tárolódnak forráskódban.
Elágaztatás és egyesítés
- A fejlesztők önálló ágakból dolgozhatnak.
- A fejlesztők egyszerre több ágban is dolgozhatnak.
- A LUIS-alkalmazások módosításait az egyik ágból a másikba is integrálhatja újrabázissal vagy egyesítéssel.
- A fejlesztők egyesíthetik a lekéréses kérelmet a szülőágban.
Verziószámozás
- Egy nagy alkalmazás minden összetevőjét külön verziószámmal kell kezelni, így a fejlesztők csak a verziószám alapján észlelhetik a kompatibilitástörő változásokat vagy frissítéseket.
Kódértékelések
- A lekéréses kérelem módosításai emberi olvasható forráskódként jelennek meg, amelyek a kérelem elfogadása előtt áttekinthetők.
Verziókövetés
Ha egy LUIS-alkalmazás alkalmazásséma-definícióját egy forráskódkezelő rendszerben szeretné fenntartani, használja az alkalmazás LUDown formátumú (.lu
) ábrázolását. .lu
A formátumot előnyben részesíti a .json
formátum, mert az emberi olvasásra alkalmas, ami megkönnyíti a PRS-módosítások végrehajtását és áttekintését.
LUIS-alkalmazás mentése LUDown formátumban
Luis-alkalmazás formátumba .lu
mentéséhez és forráskövetés alá helyezéséhez:
VAGY: Exportálja az alkalmazás verzióját
.lu
a LUIS-portálról, és adja hozzá a forrásvezérlő adattárhozVAGY: Szövegszerkesztő használatával hozzon létre egy
.lu
fájlt egy LUIS-alkalmazáshoz, és adja hozzá a forrásvezérlő tárházához
Tipp.
Ha egy LUIS-alkalmazás JSON-exportálásával dolgozik, átalakíthatja LUDown-ra. Ezzel a beállítással biztosíthatja, hogy a --sort
szándékok és a kimondott szövegek betűrendbe vannak rendezve.
Vegye figyelembe, hogy a . A LUIS-portálba beépített LU-exportálási képesség már rendezi a kimenetet.
A LUIS-alkalmazás létrehozása forrásból
A LUIS-alkalmazások esetében a forrásból való buildelés azt jelenti, hogy létrehozunk egy új LUIS-alkalmazásverziót a .lu
forrás importálásával, a verzió betanításával és közzétételével. Ezt a LUIS portálon vagy a parancssorban teheti meg:
A LUIS-portál használatával importálhatja az alkalmazás verzióját a
.lu
forrásvezérlőből, és betanítsa és közzétegye az alkalmazást.A Robot Framework parancssori felületén a LUIS parancssori vagy CI/CD-munkafolyamatában importálhatja az
.lu
alkalmazás verzióját a forrásvezérlőből egy LUIS-alkalmazásba, és betaníthatja és közzéteheti az alkalmazást.
A forráskövetés alatt karbantartandó fájlok
A LUIS-alkalmazás következő fájltípusait a forráskövetés alatt kell tartani:
.lu
a LUIS-alkalmazás fájljaEgységteszt definíciós fájljai (kimondott szövegek és várt eredmények)
A teljesítményteszteléshez használt Batch-tesztfájlok (kimondott szövegek és várt eredmények)
A hitelesítő adatok és a kulcsok nincsenek beadva
Ne tartalmazzon kulcsokat vagy hasonló bizalmas értékeket az adattárba bejelentkezett fájlokban, ahol illetéktelen személyek láthatják őket. A bejelentkezést megakadályozó kulcsok és egyéb értékek a következők:
- LUIS szerzői és előrejelzési kulcsok
- LUIS-létrehozási és előrejelzési végpontok
- Azure-erőforráskulcsok
- Hozzáférési jogkivonatok, például az automatizálási hitelesítéshez használt Azure-szolgáltatásnév jogkivonata
Stratégiák a titkos kódok biztonságos kezelésére
A titkos kódok biztonságos kezelésére szolgáló stratégiák a következők:
- Ha Git-verziókövetést használ, tárolhat futtatókörnyezeti titkos kulcsokat egy helyi fájlban, és megakadályozhatja a fájl beadását úgy, hogy egy .gitignore-fájlhoz a fájlnévnek megfelelő mintát ad hozzá.
- Egy automatizálási munkafolyamatban biztonságosan tárolhatja a titkos kulcsokat az automatizálási technológia által kínált paraméterek konfigurációjában. Ha például GitHub Actionst használ, a titkos kulcsokat biztonságosan tárolhatja a GitHub titkos kulcsaiban.
Elágaztatás és egyesítés
A Githez hasonló elosztott verziókövetési rendszerek rugalmasságot biztosítanak a csapattagok számára a kódmódosítások közzétételében, megosztásában, áttekintésében és iterálásában a másokkal megosztott fejlesztési ágakon keresztül. A csapatának megfelelő Git-elágaztatási stratégia bevezetése.
Bármelyik elágaztatási stratégiát is alkalmazza, mindegyik fő alapelve, hogy a csapattagok a szolgáltatáságon belül a más ágakban végzett munkától függetlenül dolgozhatnak a megoldáson.
Az ágakban való független munka támogatása LUIS-projekttel:
A főág saját LUIS-alkalmazással rendelkezik. Ez az alkalmazás a projekt megoldásának aktuális állapotát jelöli, és az aktuális aktív verziónak mindig a
.lu
főágban található forráshoz kell megfeleltetnie. Az alkalmazás forrásának minden frissítését.lu
felül kell vizsgálni és tesztelni kell, hogy az alkalmazás bármikor üzembe helyezhető legyen olyan környezetek létrehozására, mint például az Éles környezet. Ha a.lu
frissítéseket egy szolgáltatáságból egyesíti a főbe, létre kell hoznia egy új verziót a LUIS alkalmazásban, és meg kell akadályoznia a verziószámot.Minden szolgáltatáságnak a LUIS-alkalmazás saját példányát kell használnia. A fejlesztők egy szolgáltatáságban dolgoznak az alkalmazással anélkül, hogy a más ágakban dolgozó fejlesztőket érintenék. Ez a "fejlesztői ág" alkalmazás egy működő példány, amelyet a szolgáltatáság törlésekor törölni kell.
A fejlesztők önálló ágakból dolgozhatnak
A fejlesztők a LUIS-alkalmazások frissítéseit a többi ágtól függetlenül a következőkkel végezhetik el:
Szolgáltatáság létrehozása a fő ágból (a fiókstratégiától függően általában fő vagy fejlesztés).
Hozzon létre egy új LUIS-alkalmazást a LUIS-portálon (a "dev branch appban") kizárólag a funkcióágban végzett munka támogatásához.
Ha a
.lu
megoldás forrása már létezik az ágban, mert a projekt egy másik ágában végzett munka után mentette, hozza létre a fejlesztői ág LUIS-alkalmazását a.lu
fájl importálásával.Ha új projekten kezd dolgozni, még nem lesz meg a
.lu
fő LUIS-alkalmazás forrása az adattárban. A fájlt úgy.lu
hozza létre, hogy exportálja a fejlesztői ág alkalmazást a portálról, amikor befejezte a szolgáltatásági munkát, és elküldi azt a lekéréses kérelem részeként.
A szükséges módosítások implementálásához dolgozzon a fejlesztői ág alkalmazás aktív verzióján. Javasoljuk, hogy csak a fejlesztői ág alkalmazás egyetlen verziójában működjön az összes funkcióági munkához. Ha egynél több verziót hoz létre a fejlesztői ágalkalmazásban, ügyeljen arra, hogy nyomon kövesse, hogy melyik verzió tartalmazza azokat a módosításokat, amelyeket be szeretne jelentkezni a lekéréses kérelem létrehozásakor.
Tesztelje a frissítéseket – a dev branch alkalmazás tesztelésével kapcsolatos részletekért tekintse meg a LUIS DevOps tesztelését.
Exportálja a fejlesztői ág alkalmazás
.lu
aktív verzióját a verziók listájából.Ellenőrizze a frissítéseket, és hívja meg a frissítések társ-felülvizsgálatát. Ha GitHubot használ, lekéréses kérelmet fog kezdeményezni.
A módosítások jóváhagyása után egyesítse a frissítéseket a főágban. Ezen a ponton a fő LUIS-alkalmazás új verzióját fogja létrehozni a frissített
.lu
főverzió használatával. A verziónév beállításával kapcsolatos szempontokat a Verziószámozás című témakörben talál.A szolgáltatáság törlésekor érdemes törölni a szolgáltatáság működéséhez létrehozott fejlesztői ág LUIS-alkalmazást.
A fejlesztők egyszerre több ágban is dolgozhatnak
Ha a fejlesztőkben leírt mintát követi, független ágakból is dolgozhat, akkor minden szolgáltatáságban egy egyedi LUIS-alkalmazást fog használni. Egyetlen fejlesztő egyszerre több ágon is dolgozhat, amíg a jelenleg használt ághoz a megfelelő fejlesztői ág LUIS-alkalmazásra vált.
Javasoljuk, hogy ugyanazt a nevet használja a szolgáltatásághoz és a szolgáltatásági munkához létrehozott fejlesztői ág LUIS-alkalmazáshoz is, így kevésbé valószínű, hogy véletlenül nem a megfelelő alkalmazáson fog dolgozni.
Ahogy fentebb említettük, javasoljuk, hogy az egyszerűség kedvéért minden fejlesztői ágalkalmazásban egyetlen verzióban működjön. Ha több verziót használ, ügyeljen arra, hogy a fejlesztői ágalkalmazások közötti váltáskor a megfelelő verziót aktiválja.
Egyszerre több fejlesztő is dolgozhat ugyanazon az ágon
Egyszerre több fejlesztőt is támogathat ugyanazon a szolgáltatáságon:
A fejlesztők ugyanazt a funkcióágat ellenőrzik, és leküldik és lekérik a saját maguk és más fejlesztők által beküldött módosításokat, miközben a munka folytatódik, a szokásos módon.
Ha a fejlesztőkben leírt mintát követi, akkor ez az ág egy egyedi LUIS-alkalmazást fog használni a fejlesztés támogatására. Ezt a "fejlesztői ág" LUIS-alkalmazást a fejlesztői csapat első tagja hozza létre, aki megkezdi a munkát a funkcióágban.
Csapattagok hozzáadása közreműködőként a fejlesztői ág LUIS-alkalmazásához.
Ha a funkcióág működése befejeződött, exportálja a fejlesztői ág LUIS-alkalmazás
.lu
aktív verzióját a verziók listájából, mentse a frissített.lu
fájlt az adattárba, és jelentkezzen be, és végezze el a módosítások lekérését.
Módosítások beépítése egyik ágról a másikra újrabázissal vagy egyesítéssel
Előfordulhat, hogy a csapat egy másik ágban dolgozó többi fejlesztője frissítette a .lu
forrást, és egyesítette őket a főágban a funkcióág létrehozása után. Érdemes lehet beépíteni a módosításokat a munkaverzióba, mielőtt továbbra is saját módosításokat hajt végre a funkcióágon belül. Ezt úgy teheti meg, hogy újrabázist vagy egyesítést végez a fő értékre, ugyanúgy, mint bármely más kódeszköz. Mivel a LUDown formátumú LUIS-alkalmazás emberi olvasásra alkalmas, támogatja az egyesítést szabványos egyesítési eszközökkel.
Kövesse az alábbi tippeket, ha a LUIS-alkalmazást egy szolgáltatáságban szeretné újból leküldni:
Mielőtt újrabázist vagy egyesítést hajt végre, győződjön meg arról, hogy az
.lu
alkalmazás forrásának helyi példánya rendelkezik a LUIS-portálon alkalmazott legújabb módosításokkal, és először exportálja újra az alkalmazást a portálról. Így gondoskodhat arról, hogy a portálon végrehajtott és még nem exportált módosítások ne vesszenek el.Az egyesítés során szabványos eszközökkel oldhatja meg az egyesítési ütközéseket.
Ne felejtse el, hogy az újrabázis vagy az egyesítés befejeződése után újra importálja az alkalmazást a portálra, hogy a frissített alkalmazással dolgozzon, miközben továbbra is alkalmazza a saját módosításait.
PRS-ek egyesítése
A lekéréses kérelem jóváhagyása után egyesítheti a módosításokat a főágban. A LUIS-alkalmazások LUDown-forrására nem vonatkoznak különös szempontok: emberi olvasásra alkalmas, ezért támogatja az egyesítést a standard egyesítési eszközökkel. Az egyesítési ütközések ugyanúgy oldhatók fel, mint más forrásfájlok esetén.
A lekéréses kérelem egyesítése után javasolt a törlés:
Az ág törlése az adattárban
Törölje a szolgáltatáság-munkához létrehozott "dev branch" LUIS-alkalmazást.
Ugyanúgy, mint az alkalmazáskód-objektumok esetén, egységteszteket kell írnia a LUIS-alkalmazásfrissítésekhez. A teszteléshez folyamatos integrációs munkafolyamatokat kell alkalmaznia:
- Frissítések a lekéréses kérelemben a lekéréses kérelem egyesítése előtt
- A főági LUIS-alkalmazás a lekéréses kérelem jóváhagyása után és a módosítások főágba való egyesítése után.
A LUIS DevOps teszteléséről további információt a LUIS-hoz készült DevOps tesztelése című témakörben talál. A munkafolyamatok implementálásával kapcsolatos további részletekért tekintse meg a LUIS DevOps Automation-munkafolyamatait.
Kódáttekintés
A LUDown formátumú LUIS-alkalmazások emberi módon olvashatók, ami támogatja a korrektúra-módosítások áttekintésre alkalmas kommunikációját. Az egységtesztfájlok LUDown formátumban is meg vannak írva, és könnyen áttekinthetők a lekéréses kérelemben is.
Verziókezelés
Az alkalmazások több összetevőből állnak, amelyek közé tartozhat például az Azure AI Bot Service-ben futó robot, a QnA Maker, az Azure AI Speech szolgáltatás stb. A lazán összekapcsolt alkalmazások céljának eléréséhez használja a verziókövetést úgy, hogy az alkalmazás minden összetevőjét függetlenül verziószámozza, így a fejlesztők csak a verziószám alapján észlelik a kompatibilitástörő módosításokat vagy frissítéseket. Ha a LUIS-alkalmazást a saját adattárában tartja karban, egyszerűbb a LUIS-alkalmazás más összetevőktől függetlenül történő verziószámba osztása.
A főág LUIS-alkalmazásának verziószámozási sémát kell alkalmaznia. Amikor egy LUIS-alkalmazás frissítéseit .lu
a főágba egyesíti, a frissített forrást a főág LUIS-alkalmazásának új verziójába importálja.
A LUIS-alkalmazás fő verziójához ajánlott numerikus verziószámozási sémát használni, például:
major.minor[.build[.revision]]
Minden frissítésnél a verziószám az utolsó számjegynél növekszik.
A fő/alverzió a LUIS-alkalmazás funkcióinak módosításának hatókörét jelzi:
- Főverzió: Jelentős változás, például új szándék vagy entitás támogatása
- Alverzió: Visszafelé kompatibilis kisebb módosítás, például jelentős új betanítás után
- Build: Nem változik a funkció, csak egy másik build.
Miután meghatározta a fő LUIS-alkalmazás legújabb verziójának verziószámát, létre kell hoznia és tesztelnie kell az új alkalmazásverziót, és közzé kell tennie egy végponton, ahol különböző buildkörnyezetekben, például minőségbiztosításban vagy éles környezetben használható. Javasoljuk, hogy ezeket a lépéseket egy folyamatos integrációs (CI) munkafolyamatban automatizálja.
Lásd:
- Automation-munkafolyamatok a LUIS-alkalmazások tesztelésére és kiadására szolgáló CI-munkafolyamat implementálásának részleteiért.
- A Kiadáskezelés a LUIS-alkalmazás üzembe helyezésének módjával kapcsolatos információkért.
A "szolgáltatáság" LUIS-alkalmazás verziószámozása
Ha egy szolgáltatáságban végzett munka támogatásához létrehozott "fejlesztői ág" LUIS-alkalmazással dolgozik, akkor a munka befejezése után exportálja az alkalmazást, és a frissített 'lu
adatokat is belefoglalja a lekéréses kérelembe. Az adattárban lévő ágat és a "dev branch" LUIS-alkalmazást a lekéréses kérelem főbe egyesítése után törölni kell. Mivel ez az alkalmazás kizárólag a funkcióágban végzett munka támogatásához létezik, ebben az alkalmazásban nincs szükség bizonyos verziószámozási sémára.
Amikor a lekéréses kérelemben lévő módosításokat egyesítjük a főverzióval, akkor a verziószámozást kell alkalmazni, hogy a főverzió összes frissítése külön verziószámozással legyen elosztva.
Következő lépések
- Tudnivalók a LUIS DevOps teszteléséről
- Ismerje meg, hogyan implementálhatja a DevOps for LUIS-t a GitHubon