LUIS DevOps uygulamaları

Language Understanding (LUIS) uygulaması geliştiren yazılım mühendisleri,bu yönergeleri DevOps denetim,otomatik derlemeler, testve sürüm yönetimi ile ilgili uygulama uygulamaları uygulayabilir.

LUIS için kaynak denetimi ve dal stratejileri

Bu başarının temel faktörlerden biri, DevOps denetimidir. Kaynak denetim sistemi, geliştiricilerin kod üzerinde işbirliği yapmalarını ve değişiklikleri izlemelerini sağlar. Dalların kullanımı, geliştiricilerin kod tabanının farklı sürümleri arasında geçişe ve ekibin diğer üyelerinden bağımsız olarak çalışmasına olanak sağlar. Geliştiriciler bir daldan diğerine güncelleştirmeler öneren bir çekme isteği (PR) tetiklese veya değişiklikler birleştirilirse, bunlar otomatik derlemelerin kodu derlemek ve sürekli test etmek için tetikleyicisi olabilir.

Bu belgede açıklanan kavramları ve yönergeleri kullanarak, bir kaynak denetim sisteminde değişiklikleri takip ederken bir LUIS uygulaması geliştirebilir ve şu yazılım mühendisliği en iyi uygulamalarını takip edin:

  • Kaynak Denetimi

    • LUIS uygulamanıza kaynak kodu insan tarafından okunabilir bir biçimdedir.
    • Model yinelenebilir bir şekilde kaynaktan inşa edilebilir.
    • Kaynak kodu bir kaynak kod deposu tarafından yönetilebilir.
    • Yazma ve abonelik anahtarları gibi kimlik bilgileri ve gizli diziler hiçbir zaman kaynak kodunda depo olmaz.
  • Dallama ve Birleştirme

    • Geliştiriciler bağımsız dallardan çalışır.
    • Geliştiriciler aynı anda birden çok dalda çalışarak çalışır.
    • Bir LUIS uygulamasına yapılan değişiklikleri yeniden temeli veya birleştirme yoluyla bir daldan diğerine tümleştirebilirsiniz.
    • Geliştiriciler bir PR'i üst dala birleştirebilirsiniz.
  • Sürüm Oluşturma

    • Büyük bir uygulamanın her bileşeni bağımsız olarak sürüme alınarak geliştiricilerin yalnızca sürüm numarasına bakarak yeni değişiklikleri veya güncelleştirmeleri algılamasına olanak sağlar.
  • Kod İncelemeleri

    • PR'de yapılan değişiklikler, PR kabul edilmeden önce gözden geçirilebilir insan tarafından okunabilir kaynak kod olarak sunulmaktadır.

Kaynak denetimi

Bir LUIS uygulamasının Uygulama şeması tanımını kaynak kod yönetim sisteminde korumak için uygulamanın LUDown biçimi .lu ( ) gösterimini kullanın. .lu biçim, insan tarafından okunabilir olduğundan biçimlendirilen biçim tercih edilir ve bu da, DISK'lerde değişiklik yapma .json ve gözden geçirmeyi kolaylaştırır.

LUDown biçimini kullanarak LUIS uygulamasını kaydetme

Luis uygulamasını biçimde kaydetmek ve .lu kaynak denetimi altına yer alan:

  • YA DA: Uygulama sürümünü LUIS portalında olduğu gibi dışarı .lu aktarın ve kaynak denetim deponıza ekleyin

  • VEYA: Bir LUIS uygulaması için dosya oluşturmak ve kaynak denetim deponıza .lu eklemek için metin düzenleyicisi kullanma

İpucu

Luis uygulamasının JSON dışarı aktarması ile çalışıyorsanız, uygulamayı LUDown'a dönüştürebilirsiniz. Amaç --sort ve ifadelerin alfabetik olarak sıralanmış olduğundan emin olmak için seçeneğini kullanın.
notunu unutmayın. LUIS portalında yerleşik olarak yer alan LU dışarı aktarma özelliği çıkışı zaten sıralar.

