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 lehet új LUIS-erőforrásokat létrehozni. Javasoljuk , hogy migrálja a LUIS-alkalmazásokata beszélgetési nyelvfelismerésre , 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 az alábbi irányelvek alapján alkalmazhatnak DevOps-eljárásokat a verzióköveté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 verziókövetés. A verziókövetési 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) kezdeményeznek, hogy frissítéseket javasoljanak az egyik ágról a másikra, vagy amikor módosításokat egyesítenek, ezek lehetnek az automatikus buildek kiváltói a kód összeállításához és folyamatos teszteléséhez.

Az ebben a dokumentumban ismertetett fogalmak és útmutatás segítségével luis-alkalmazást fejleszthet a verziókövetési rendszerek változásainak nyomon követése során, és kövesse az alábbi szoftvermérnöki ajánlott 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ód egy forráskódtárban kezelhető.
    • A hitelesítő adatokat és a titkos kulcsokat, például a kulcsokat soha nem tárolja a rendszer a forráskódban.
  • Elágaztatás és egyesítés

    • A fejlesztők önálló ágakból is dolgozhatnak.
    • A fejlesztők egyszerre több ágban is dolgozhatnak.
    • A LUIS-alkalmazás módosításait az egyik ágból a másikba újrabázissal vagy egyesítéssel integrálhatja.
    • A fejlesztők egyesíthetik a lekéréses kérelmet a szülőágban.
  • Verziókezelé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 olvasásra alkalmas forráskódként jelennek meg, amely a lekérés elfogadása előtt áttekinthető.

Verziókövetés

A LUIS-alkalmazások alkalmazásséma-definíciójának a forráskódkezelő rendszerben való fenntartásához használja az alkalmazás LUDown-formátumát (.lu). .lu A formátumot érdemes formázni .json , mert az emberi olvasásra alkalmas, így egyszerűbbé válik a módosítások végrehajtása és áttekintése a lekéréses kérelmekben.

LUIS-alkalmazás mentése LUDown formátumban

LUIS-alkalmazás .lu mentése formátumban és a forráskövetés alá helyezéshez:

  • VAGY: Exportálja az alkalmazásverziót a LUIS-portálról, .lu és adja hozzá a verziókövetési adattárhoz

  • VAGY: Szövegszerkesztő használatával hozzon létre egy .lu fájlt egy LUIS-alkalmazáshoz, és adja hozzá a forrásvezérlő adattárhoz

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 legyenek 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 történő buildelés azt jelenti, hogy új LUIS-alkalmazásverziót hoz létre a .lu forrás importálásával , a verzió betanításához és közzétételéhez. Ezt a LUIS portálon vagy a parancssorban teheti meg:

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:

A hitelesítő adatok és a kulcsok nincsenek beadva

Ne tartalmazzon kulcsokat vagy hasonló bizalmas értékeket az adattárba bejelentkezett fájlokban, ahol azok illetéktelen személyek számára is láthatóak lehetnek. A bejelentkezést megakadályozó kulcsok és egyéb értékek közé tartoznak a következők:

  • LUIS szerzői és előrejelzési kulcsok
  • LUIS szerzői é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, a futtatókörnyezeti titkos kódokat egy helyi fájlban tárolhatja, és megakadályozhatja a fájl beadását úgy, hogy hozzáad egy mintát, amely megfelel a fájlnévnek egy .gitignore-fájlban
  • Az automatizálási munkafolyamatokban biztonságosan tárolhatja a titkos kulcsokat az adott automatizálási technológia által kínált paraméterek konfigurációjában. Ha például GitHub Actions használ, biztonságosan tárolhatja a titkos kulcsokat a GitHub titkos kulcsaiban.

Elágaztatás és egyesítés

Az olyan elosztott verziókövetési rendszerek, mint a Git, rugalmasan teszik közzé, oszthatják meg, tekintik át és iterálhatják a kódmódosításokat 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, az egyik fő alapelve az, hogy a csapattagok a szolgáltatáságon belül dolgozhatnak a megoldáson a többi ágban végzett munkától függetlenül.

