Share via


Werkstromen voor continue integratie en continue levering voor LUIS DevOps

Belangrijk

LUIS wordt op 1 oktober 2025 buiten gebruik gesteld en vanaf 1 april 2023 kunt u geen nieuwe LUIS-resources maken. We raden u aan uw LUIS-toepassingen te migreren naar gesprekstaalbegrip om te profiteren van continue productondersteuning en meertalige mogelijkheden.

Softwaretechnici die een LUIS-app (Language Understanding) ontwikkelen, kunnen DevOps-procedures toepassen op broncodebeheer, geautomatiseerde builds, testen en releasebeheer. In dit artikel worden concepten beschreven voor het implementeren van geautomatiseerde builds voor LUIS.

Automatiseringswerkstromen bouwen voor LUIS

CI workflows

Configureer in uw SCM-systeem (Broncodebeheer) geautomatiseerde build-pijplijnen die moeten worden uitgevoerd op de volgende gebeurtenissen:

  1. Pull-werkstroom geactiveerd wanneer een pull-aanvraag (PR) wordt gegenereerd. Deze werkstroom valideert de inhoud van de pull-aanvraag voordat de updates worden samengevoegd in de hoofdbranch.
  2. CI/CD-werkstroom die wordt geactiveerd wanneer updates naar de hoofdbranch worden gepusht, bijvoorbeeld bij het samenvoegen van de wijzigingen vanuit een pull-aanvraag. Deze werkstroom zorgt voor de kwaliteit van alle updates voor de hoofdbranch.

De CI/CD-werkstroom combineert twee complementaire ontwikkelingsprocessen:

  • Continue integratie (CI) is de technische praktijk van het regelmatig doorvoeren van code in een gedeelde opslagplaats en het uitvoeren van een geautomatiseerde build erop. Gekoppeld aan een geautomatiseerde testbenadering , kunnen we met continue integratie controleren of voor elke update de LUDown-bron nog steeds geldig is en kan worden geïmporteerd in een LUIS-app, maar ook dat er een groep tests wordt uitgevoerd die controleren of de getrainde app de intenties en entiteiten kan herkennen die nodig zijn voor uw oplossing.

  • Continue levering (CD) gaat verder met het concept continue integratie om de toepassing automatisch te implementeren in een omgeving waar u uitgebreidere tests kunt uitvoeren. Cd stelt ons in staat om vroeg te leren over onvoorziene problemen die zich voordoen door onze wijzigingen zo snel mogelijk, en ook om meer te weten te komen over hiaten in onze testdekking.

Het doel van continue integratie en continue levering is ervoor te zorgen dat 'main is always shippable'. Voor een LUIS-app betekent dit dat we, indien nodig, elke versie van de LUIS-hoofdbranch-app kunnen gebruiken en deze in productie kunnen verzenden.

Hulpprogramma's voor het bouwen van automatiseringswerkstromen voor LUIS

Tip

U vindt een volledige oplossing voor het implementeren van DevOps in de luis DevOps-sjabloonopslagplaats.

Er zijn verschillende technologieën voor buildautomatisering beschikbaar voor het maken van werkstromen voor buildautomatisering. Voor deze allemaal is vereist dat u scriptstappen kunt uitvoeren met behulp van een opdrachtregelinterface (CLI) of REST-aanroepen, zodat ze op een buildserver kunnen worden uitgevoerd.

Gebruik de volgende hulpprogramma's voor het bouwen van automatiseringswerkstromen voor LUIS:

De pull-werkstroom

Zoals vermeld, configureert u deze werkstroom om uit te voeren wanneer een ontwikkelaar een pull-aanvraag genereert om wijzigingen voor te stellen die moeten worden samengevoegd vanuit een functiebranch in de hoofdbranch. Het doel is om de kwaliteit van de wijzigingen in de pull-aanvraag te controleren voordat ze worden samengevoegd met de hoofdvertakking.

Deze werkstroom moet:

  • Maak een tijdelijke LUIS-app door de .lu bron in de pull-aanvraag te importeren.
  • De luis-app-versie trainen en publiceren.
  • Voer alle eenheidstests erop uit.
  • Geef de werkstroom door als alle tests zijn geslaagd, anders mislukt deze.
  • De tijdelijke app opschonen en verwijderen.

Als dit wordt ondersteund door uw SCM, configureert u vertakkingsbeveiligingsregels zodat deze werkstroom moet worden voltooid voordat de pull-aanvraag kan worden voltooid.

De CI/CD-werkstroom van de hoofdbranch

Configureer deze werkstroom om uit te voeren nadat de updates in de pull-aanvraag zijn samengevoegd in de hoofdbranch. Het doel is om de kwaliteitsbalk voor uw hoofdbranch hoog te houden door de updates te testen. Als de updates voldoen aan de kwaliteitsbalk, implementeert deze werkstroom de nieuwe LUIS-app-versie in een omgeving waar u uitgebreidere tests kunt uitvoeren.