LUIS uygulamasını kaynaktan oluşturma

Bir LUIS uygulaması için kaynaktan derlemek, kaynağı içeri aktararak yeni bir LUIS uygulama sürümü oluşturmak, sürümü eğitmek ve yayımlamak .lu anlamına gelir. Bunu LUIS portalında veya komut satırı üzerinden de kullanabilirsiniz:

  • Luis portalını kullanarak kaynak .lu denetiminden uygulamanın sürümünü içeri aktarın ve uygulamayı eğitip yayımlayın.

  • Uygulamanın Bot Framework bir LUIS uygulamasına içeri aktararak uygulamayı eğitip yayımlamak için komut satırı veya CI/CD iş akışında LUIS için Bot Framework Komut Satırı Arabirimini .lu kullanın.

Kaynak denetimi altında korunan dosyalar

LUIS uygulamanıza için aşağıdaki dosya türleri kaynak denetimi altında tutulmalıdır:

Kimlik bilgileri ve anahtarlar iade değil

Abonelik anahtarlarını veya benzer gizli değerleri, yetkisiz personel tarafından görülebilecekleri, repoma iade edersiniz dosyalarına dahil etme. Iadeyi engellemesi gereken anahtarlar ve diğer değerler şunlardır:

  • LUIS Yazma ve Tahmin anahtarları
  • LUIS Yazma ve Tahmin uç noktaları
  • Azure abonelik anahtarları
  • Otomasyon kimlik doğrulaması için kullanılan Bir Azure hizmet sorumlusu için belirteç gibi erişim belirteçleri

Gizli dizileri güvenli bir şekilde yönetme stratejileri

Gizli dizileri güvenli bir şekilde yönetme stratejileri şunlardır:

  • Git sürüm denetimi kullanıyorsanız, çalışma zamanı gizli dizilerini yerel bir dosyada depolar ve dosya adını bir .gitignore dosyasıyla eşleyen bir desen ekleyerek dosyanın iadesini önlersiniz
  • Otomasyon iş akışında gizli dizileri, bu otomasyon teknolojisinin sunduğu parametre yapılandırmasında güvenli bir şekilde depolayabilir. Örneğin, GitHub Actions kullanıyorsanızgizli dizileri gizli dizilerde güvenli GitHub depoabilirsiniz.

Dallara dallama ve birleştirme

Git gibi dağıtılmış sürüm denetimi sistemleri, takım üyelerinin başkalarıyla paylaşılan geliştirme dalları aracılığıyla kod değişikliklerini yayımlama, paylaşma, gözden geçirme ve bu değişiklikleri nasıl yeniden yaptıkları konusunda esneklik sağlar. Takımınız için uygun bir Git dallama stratejisi benimseme.

Hangi dallama stratejisini benimser olursanız kullanın, bunların hepsinde temel ilke, ekip üyelerinin bir özellik dalı içindeki çözüm üzerinde diğer dallarda devam edilen işlerden bağımsız olarak çalışmasıdır.

LUIS projesiyle dallarda bağımsız çalışmayı desteklemek için:

  • Ana dalın kendi LUIS uygulaması vardır. Bu uygulama, projeniz için çözümle ilgili geçerli durumu temsil eder ve geçerli etkin sürümü her zaman ana .lu dalda yer alan kaynakla eşmalıdır. Bu uygulamanın kaynağında yapılan tüm güncelleştirmelerin gözden geçir geçirili ve test edilmiş olması gerekir. Böylece, bu uygulama herhangi bir zamanda Üretim gibi .lu ortamlara dağıtılabilir. güncelleştirmeleri bir özellik dalı ile ana dalda birleştirilirken, LUIS uygulamasında yeni bir sürüm oluşturmanız ve sürüm .lu numarasını çarpmanız gerekir.

  • Her özellik dalı bir LUIS uygulamasının kendi örneğini kullandır. Geliştiriciler bu uygulamayla bir özellik dallarında, diğer dallarda çalışan geliştiricileri etkileme riski olmadan çalışır. Bu 'geliştirme dalı' uygulaması, özellik dalı silindiğinde silinmesi gereken çalışan bir kopyadır.

