Dela via


Arbetsflöden för kontinuerlig integrering och kontinuerlig leverans för LUIS DevOps

Viktigt!

LUIS dras tillbaka den 1 oktober 2025 och från och med den 1 april 2023 kommer du inte att kunna skapa nya LUIS-resurser. Vi rekommenderar att du migrerar dina LUIS-program till förståelse för konversationsspråk för att dra nytta av fortsatt produktsupport och flerspråkiga funktioner.

Programvarutekniker som utvecklar en LUIS-app (Language Understanding) kan tillämpa DevOps-metoder kring källkontroll, automatiserade versioner, testning och versionshantering. Den här artikeln beskriver begrepp för att implementera automatiserade versioner för LUIS.

Skapa automatiseringsarbetsflöden för LUIS

CI-arbetsflöden

I ditt SCM-system (källkodshantering) konfigurerar du automatiserade byggpipelines så att de körs vid följande händelser:

  1. PR-arbetsflödet utlöses när en pull-begäran (PR) genereras. Det här arbetsflödet validerar innehållet i PR innan uppdateringarna sammanfogas till huvudgrenen.
  2. CI/CD-arbetsflödet utlöses när uppdateringar skickas till huvudgrenen, till exempel vid sammanslagning av ändringarna från en PR. Det här arbetsflödet säkerställer kvaliteten på alla uppdateringar av huvudgrenen.

CI/CD-arbetsflödet kombinerar två kompletterande utvecklingsprocesser:

  • Kontinuerlig integrering (CI) är den tekniska metoden att ofta checka in kod på en delad lagringsplats och utföra en automatiserad version av den. Tillsammans med en automatiserad testmetod kan vi med kontinuerlig integrering kontrollera att LUDown-källan fortfarande är giltig för varje uppdatering och kan importeras till en LUIS-app, men också att den klarar en grupp tester som verifierar att den tränade appen kan identifiera de avsikter och entiteter som krävs för din lösning.

  • Kontinuerlig leverans (CD) tar konceptet kontinuerlig integrering vidare för att automatiskt distribuera programmet till en miljö där du kan utföra mer djupgående testning. MED CD kan vi tidigt lära oss om oförutsedda problem som uppstår vid våra ändringar så snabbt som möjligt, och även lära oss mer om luckor i vår testtäckning.

Målet med kontinuerlig integrering och kontinuerlig leverans är att säkerställa att "main alltid kan levereras". För en LUIS-app innebär det att vi om det behövs kan ta vilken version som helst från LUIS-huvudgrensappen och skicka den i produktion.

Verktyg för att skapa automatiseringsarbetsflöden för LUIS

Dricks

Du hittar en komplett lösning för att implementera DevOps i LUIS DevOps-mallens lagringsplats.

Det finns olika tekniker för byggautomatisering som är tillgängliga för att skapa arbetsflöden för automatisering. Alla kräver att du kan skripta steg med hjälp av ett kommandoradsgränssnitt (CLI) eller REST-anrop så att de kan köras på en byggserver.

Använd följande verktyg för att skapa automatiseringsarbetsflöden för LUIS:

PR-arbetsflödet

Som nämnts konfigurerar du det här arbetsflödet så att det körs när en utvecklare genererar en pr för att föreslå ändringar som ska sammanfogas från en funktionsgren till huvudgrenen. Syftet är att verifiera kvaliteten på ändringarna i PR innan de sammanfogas till huvudgrenen.

Det här arbetsflödet bör:

  • Skapa en tillfällig LUIS-app genom att .lu importera källan i PR.
  • Träna och publicera LUIS-appversionen.
  • Kör alla enhetstester mot den.
  • Skicka arbetsflödet om alla tester godkänns, annars misslyckas det.
  • Rensa och ta bort den tillfälliga appen.

Om det stöds av din SCM konfigurerar du regler för grenskydd så att arbetsflödet måste slutföras innan pr kan slutföras.

Huvudgrenens CI/CD-arbetsflöde

Konfigurera det här arbetsflödet så att det körs efter att uppdateringarna i PR har sammanfogats till huvudgrenen. Syftet är att hålla kvalitetsfältet för din huvudgren högt genom att testa uppdateringarna. Om uppdateringarna uppfyller kvalitetsfältet distribuerar det här arbetsflödet den nya LUIS-appversionen till en miljö där du kan utföra mer djupgående testning.