Az ágakban végzett 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 .lu minden frissítését felül kell vizsgálni és tesztelni kell, hogy az alkalmazás bármikor üzembe helyezhető legyen az éles környezetekhez hasonló környezetekben. Ha a .lu frissítéseket egy szolgáltatáságból egyesíti a főágba, létre kell hoznia egy új verziót a LUIS-alkalmazásban, és meg kell adnia 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 ezt az alkalmazást egy szolgáltatáságban dolgoznak anélkül, hogy ez hatással lehet a más ágakban dolgozó fejlesztőkre. Ez a "fejlesztői ág" alkalmazás egy működő példány, amelyet törölni kell a funkcióág törlésekor.

Git-funkcióág

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:

  1. Szolgáltatáság létrehozása a fő ágból (az ágstratégiától függően általában fő vagy fejlesztés).

  2. Hozzon létre egy új LUIS-alkalmazást a LUIS-portálon (a "fejlesztői ág alkalmazásában") kizárólag a funkcióágban végzett munka támogatásához.

    • Ha a .lu megoldás forrása már létezik a ágban, mert a projekt egy másik ágában végzett munka után mentve lett, hozza létre a fejlesztői ág LUIS-alkalmazását a .lu fájl importálásával.

    • Ha egy új projekten kezd dolgozni, még nem fogja tudni a .lu fő LUIS-alkalmazás forrását 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 funkcióági munkát, és elküldi azt a lekéréses kérelem részeként.

  3. A szükséges módosítások implementálásához dolgozzon a fejlesztői ág alkalmazás aktív verzióján. Azt javasoljuk, hogy az összes funkcióág-munka esetében csak a dev branch alkalmazás egyetlen verziójában dolgozzon. Ha egynél több verziót hoz létre a fejlesztői ágat tartalmazó alkalmazásban, ügyeljen arra, hogy nyomon kövesse, melyik verzió tartalmazza a lekéréses kérelem létrehozásakor beadni kívánt módosításokat.

  4. A frissítések tesztelése – a fejlesztői ág alkalmazás tesztelésével kapcsolatos részletekért tekintse meg a LUIS DevOps tesztelését ismertető cikket.

  5. Exportálja a fejlesztői ág alkalmazás .lu aktív verzióját a verziók listájából.

  6. Ellenőrizze a frissítéseket, és hívja meg a frissítések társértékelését. Ha GitHubot használ, lekéréses kérelmet fog küldeni.

  7. A módosítások jóváhagyása után egyesítse a frissítéseket a főágban. Ezen a ponton létre fog hozni egy új verziót a LUIS-alkalmazásból a frissített .lu főverzió használatával. A verziónév beállításával kapcsolatos megfontolandó szempontokért lásd: Verziószámozás .

  8. A szolgáltatáság törlésekor célszerű törölni a szolgáltatáság működéséhez létrehozott luis-alkalmazást.

A fejlesztők egyszerre több ágban is dolgozhatnak

Ha a fent leírt mintát követi, a Fejlesztők dolgozhatnak független ágakból, akkor minden funkcióágban egyedi LUIS-alkalmazást fog használni. Egyetlen fejlesztő egyszerre több ágon is dolgozhat, feltéve, hogy a jelenleg használt ághoz a megfelelő fejlesztői ág LUIS-alkalmazására vált.

Javasoljuk, hogy használja ugyanazt a nevet a funkcióághoz és a funkcióág működéséhez létrehozott fejlesztői ág LUIS-alkalmazásához is, így kevésbé valószínű, hogy véletlenül nem a megfelelő alkalmazáson fog dolgozni.

Ahogy fentebb már említettük, javasoljuk, hogy az egyszerűség kedvéért minden fejlesztői ágbeli alkalmazásban egyetlen verzióban dolgozzon. Ha több verziót használ, ügyeljen arra, hogy a fejlesztői ágbeli alkalmazá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 veszik ki, é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ők által a fentiekben leírt mintát követi, akkor ez a ág egy egyedi LUIS-alkalmazást fog használni a fejlesztés támogatásához. Ezt a "dev branch" 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óági munka 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 ellenőrizze és lekérte a módosításokat.

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 más fejlesztői, akik egy másik ágban dolgoznak, frissítették a .lu forrást, és egyesítették őket a fő ágba a funkcióág létrehozása után. Érdemes lehet beépíteni a módosításokat a munkaverzióba, mielőtt 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 standard egyesítési eszközök használatával.

