Postupy DevOps pro SLUŽBU LUIS

Důležité

Služba LUIS bude vyřazena 1. října 2025 a od 1. dubna 2023 nebudete moct vytvářet nové prostředky luis. Doporučujeme migrovat aplikace LUIS na konverzační jazyk, abyste mohli využívat výhod trvalé podpory produktů a možností více jazyků.

Softwaroví inženýři, kteří vyvíjejí aplikaci Language Understanding (LUIS), můžou podle těchto pokynů používat postupy DevOps týkající se správy zdrojového kódu, automatizovaných sestavení, testování a správy verzí.

Správa zdrojového kódu a strategie větvení pro LUIS

Jedním z klíčových faktorů, na které závisí úspěch DevOps, je správa zdrojového kódu. Systém správy zdrojového kódu umožňuje vývojářům spolupracovat na kódu a sledovat změny. Použití větví umožňuje vývojářům přepínat mezi různými verzemi základu kódu a pracovat nezávisle na ostatních členech týmu. Když vývojáři vyvolajížádost o přijetí změn, aby navrhli aktualizace z jedné větve do druhé, nebo když se změny sloučí, můžou to být aktivační událost pro automatizované sestavení, která budou vytvářet a průběžně testovat kód.

Pomocí konceptů a pokynů popsaných v tomto dokumentu můžete vyvíjet aplikaci LUIS při sledování změn v systému správy zdrojového kódu a postupovat podle těchto osvědčených postupů pro softwarové inženýrství:

  • Správa zdrojového kódu

    • Zdrojový kód pro vaši aplikaci LUIS je ve formátu čitelném pro člověka.
    • Model lze sestavit ze zdroje opakovatelným způsobem.
    • Zdrojový kód lze spravovat v úložišti zdrojového kódu.
    • Přihlašovací údaje a tajné kódy, jako jsou klíče, se nikdy neukládají ve zdrojovém kódu.
  • Větvení a slučování

    • Vývojáři můžou pracovat z nezávislých větví.
    • Vývojáři můžou pracovat v několika větvích současně.
    • Změny aplikace LUIS je možné integrovat z jedné větve do druhé prostřednictvím změny základu nebo sloučení.
    • Vývojáři můžou sloučit žádost o přijetí změn do nadřazené větve.
  • Správa verzí

    • Každá komponenta ve velké aplikaci by měla mít nezávislé verze, aby vývojáři mohli detekovat změny způsobující chybu nebo aktualizace jenom na základě čísla verze.
  • Revize kódu

    • Změny v žádosti o přijetí změn jsou prezentovány jako zdrojový kód čitelný pro člověka, který je možné před přijetím žádosti o přijetí změn zkontrolovat.

Správa zdrojového kódu

Pokud chcete udržovat definici schématu aplikace LUIS v systému správy zdrojového kódu, použijte reprezentaci aplikace ve formátu LUDown (.lu). .lu Formát je upřednostňovaný před .json formátem, protože je čitelný pro člověka, což usnadňuje provádění a kontrolu změn v žádostích o přijetí změn.

Uložení aplikace LUIS ve formátu LUDown

Uložení aplikace LUIS ve .lu formátu a umístění do správy zdrojového kódu:

  • BUĎ: Exportujte verzi aplikace z .luportálu LUIS a přidejte ji do úložiště správy zdrojového kódu.

  • NEBO: Pomocí textového editoru .lu vytvořte soubor pro aplikaci LUIS a přidejte ho do úložiště správy zdrojového kódu.

Tip

Pokud pracujete s exportem aplikace LUIS do formátu JSON, můžete ji převést na LUDown. Pomocí možnosti --sort zajistíte, aby se záměry a promluvy seřadily abecedně.
Všimněte si, že . Funkce exportu LU integrovaná na portálu LUIS už výstup seřadí.

Sestavení aplikace LUIS ze zdroje

Sestavení ze zdrojové aplikace LUIS znamená vytvoření nové verze aplikace LUIS importem .lu zdrojové verze , natrénování a publikování verze. Můžete to udělat na portálu LUIS nebo na příkazovém řádku:

Soubory, které se mají udržovat ve správě zdrojového kódu

V rámci správy zdrojového kódu by se měly udržovat následující typy souborů pro vaši aplikaci LUIS:

Přihlašovací údaje a klíče nejsou vráceny se změnami

Nezahrnujte klíče nebo podobné důvěrné hodnoty do souborů, které se změnami v úložišti, kde by mohly být viditelné neoprávněným pracovníkům. Mezi klíče a další hodnoty, které byste měli zabránit v vracení se změnami, patří:

  • Klíče pro vytváření a predikce služby LUIS
  • Koncové body pro vytváření a predikce služby LUIS
  • Klíče prostředků Azure
  • Přístupové tokeny, například token instančního objektu Azure používaného k ověřování automatizace

Strategie pro zabezpečenou správu tajných kódů

Mezi strategie bezpečné správy tajných kódů patří:

  • Pokud používáte správu verzí Gitu, můžete tajné kódy modulu runtime uložit do místního souboru a zabránit vracení souboru se změnami přidáním vzoru, který odpovídá názvu souboru souboru .gitignore .
  • V pracovním postupu automatizace můžete tajné kódy bezpečně ukládat v konfiguraci parametrů, kterou tato automatizační technologie nabízí. Pokud například používáte GitHub Actions, můžete tajné kódy bezpečně ukládat do tajných kódů GitHubu.

Vytváření a slučování větví

Distribuované systémy správy verzí, jako je Git, poskytují flexibilitu ve způsobu, jakým členové týmu publikují, sdílejí, kontrolují a iterují změny kódu prostřednictvím vývojových větví sdílených s ostatními. Přijměte strategii větvení Gitu , která je vhodná pro váš tým.

Bez ohledu na to, jakou strategii větvení přijmete, je klíčovým principem všech členů týmu to, že na řešení můžou členové týmu pracovat v rámci větve funkcí nezávisle na práci, která probíhá v jiných větvích.

Podpora nezávislé práce ve větvích s projektem LUIS:

  • Hlavní větev má vlastní aplikaci LUIS. Tato aplikace představuje aktuální stav vašeho řešení pro váš projekt a její aktuální aktivní verze by se měla vždy mapovat na .lu zdroj, který je v hlavní větvi. Všechny aktualizace .lu zdroje pro tuto aplikaci by měly být zkontrolovány a testovány, aby tato aplikace mohla být kdykoli nasazena do vytváření prostředí, jako je produkční. Když se aktualizace .lu sloučí do main z větve feature, měli byste v aplikaci LUIS vytvořit novou verzi a narazit na číslo verze.

  • Každá větev funkcí musí používat vlastní instanci aplikace LUIS. Vývojáři pracují s touto aplikací ve větvi funkcí, aniž by to mělo vliv na vývojáře, kteří pracují v jiných větvích. Tato aplikace pro vývojovou větev je pracovní kopie, která by měla být odstraněna, když je odstraněna větev funkcí.

Větev funkcí Gitu

Vývojáři můžou pracovat z nezávislých větví

Vývojáři můžou pracovat na aktualizacích v aplikaci LUIS nezávisle na jiných větvích pomocí:

  1. Vytvoření větve funkcí z hlavní větve (v závislosti na strategii vaší větve, obvykle hlavní nebo vývoj)

  2. Vytvořte novou aplikaci LUIS na portálu LUIS ("aplikace vývojové větve") výhradně pro podporu práce ve větvi funkcí.

    • .lu Pokud zdroj pro vaše řešení již ve vaší větvi existuje, protože byl uložen po práci v jiné větvi dříve v projektu, vytvořte aplikaci LUIS vývojové větve importem .lu souboru.

    • Pokud začínáte pracovat na novém projektu, v úložišti zatím nebudete mít .lu zdroj pro vaši hlavní aplikaci LUIS. Jakmile dokončíte práci na větvi funkcí, vytvoříte ho .lu tak, že exportujete aplikaci pro vývojovou větev z portálu a odešlete ho jako součást žádosti o přijetí změn.

  3. Pracujte na aktivní verzi aplikace vývojové větve a implementujte požadované změny. Doporučujeme, abyste pro veškerou práci ve větvi funkcí pracovali jenom v jedné verzi aplikace pro vývojovou větev. Pokud ve své aplikaci vývojové větve vytvoříte více než jednu verzi, při vyvolání žádosti o přijetí změn pečlivě sledujte, která verze obsahuje změny, které chcete vrátit se změnami.

  4. Testování aktualizací – podrobnosti o testování aplikace vývojové větve najdete v tématu Testování devOps služby LUIS .

  5. Exportujte aktivní verzi aplikace vývojové větve ze .luseznamu verzí.

  6. Zkontrolujte aktualizace a pozvěte peer review vašich aktualizací. Pokud používáte GitHub, vytvoříte žádost o přijetí změn.

  7. Po schválení změn sloučíte aktualizace do hlavní větve. V tomto okamžiku vytvoříte novou verzihlavní aplikace LUIS pomocí aktualizované .lu aplikace v hlavní. Informace o nastavení názvu verze najdete v tématu Správa verzí.

  8. Po odstranění větve funkcí je vhodné odstranit aplikaci LUIS pro vývojovou větev, kterou jste vytvořili pro práci ve větvi funkcí.