Git özellik dalı

Geliştiriciler bağımsız dallardan çalışa

Geliştiriciler bir LUIS uygulamasındaki güncelleştirmeler üzerinde diğer dallardan bağımsız olarak şu şekilde çalışabilir:

  1. Ana daldan bir özellik dalı oluşturma (dal stratejinize bağlı olarak, genellikle ana veya geliştirme).

  2. LUIS portalında ("geliştirme dalı uygulaması") yalnızca özellik dalında yapılan işi desteklemek için yeni bir LUIS uygulaması oluşturun.

    • Çözüm kaynağınız zaten dalında mevcutsa, projenin önceki bir önceki dalında yapılan iş sonrasında kaydedildikten sonra dosyayı içeri aktararak geliştirme dalı .lu LUIS uygulamanızı .lu oluşturun.

    • Yeni bir proje üzerinde çalışmaya başlıyorsanız, henüz ana .lu LUIS uygulamanıza kaynak olarakpoya sahip olmaznız. Özellik dalı çalışmanızı tamamlandıktan sonra geliştirme dalı uygulamanızı portaldan dışarı aktararak dosyayı oluşturacak ve pr'nizin bir .lu parçası olarak gönderebilirsiniz.

  3. Gerekli değişiklikleri uygulamak için geliştirme dalı uygulamanın etkin sürümü üzerinde çalışma. Tüm özellik dalı çalışmaları için geliştirme dalı uygulamanın yalnızca tek bir sürümünde çalışmanızı öneririz. Geliştirme dalı uygulamanıza birden fazla sürüm oluşturduktan sonra PR'nizi ne zaman yükseltmek istediğiniz değişiklikleri içerene dikkat edin.

  4. Güncelleştirmeleri test etme - Geliştirme dalı DevOps test etme hakkında ayrıntılı bilgi için bkz. LUIS için test etme.

  5. Geliştirme dalı uygulamanın etkin sürümünü .lu sürümler listesinden dışarı aktarın.

  6. Güncelleştirmelerinizi kontrol edin ve güncelleştirmelerinizi eş gözden geçirmeye davet edin. Bir çekme isteği GitHub, bir çekme isteğine neden olur.

  7. Değişiklikler onaylandıktan sonra güncelleştirmeleri ana dalda birleştirin. Bu noktada, main içinde güncelleştirilmiş kullanarak ana LUIS uygulamasının yeni bir sürümünü .lu oluşturabilirsiniz. Sürüm adını ayarlama hakkında dikkat edilmesi gerekenler için bkz. Sürüm hazırları.

  8. Özellik dalı silindiğinde, özellik dalı çalışması için oluşturduğunuz geliştirme dalı LUIS uygulamasını silmek iyi bir fikirdir.

Geliştiriciler aynı anda birden çok dalda çalışarak

Yukarıda geliştiriciler bağımsız dallardan çalışabilirsiniz içinde açıklanan deseni takip edersanız, her özellik dalda benzersiz bir LUIS uygulaması kullanacağız. Tek bir geliştirici, çalışmakta olduğu dal için doğru geliştirme dalı LUIS uygulamasına geçiş yaptığı sürece birden çok dal üzerinde eşzamanlı olarak çalışabilirsiniz.

Yanlış uygulamada çalışma olasılığınızı daha az olacak şekilde, özellik dalı çalışması için oluştursanız hem özellik dalı hem de geliştirme dalı LUIS uygulaması için aynı adı kullanmanızı öneririz.

Yukarıda belirtildiği gibi, kolaylık olması için her geliştirme dalı uygulamasında tek bir sürümde çalışmanizi öneririz. Birden çok sürüm kullanıyorsanız, geliştirme dalı uygulamaları arasında geçiş yapmak için doğru sürümü etkinleştirmeye dikkat edin.

Birden çok geliştirici aynı dalda eşzamanlı olarak çalışa