Det här arbetsflödet bör:

  • Skapa en ny version i din primära LUIS-app (den app som du underhåller för huvudgrenen) med hjälp av den uppdaterade källkoden.

  • Träna och publicera LUIS-appversionen.

    Kommentar

    Som förklaras i Köra tester i ett automatiserat byggarbetsflöde måste du publicera LUIS-appversionen under test så att verktyg som NLU. DevOps kan komma åt den. LUIS stöder bara två namngivna publiceringsplatser, mellanlagring och produktion för en LUIS-app, men du kan också publicera en version direkt och fråga efter version. Använd direktversionspublicering i dina automationsarbetsflöden för att undvika att begränsas till att använda de namngivna publiceringsplatserna.

  • Kör alla enhetstester.

  • Du kan också köra batchtester för att mäta kvaliteten och noggrannheten i LUIS-appversionen och jämföra den med någon baslinje.

  • Om testerna har slutförts:

    • Tagga källan på lagringsplatsen.
    • Kör jobbet kontinuerlig leverans (CD) för att distribuera LUIS-appversionen till miljöer för ytterligare testning.

Kontinuerlig leverans (CD)

CD-jobbet i ett CI/CD-arbetsflöde körs villkorligt på att bygg- och automatiserade enhetstester har slutförts. Dess uppgift är att automatiskt distribuera LUIS-programmet till en miljö där du kan utföra fler tester.

Det finns ingen rekommenderad lösning för hur du bäst distribuerar luis-appen, och du måste implementera den process som är lämplig för projektet. LUIS DevOps-malllagringsplatsen implementerar en enkel lösning för detta som är att publicera den nya LUIS-appversionen till produktionspubliceringsplatsen. Detta är bra för en enkel installation. Men om du behöver stöd för ett antal olika produktionsmiljöer samtidigt, till exempel utveckling, mellanlagring och UAT, kommer gränsen på två namngivna publiceringsplatser per app att visa sig otillräcklig.

Andra alternativ för att distribuera en appversion är:

  • Lämna appversionen publicerad till slutpunkten för direktversionen och implementera en process för att konfigurera underordnade produktionsmiljöer med slutpunkten för direktversion efter behov.
  • Underhålla olika LUIS-appar för varje produktionsmiljö och skriv automatiseringssteg för att importera .lu till en ny version i LUIS-appen för målproduktionsmiljön, träna och publicera den.
  • Exportera den testade LUIS-appversionen till en LUIS Docker-container och distribuera LUIS-containern till Azure Container-instanser.

Versionshantering

Vanligtvis rekommenderar vi att du endast utför kontinuerlig leverans till icke-produktionsmiljöer, till exempel till utveckling och mellanlagring. De flesta team kräver en manuell gransknings- och godkännandeprocess för distribution till en produktionsmiljö. För en produktionsdistribution kanske du vill se till att det händer när viktiga personer i utvecklingsteamet är tillgängliga för support eller under perioder med låg trafik.

Tillämpa DevOps på LUIS-apputveckling med GitHub Actions

Gå till LUIS DevOps-mallens lagringsplats för en komplett lösning som implementerar metodtips för DevOps och programvaruteknik för LUIS. Du kan använda den här malllagringsplatsen för att skapa en egen lagringsplats med inbyggt stöd för CI/CD-arbetsflöden och metoder som möjliggör källkontroll, automatiserade versioner, testning och versionshantering med LUIS för ditt eget projekt.

LUIS DevOps-mallens lagringsplats beskriver hur du:

  • Klona malllagringsplatsen – Kopiera mallen till din egen GitHub-lagringsplats.
  • Konfigurera LUIS-resurser – Skapa LUIS-redigerings - och förutsägelseresurserna i Azure som ska användas av arbetsflödena för kontinuerlig integrering.
  • Konfigurera CI/CD-arbetsflöden – Konfigurera parametrar för CI/CD-arbetsflöden och lagra dem i GitHub-hemligheter.
  • Går igenom den "inre dev-loopen" – Utvecklaren uppdaterar en LUIS-exempelapp när han arbetar i en utvecklingsgren, testar uppdateringarna och skapar sedan en pull-begäran om att föreslå ändringar och söka granskningsgodkännande.
  • Kör CI/CD-arbetsflöden – Kör arbetsflöden för kontinuerlig integrering för att skapa och testa en LUIS-app med GitHub Actions.
  • Utför automatiserad testning – Utför automatiserad batchtestning för en LUIS-app för att utvärdera appens kvalitet.
  • Distribuera LUIS-appen – Kör ett cd-jobb (kontinuerlig leverans) för att publicera LUIS-appen.
  • Använd lagringsplatsen med ditt eget projekt – Förklarar hur du använder lagringsplatsen med ditt eget LUIS-program.

Nästa steg