Vývojáři můžou pracovat v několika větvích současně

Pokud budete postupovat podle vzoru popsaného výše v článku Vývojáři můžou pracovat z nezávislých větví, použijete v každé větvi funkcí jedinečnou aplikaci LUIS. Jeden vývojář může pracovat na více větvích současně, pokud přepne do správné aplikace LUIS pro vývojovou větev větve, na které právě pracuje.

Doporučujeme použít stejný název jak pro větev funkcí, tak pro aplikaci LUIS pro vývojovou větev, kterou vytvoříte pro práci s větví funkcí, aby se snížila pravděpodobnost, že omylem budete pracovat na nesprávné aplikaci.

Jak je uvedeno výše, pro zjednodušení doporučujeme, abyste v každé aplikaci vývojové větve pracovali v jedné verzi. Pokud používáte více verzí, při přepínání mezi aplikacemi vývojové větve dbejte na aktivaci správné verze.

Na stejné větvi může souběžně pracovat více vývojářů.

Můžete podporovat více vývojářů pracujících na stejné větvi funkcí současně:

  • Vývojáři kontrolují stejnou větev funkcí a nasdílejí a nasdílejí změny, které odeslali sami i ostatní vývojáři, zatímco práce pokračuje jako obvykle.

  • Pokud budete postupovat podle vzoru popsaného výše v tématu Vývojáři můžou pracovat z nezávislých větví, bude tato větev používat k podpoře vývoje jedinečnou aplikaci LUIS. Tuto "vývojovou" aplikaci LUIS vytvoří první člen vývojového týmu, který začne pracovat ve větvi funkcí.

  • Přidejte členy týmu jako přispěvatele do aplikace LUIS pro vývojovou větev.

  • Po dokončení práce s větví funkcí exportujte aktivní verzi aplikace .lu LUIS pro vývojovou větev jako ze seznamu verzí, uložte aktualizovaný .lu soubor do úložiště a změny se změnami a o přijetí změn se změnami.

Začlenění změn z jedné větve do jiné pomocí změny základu nebo sloučení

Někteří další vývojáři ve vašem týmu, kteří pracují v jiné větvi, možná provedli aktualizace .lu zdroje a po vytvoření větve funkcí je sloučili do hlavní větve. Než budete pokračovat v provádění vlastních změn ve větvi funkcí, možná budete chtít jejich změny začlenit do své pracovní verze. Můžete to udělat tak, že předáte základ nebo sloučíte na main stejným způsobem jako jakýkoli jiný prostředek kódu. Vzhledem k tomu, že aplikace LUIS ve formátu LUDown je čitelná pro člověka, podporuje sloučení pomocí standardních slučovacích nástrojů.

Pokud aplikaci LUIS znovu používáte ve větvi funkcí, postupujte podle těchto tipů:

  • Než znovu vytvoříte základ nebo sloučíte, ujistěte se, že místní kopie .lu zdroje pro vaši aplikaci obsahuje nejnovější změny, které jste použili pomocí portálu LUIS. Nejprve aplikaci znovu exportujte z portálu. Můžete tak zajistit, aby se neztratily všechny změny, které jste na portálu udělali a ještě neexportovali.

  • Při slučování můžete všechny konflikty při slučování vyřešit pomocí standardních nástrojů.

  • Nezapomeňte po dokončení změny základu nebo sloučení znovu importovat aplikaci zpět na portál, abyste mohli pracovat s aktualizovanou aplikací, jakmile budete pokračovat v aplikování vlastních změn.