Aynı özellik dalı üzerinde çalışan birden çok geliştiriciyi aynı anda destekleyebilirsiniz:

  • Geliştiriciler aynı özellik dalına göz atarak, işler normal şekilde ilerlerken kendileri ve diğer geliştiriciler tarafından gönderilen değişiklikleri gönderip çeker.

  • Yukarıda Geliştiriciler bağımsız dallardan çalışabilirsiniz konusunda açıklanan deseni kullanırsanız, bu dal geliştirmeyi desteklemek için benzersiz bir LUIS uygulaması kullanır. Bu 'geliştirme dalı' LUIS uygulaması, özellik dalı ile çalışmaya başlayan geliştirme ekibinin ilk üyesi tarafından oluşturulur.

  • Geliştirme dalı LUIS uygulamasına katkıda bulunan olarak takım üyelerini ekleyin.

  • Özellik dalı işi tamamlandığında, geliştirme dalı LUIS uygulamasının etkin sürümünü sürümler listesinden dışarı aktarın, güncelleştirilmiş dosyayı bir repoya kaydedin ve değişiklikleri iade edin .lu ve .lu pr'ı yapın.

Yeniden temeli veya birleştirme ile değişiklikleri bir daldan diğerine ekleme

Başka bir dalda çalışan takımınız üzerinde çalışan diğer bazı geliştiriciler, kaynakta güncelleştirmeler yapmış ve bunları özellik dalını oluşturduktan sonra ana .lu dala birleştirilmiş olabilir. Özellik dal içinde kendi değişikliklerinizi yapmaya devam etmek için önce bu değişiklikleri çalışma sürümünüzle birleştirmek istiyor olabilirsiniz. Bunu, diğer kod varlığıyla aynı şekilde yeniden temelleşerek veya main ile birleştirerek yapabilirsiniz. LUDown biçimindeki LUIS uygulaması insan tarafından okunabilir olduğu için standart birleştirme araçlarını kullanarak birleştirmeyi destekler.

LUIS uygulamalarınızı bir özellik dallarında yenidenbasıyorsanız şu ipuçlarını izleyin:

  • Yeniden temeli veya birleştirmeden önce, ilk olarak portaldan yeniden dışarı aktararak, uygulama kaynağı yerel kopyanıza LUIS portalını kullanarak yaptığınız tüm en son değişikliklerinin uygulandığından .lu emin olun. Bu şekilde portalda yaptığınız ve henüz dışarı aktarmış olmadığınız değişiklikleri kaybetmeyebilirsiniz.

  • Birleştirme sırasında tüm birleştirme çakışmalarını çözmek için standart araçları kullanın.

  • Kendi değişikliklerinizi uygulamaya devam ettikça güncelleştirilmiş uygulamayla çalışmanız için uygulamayı yeniden portala yeniden içeri aktarma işleminin tamamlandıktan sonra yeniden tabanını veya birleştirmeyi unutmayın.

DISK'leri Birleştirme

PR'niz onaylandıktan sonra değişikliklerinizi ana dalınıza birleştirebilirsiniz. LUIS uygulaması için LUDown kaynağında dikkate alınması gereken özel bir nokta yoktur: insanlar tarafından okunabilir ve bu nedenle standart Birleştirme araçlarını kullanarak birleştirmeyi destekler. Birleştirme çakışmaları, diğer kaynak dosyalarla aynı şekilde çözülebilir.

PR'niz birleştirdikten sonra şunları temizlemeniz önerilir:

  • Repo içinde dalı silme

  • Özellik dalı çalışması için oluşturduğunuz 'geliştirme dalı' LUIS uygulamasını silin.

Uygulama kod varlıklarıyla aynı şekilde, LUIS uygulama güncelleştirmelerine eşlik edecek birim testleri yazmanız gerekir. Şunları test etmek için sürekli tümleştirme iş akışlarını çalıştırabilirsiniz:

  • Pr birleştirmeden önce bir PR'de güncelleştirmeler
  • Bir PR onaylandıktan ve değişiklikler main ile birleştirdikten sonra ana dal LUIS uygulaması.