Deze werkstroom moet:

  • Bouw een nieuwe versie in uw primaire LUIS-app (de app die u voor de hoofdbranch onderhoudt) met behulp van de bijgewerkte broncode.

  • De luis-app-versie trainen en publiceren.

    Notitie

    Zoals uitgelegd in het uitvoeren van tests in een geautomatiseerde buildwerkstroom , moet u de luis-app-versie publiceren onder test, zodat hulpprogramma's zoals NLU. DevOps heeft er toegang toe. LUIS ondersteunt slechts twee benoemde publicatiesites, fasering en productie voor een LUIS-app, maar u kunt ook rechtstreeks een versie publiceren en een query uitvoeren op versie. Gebruik publicatie van directe versies in uw automatiseringswerkstromen om te voorkomen dat u de benoemde publicatiesites gebruikt.

  • Voer alle eenheidstests uit.

  • Voer desgewenst batchtests uit om de kwaliteit en nauwkeurigheid van de LUIS-app-versie te meten en deze te vergelijken met een bepaalde basislijn.

  • Als de tests zijn voltooid:

    • Tag de bron in de opslagplaats.
    • Voer de cd-taak (Continuous Delivery) uit om de luis-app-versie te implementeren in omgevingen voor verdere tests.

Continue levering (CD)

De CD-taak in een CI/CD-werkstroom wordt voorwaardelijk uitgevoerd op succes van de build- en geautomatiseerde eenheidstests. Het is de taak om de LUIS-toepassing automatisch te implementeren in een omgeving waar u meer tests kunt uitvoeren.

Er is geen aanbevolen oplossing voor het implementeren van uw LUIS-app en u moet het proces implementeren dat geschikt is voor uw project. In de opslagplaats voor luis DevOps-sjablonen wordt een eenvoudige oplossing geïmplementeerd, die de nieuwe LUIS-app-versie naar de productiepublicatiesite publiceert. Dit is prima voor een eenvoudige installatie. Als u echter tegelijkertijd een aantal verschillende productieomgevingen moet ondersteunen, zoals ontwikkeling, fasering en UAT, zal de limiet van twee benoemde publicatiesites per app onvoldoende blijken.

Andere opties voor het implementeren van een app-versie zijn:

  • Laat de app-versie gepubliceerd naar het eindpunt van de directe versie en implementeer een proces voor het configureren van downstreamproductieomgevingen met het eindpunt van de directe versie, indien nodig.
  • Onderhoud verschillende LUIS-apps voor elke productieomgeving en schrijf automatiseringsstappen om de .lu in een nieuwe versie in de LUIS-app te importeren voor de doelproductieomgeving, om deze te trainen en te publiceren.
  • Exporteer de geteste LUIS-app-versie naar een LUIS Docker-container en implementeer de LUIS-container in Azure Container Instances.

Releasebeheer

Over het algemeen raden we u aan om continue levering alleen uit te voeren in uw niet-productieomgevingen, zoals ontwikkeling en fasering. De meeste teams vereisen een handmatig beoordelings- en goedkeuringsproces voor implementatie in een productieomgeving. Voor een productie-implementatie wilt u er mogelijk voor zorgen dat dit gebeurt wanneer belangrijke personen in het ontwikkelteam beschikbaar zijn voor ondersteuning of tijdens perioden met weinig verkeer.

DevOps toepassen op het ontwikkelen van LUIS-apps met GitHub-acties

Ga naar de luis DevOps-sjabloonopslagplaats voor een volledige oplossing waarmee aanbevolen procedures voor DevOps en software-engineering voor LUIS worden geïmplementeerd. U kunt deze sjabloonopslagplaats gebruiken om uw eigen opslagplaats te maken met ingebouwde ondersteuning voor CI/CD-werkstromen en -procedures die broncodebeheer, geautomatiseerde builds, testen en releasebeheer mogelijk maken met LUIS voor uw eigen project.

In de luis DevOps-sjabloonopslagplaats wordt uitgelegd hoe u het volgende kunt doen:

  • Kloon de sjabloonopslagplaats : kopieer de sjabloon naar uw eigen GitHub-opslagplaats.
  • LUIS-resources configureren: maak de LUIS-creatie- en voorspellingsresources in Azure die worden gebruikt door de werkstromen voor continue integratie.
  • Configureer de CI/CD-werkstromen : configureer parameters voor de CI/CD-werkstromen en sla deze op in GitHub Secrets.
  • Doorloopt de 'interne ontwikkelingslus' : de ontwikkelaar voert updates uit naar een luis-voorbeeld-app terwijl hij in een ontwikkelingsvertakking werkt, test de updates en genereert vervolgens een pull-aanvraag om wijzigingen voor te stellen en goedkeuring te zoeken.
  • CI/CD-werkstromen uitvoeren: werkstromen voor continue integratie uitvoeren om een LUIS-app te bouwen en te testen met behulp van GitHub Actions.
  • Geautomatiseerde tests uitvoeren: voer geautomatiseerde batchtests uit voor een LUIS-app om de kwaliteit van de app te evalueren.
  • Implementeer de LUIS-app : voer een cd-taak (continue levering) uit om de LUIS-app te publiceren.
  • Gebruik de opslagplaats met uw eigen project . Hierin wordt uitgelegd hoe u de opslagplaats gebruikt met uw eigen LUIS-toepassing.

Volgende stappen