Kövesse az alábbi tippeket, ha a LUIS-alkalmazást egy funkcióágban szeretné újrakontingeni:

  • Az újrabázis vagy az egyesítés előtt győződjön meg arról, hogy az .lu alkalmazás forrásának helyi példánya rendelkezik az összes, a LUIS-portálon alkalmazott legújabb módosítással, 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 standard eszközökkel oldhatja meg az egyesítési ütközéseket.

  • Az újrabázis vagy az egyesítés befejezése után ne felejtse el újra importálni az alkalmazást a portálra, hogy a saját módosításainak alkalmazása közben is a frissített alkalmazással dolgozzon.

PRS-ek egyesítése

A 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 szabványos 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 ajánlott a tisztítás:

  • Az adattár ágának törlése

  • Törölje a funkcióági munkához létrehozott "dev branch" LUIS-alkalmazást.

Ugyanúgy, mint az alkalmazáskód-objektumok esetében, egységteszteket kell írnia a LUIS-alkalmazásfrissítésekhez. A teszteléshez folyamatos integrációs munkafolyamatokat kell alkalmaznia:

  • Frissítések pr-ben a lekéréses kérelem egyesítése előtt
  • A fő ág LUIS-alkalmazása 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.

További információ a LUIS DevOps teszteléséről: Tesztelés a DevOpshoz a LUIS-hoz. A munkafolyamatok implementálásával kapcsolatos további részletekért lásd: Automation-munkafolyamatok a LUIS DevOpshoz.

Kódok véleményezése

A LUDown formátumú LUIS-alkalmazások emberi olvasásra alkalmasak, amely támogatja a felülvizsgálatra alkalmas lekéréses kérelem módosításainak kommunikációját. Az egységtesztfájlok LUDown formátumban is meg vannak írva, és pr-ben is könnyen áttekinthetők.

Verziókezelés

Az alkalmazások több összetevőből állnak, amelyek többek között az Azure AI-Bot Service, aQnA Makerben, az Azure AI Speech szolgáltatásban futó robotokat is tartalmazhatnak. A lazán összekapcsolt alkalmazások céljának eléréséhez használja a verziókövetést úgy, hogy az alkalmazások minden összetevője függetlenül legyen verziószámmal elosztva, így a fejlesztők csak a verziószám alapján észlelhessék a kompatibilitástörő módosításokat vagy frissítéseket. Ha a LUIS-alkalmazást a saját adattárában tartja fenn, egyszerűbb a LUIS-alkalmazást a többi összetevőtől függetlenül verziószámozni.

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]]

A verziószám minden frissítése 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ó: Visszamenőlegesen 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 automatizálja ezeket a lépéseket egy folyamatos integrációs (CI) munkafolyamatban.

Lásd:

  • Automation-munkafolyamatok a LUIS-alkalmazások teszteléséhez és kiadásához szükséges CI-munkafolyamatok implementálásának részleteiért.
  • Kiadáskezelés a LUIS-alkalmazás üzembe helyezésével kapcsolatos információkért.

A "funkcióá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ésekor exportálni fogja az alkalmazást, és a frissítést 'lu belefoglalja a lekéréses kérelembe. A lekéréses kérelem főbe egyesítése után törölni kell az adattár ágát és a "dev branch" LUIS-alkalmazást. Mivel ez az alkalmazás kizárólag a funkcióágban végzett munka támogatásához létezik, nincs szükség adott verziószámozási sémára ebben az alkalmazásban.

A lekéréses kérelem módosításainak főverzióba való egyesítésekor a verziószámozást kell alkalmazni, hogy a fő frissítéseket egymástól függetlenül lehessen verziószámba venni.

Következő lépések