LUIS için test etme hakkında daha fazla bilgi DevOps bkz. LUIS için DevOps için testetme. İş akışlarını uygulama hakkında daha fazla bilgi için bkz. LUIS için otomasyon iş akışları DevOps.

Kod incelemeleri

LUDown biçimindeki bir LUIS uygulaması, pr'de yapılan değişikliklerin gözden geçirilebilir şekilde iletişimini destekleyen okunabilir bir uygulamadır. Birim testi dosyaları da LUDown biçiminde yazılır ve pr'de kolayca gözden geçirilebilir.

Sürüm Oluşturma

Bir uygulama, Azure Bot Hizmeti, Azure Konuşmahizmeti ve daha birçokSoru-Cevap Oluşturma çalışan bir bot gibibirçok bileşenden oluşur. Gevşek bir şekilde bağlı uygulamaların hedefine ulaşmak için sürüm denetimi kullanarak bir uygulamanın her bileşeninin bağımsız olarak sürümüne sahip olur ve geliştiricilerin yalnızca sürüm numarasına bakarak yeni değişiklikleri veya güncelleştirmeleri algılamasına olanak sağlar. Kendi repolarında bulundurarak LUIS uygulamalarınızı diğer bileşenlerden bağımsız olarak sürüme göre daha kolay hale getirirsiniz.

Ana dal için LUIS uygulamasında bir sürüm oluşturma düzeni uygulanmış olması gerekir. Bir LUIS uygulamasının güncelleştirmelerini main ile birleştirdiğinde, bu güncelleştirilmiş kaynağı ana dal için LUIS uygulamasında yeni bir .lu sürüme içeri aktarabilirsiniz.

Ana LUIS uygulama sürümü için sayısal bir sürüm oluşturma düzeni kullanılması önerilir, örneğin:

major.minor[.build[.revision]]

Her güncelleştirmede sürüm numarası son basamakta artırılır.

Ana/ikincil sürüm, LUIS uygulama işlevselliğinde yapılan değişikliklerin kapsamını belirtmek için kullanılabilir:

  • Ana Sürüm: Yeni Amaç veya Varlık desteği gibi önemli bir değişiklik
  • İkincil Sürüm: Önemli ölçüde yeni eğitimden sonra olduğu gibi geriye dönük uyumlu küçük bir değişiklik
  • Derleme: İşlevsellik değişikliği yoktur, yalnızca farklı bir derlemedir.

Ana LUIS uygulamanıza yönelik en son düzeltmenin sürüm numarasını belirlediktan sonra yeni uygulama sürümünü derlemeniz ve test edin ve Kalite Güvencesi veya Üretim gibi farklı derleme ortamlarında kullana bir uç noktada yayımlamanız gerekir. Bu adımların hepsini sürekli tümleştirme (CI) iş akışında otomatikleştirmenizi kesinlikle öneririz.

Bkz.

  • LUIS uygulamasını test etmek ve serbest bırakmak için CI iş akışı uygulama ayrıntıları için otomasyon iş akışları.
  • Release Management LUIS uygulamanızı dağıtma hakkında daha fazla bilgi için.

'Özellik dalı' LUIS uygulamasını sürüme uygulama

Bir özellik dalda çalışmayı desteklemek için oluşturduğunuz bir 'geliştirme dalı' LUIS uygulamasıyla çalışırken, çalışmanız tamamlandığında uygulamayı dışarı aktaracak ve güncelleştirilmişi PR'nize 'lu dahil edin. Depoda yer alan dal ve 'geliştirme dalı' LUIS uygulaması, PR main ile birleştirdikten sonra silinmelidir. Bu uygulama yalnızca özellik dalı içindeki işi desteklemek için mevcut olduğu için, bu uygulamanın içinde uygulamak için ihtiyacınız olan belirli bir sürüm oluşturma düzeni yoktur.

PR'niz değişiklikleriniz main ile birleştirildiklerinden, yani ana sürüme yapılan tüm güncelleştirmeler bağımsız olarak sürüme alınmalıdır.

Sonraki adımlar