Sloučení žádostí o přijetí změn

Po schválení žádosti o přijetí změn můžete sloučit změny do hlavní větve. Na zdroj LUDown pro aplikaci LUIS se nevztahují žádné zvláštní aspekty: je čitelný pro člověka, a proto podporuje sloučení pomocí standardních nástrojů pro sloučení. Všechny konflikty při slučování se dají vyřešit stejným způsobem jako u jiných zdrojových souborů.

Po sloučení žádosti o přijetí změn se doporučuje vyčistit:

  • Odstranění větve v úložišti

  • Odstraňte aplikaci "dev branch" LUIS, kterou jste vytvořili pro práci s větví funkcí.

Stejně jako u prostředků kódu aplikace byste měli psát testy jednotek, které budou doprovázet aktualizace aplikací LUIS. Pracovní postupy kontinuální integrace byste měli použít k testování:

  • Aktualizace v žádosti o přijetí změn před sloučením žádosti o přijetí změn
  • Aplikace LUIS hlavní větve po schválení žádosti o přijetí změn a sloučení změn do hlavní větve.

Další informace o testování devOps služby LUIS najdete v tématu Testování devOps pro službu LUIS. Další podrobnosti o implementaci pracovních postupů najdete v tématu Pracovní postupy automatizace pro SLUŽBU LUIS DevOps.

Revize kódu

Aplikace LUIS ve formátu LUDown je čitelná pro člověka, která podporuje komunikaci změn v žádosti o přijetí změn vhodné ke kontrole. Soubory testů jednotek jsou také napsány ve formátu LUDown a také snadno kontrolovatelné v PR.

Správa verzí

Aplikace se skládá z několika komponent, které můžou zahrnovat například robota běžícího v Azure AI Bot Service, QnA Maker, službu Azure AI Speech a další. Pokud chcete dosáhnout cíle volně propojených aplikací, použijte správu verzí tak, aby každá komponenta aplikace byla verzí generována nezávisle, což vývojářům umožňuje detekovat zásadní změny nebo aktualizace pouhým pohledem na číslo verze. Vytváření verzí aplikace LUIS nezávisle na jiných komponentách je jednodušší, pokud ji udržujete ve vlastním úložišti.

Aplikace LUIS pro hlavní větev by měla mít použité schéma správy verzí. Když sloučíte aktualizace .lu pro aplikaci LUIS do main, naimportujete tento aktualizovaný zdroj do nové verze v aplikaci LUIS pro hlavní větev.

Pro hlavní verzi aplikace LUIS doporučujeme použít číselné schéma správy verzí, například:

major.minor[.build[.revision]]

Při každé aktualizaci se číslo verze navyšuje na poslední číslici.

Hlavní nebo podverze je možné použít k označení rozsahu změn funkcí aplikace LUIS:

  • Hlavní verze: Významná změna, například podpora nového záměru nebo entity
  • Podverze: Zpětně kompatibilní podverze, například po významném novém trénování.
  • Sestavení: Žádné změny funkcí, pouze jiné sestavení.

Jakmile určíte číslo verze pro nejnovější revizi hlavní aplikace LUIS, budete muset sestavit a otestovat novou verzi aplikace a publikovat ji do koncového bodu, kde ji můžete použít v různých prostředích sestavení, jako je Kontrola kvality nebo Produkce. Důrazně doporučujeme, abyste všechny tyto kroky automatizovali v pracovním postupu kontinuální integrace (CI).

Přečtěte si:

Správa verzí větve funkcí aplikace LUIS

Když pracujete s aplikací LUIS pro vývojovou větev, kterou jste vytvořili pro podporu práce ve větvi funkcí, budete aplikaci po dokončení práce exportovat a aktualizovanou 'lu verzi zahrnete do své žádosti o přijetí změn. Po sloučení žádosti o přijetí změn do hlavní větve by se měla odstranit větev ve vašem úložišti a aplikace LUIS ve vývojové větvi. Vzhledem k tomu, že tato aplikace existuje výhradně pro podporu práce ve větvi funkcí, není potřeba v této aplikaci použít žádné konkrétní schéma správy verzí.

Když se změny v žádosti o přijetí změn sloučí do hlavní verze, měla by se použít správa verzí, aby všechny aktualizace hlavní verze byly generovány nezávisle na sobě.

Další kroky