Kurumsal düzeyde konuşma bot oluştur

Azure Active Directory
App Service
Application Insights
Blob Depolama
Bot Hizmeti
Bilişsel Hizmetler
Cosmos DB
Data Factory
İşlevler
Key Vault
Logic Apps
Arama

Bu başvuru mimarisi, Azure bot çerçevesinikullanarak kurumsal düzeyde bir konuşma bot (sohbet botu) oluşturmayı açıklar.This reference architecture describes how to build an enterprise-grade conversational bot (chatbot) using the Azure Bot Framework. Her bir bot farklıdır, ancak farkında olmak üzere bazı yaygın desenler, iş akışları ve teknolojiler vardır.Each bot is different, but there are some common patterns, workflows, and technologies to be aware of. Özellikle bir bot 'un kurumsal iş yüklerine sahip olması için, yalnızca çekirdek işlevlerden çok çeşitli tasarım konuları vardır.Especially for a bot to serve enterprise workloads, there are many design considerations beyond just the core functionality. Bu makalede en önemli tasarım yönleri ele alınmaktadır ve güçlü, güvenli ve etkin bir öğrenme bot oluşturmak için gereken araçlar tanıtılmaktadır.This article covers the most essential design aspects, and introduces the tools needed to build a robust, secure, and actively learning bot.

Mimarinin diyagramıDiagram of the architecture

Bu mimarinin bir Visio dosyasını indirin.Download a Visio file of this architecture.

Bu mimaride kullanılan en iyi yöntem yardımcı programı örnekleri, GitHub'da tamamen açık kaynaklıdır ve kullanılabilir.The best practice utility samples used in this architecture are fully open-sourced and available on GitHub.

MimariArchitecture

Burada gösterilen mimari aşağıdaki Azure hizmetlerini kullanır.The architecture shown here uses the following Azure services. Kendi bot, bu hizmetlerin tümünü kullanmayabilir veya ek hizmetler içerebilir.Your own bot may not use all of these services, or may incorporate additional services.

Bot mantığı ve Kullanıcı deneyimiBot logic and user experience

  • Bot Framework Service (BFS).Bot Framework Service (BFS). Bu hizmet, bot uygulamanızı Cortana, Facebook Messenger veya bolluk gibi bir iletişim uygulamasına bağlar.This service connects your bot to a communication app such as Cortana, Facebook Messenger, or Slack. Bot ve Kullanıcı arasındaki iletişimi kolaylaştırır.It facilitates communication between your bot and the user.
  • Azure App Service.Azure App Service. Bot uygulama mantığı Azure App Service içinde barındırılır.The bot application logic is hosted in Azure App Service.

Bot billeme ve zekasıBot cognition and intelligence

  • Language Understanding (lusıs).Language Understanding (LUIS). Azure bilişsel Hizmetler'in bir parçası olan Lua, botunuzun Kullanıcı amaçlarını ve varlıklarını tanımlayarak doğal dili anlamasına olanak sağlar.Part of Azure Cognitive Services, LUIS enables your bot to understand natural language by identifying user intents and entities.
  • Azure Search.Azure Search. Arama, hızlı aranabilir bir belge dizini sağlayan bir yönetilen hizmettir.Search is a managed service that provides a quick searchable document index.
  • Soru-cevap oluşturma.QnA Maker. Soru-Cevap Oluşturma, verilerinizi temel alan bir sohbet ve soru-cevap katmanı oluşturan bulut tabanlı bir API hizmetidir.QnA Maker is a cloud-based API service that creates a conversational, question-and-answer layer over your data. Genellikle, SSS gibi yarı yapılandırılmış içerikle yüklenir.Typically, it's loaded with semi-structured content such as FAQs. Doğal dil sorularına yanıt veren bir Bilgi Bankası oluşturmak için bunu kullanın.Use it to create a knowledge base for answering natural-language questions.
  • Web uygulaması.Web app. Botunuzun mevcut bir hizmet tarafından sağlanmayan AI çözümlerine ihtiyacı varsa, kendi özel AI 'yi uygulayabilir ve bunu bir Web uygulaması olarak barındırabilirsiniz.If your bot needs AI solutions not provided by an existing service, you can implement your own custom AI and host it as a web app. Bu, bot ' ın çağırması için bir Web uç noktası sağlar.This provides a web endpoint for your bot to call.

Veri alımıData ingestion

Bot, alınmalıdır ve hazırlanması gereken ham verileri kullanır.The bot will rely on raw data that must be ingested and prepared. Bu işlemi düzenlemek için aşağıdaki seçeneklerden herhangi birini göz önünde bulundurun:Consider any of the following options to orchestrate this process:

  • Azure Data Factory.Azure Data Factory. Data Factory veri hareketini ve veri dönüştürmeyi düzenler ve otomatikleştirir.Data Factory orchestrates and automates data movement and data transformation.
  • Logic Apps.Logic Apps. Logic Apps, uygulamaları, verileri ve Hizmetleri tümleştiren iş akışları oluşturmak için sunucusuz bir platformdur.Logic Apps is a serverless platform for building workflows that integrate applications, data, and services. Logic Apps, Office 365 dahil birçok uygulama için veri bağlayıcıları sağlar.Logic Apps provides data connectors for many applications, including Office 365.
  • Azure işlevleri.Azure Functions. Bir tetikleyici tarafından çağrılan özel sunucusuz kod yazmak Için Azure işlevlerini kullanabilirsiniz — . Örneğin, blob depolamaya veya Cosmos DB her belge eklendiğinde.You can use Azure Functions to write custom serverless code that is invoked by a trigger — for example, whenever a document is added to blob storage or Cosmos DB.

Günlüğe kaydetme ve izlemeLogging and monitoring

  • Application Insights.Application Insights. Application Insights kullanarak, izleme, tanılama ve analitik amaçlar için bot 'ın uygulama ölçümlerini günlüğe kaydedin.Use Application Insights to log the bot's application metrics for monitoring, diagnostic, and analytical purposes.
  • Azure Blob depolama.Azure Blob Storage. Blob depolama, çok miktarda yapılandırılmamış veriyi depolamak için iyileştirilmiştir.Blob storage is optimized for storing massive amounts of unstructured data.
  • Cosmos DB.Cosmos DB. Cosmos DB, konuşmalar gibi yarı yapılandırılmış günlük verilerini depolamak için uygundur.Cosmos DB is well-suited for storing semi-structured log data such as conversations.
  • Power BI.Power BI. Botunuzun izleme panoları oluşturmak için Power BI kullanın.Use Power BI to create monitoring dashboards for your bot.

Güvenlik ve idareSecurity and governance

Kalite güvencesi ve geliştirmeleriQuality assurance and enhancements

  • Azure DevOps.Azure DevOps. , Uygulama yönetimi için kaynak denetimi, derleme, test, dağıtım ve proje izleme gibi birçok hizmeti sağlar.Provides many services for app management, including source control, building, testing, deployment, and project tracking.
  • Vs Code Uygulama geliştirme için basit kod Düzenleyicisi.VS Code A lightweight code editor for app development. Benzer özelliklerle başka bir IDE kullanabilirsiniz.You can use any other IDE with similar features.

Tasarım konusunda dikkat edilmesi gerekenlerDesign considerations

Yüksek düzeyde, bir konuşma bot, bot işlevselliğine ("bey,") ve bir dizi bir gereksinimi ("gövde") ayrılabilir.At a high level, a conversational bot can be divided into the bot functionality (the "brain") and a set of surrounding requirements (the "body"). Bey, bot Logic ve ML özellikleri dahil olmak üzere etki alanı kullanan bileşenleri içerir.The brain includes the domain-aware components, including the bot logic and ML capabilities. Diğer bileşenler, etki alanı belirsiz ve CI/CD, kalite güvencesi ve güvenlik gibi işlevsel olmayan gereksinimlere sahiptir.Other components are domain agnostic and address non-functional requirements such as CI/CD, quality assurance, and security.

Bot işlevinin mantıksal diyagramı

Bu mimarinin özelliklerine geçmeden önce, tasarımın her bir alt bileşeni aracılığıyla veri akışı ile başlayalım.Before getting into the specifics of this architecture, let's start with the data flow through each subcomponent of the design. Veri akışı, Kullanıcı tarafından başlatılan ve sistem tarafından başlatılan veri akışlarını içerir.The data flow includes user-initiated and system-initiated data flows.

Kullanıcı ileti akışıUser message flow

Kimlik doğrulaması.Authentication. Kullanıcılar, bot ile iletişim kanalları tarafından hangi mekanizmayı kullanarak kimlik doğrulaması yaparak başlar.Users start by authenticating themselves using whatever mechanism is provided by their channel of communication with the bot. Bot Framework Cortana, Microsoft ekipleri, Facebook Messenger, kik ve bolluk gibi birçok iletişim kanalını destekler.The bot framework supports many communication channels, including Cortana, Microsoft Teams, Facebook Messenger, Kik, and Slack. Kanalların bir listesi için bkz. kanallara bir bot bağlama.For a list of channels, see Connect a bot to channels. Azure bot hizmeti ile bir bot oluşturduğunuzda, Web sohbet kanalı otomatik olarak yapılandırılır.When you create a bot with Azure Bot Service, the Web Chat channel is automatically configured. Bu kanal, kullanıcıların doğrudan bir Web sayfasında kendi bot 'unuzla etkileşim kurmasına olanak tanır.This channel allows users to interact with your bot directly in a web page. Ayrıca, doğrudan çizgi kanalını kullanarak bot 'ı özel bir uygulamaya bağlayabilirsiniz.You can also connect the bot to a custom app by using the Direct Line channel. Kullanıcının kimliği, rol tabanlı erişim denetimi sağlamak için ve kişiselleştirilmiş içerik sunmak için kullanılır.The user's identity is used to provide role-based access control, as well as to serve personalized content.

Kullanıcı iletisi.User message. Kimliği doğrulandıktan sonra, Kullanıcı bot 'a bir ileti gönderir.Once authenticated, the user sends a message to the bot. Bot, iletiyi okur ve halsısgibi bir doğal dil anlama hizmetine yönlendirir.The bot reads the message and routes it to a natural language understanding service such as LUIS. Bu adım amaçları (kullanıcının yapması istediği şey) ve varlıkları (kullanıcının ilgilendiği şeyler) alır.This step gets the intents (what the user wants to do) and entities (what things the user is interested in). Bot daha sonra belge alımı için Azure Search , sss için soru-cevap oluşturma veya özel bir Bilgi Bankası gibi bilgileri sunan bir hizmete geçirdiği bir sorgu oluşturur.The bot then builds a query that it passes to a service that serves information, such as Azure Search for document retrieval, QnA Maker for FAQs, or a custom knowledge base. Bot bu sonuçları bir yanıt oluşturmak için kullanır.The bot uses these results to construct a response. Belirli bir sorgu için en iyi sonucu vermek üzere, bot bu uzak hizmetlere birkaç geri ve geriye çağrı yapabilir.To give the best result for a given query, the bot might make several back-and-forth calls to these remote services.

Yanıt.Response. Bu noktada, bot en iyi yanıtı tespit etti ve kullanıcıya gönderiyor.At this point, the bot has determined the best response and sends it to the user. En iyi eşleşen yanıtın güven puanı düşükse, yanıt bir Kesinleştirme sorusu veya bot 'ın yeterince yanıt almadığı bir bildirim olabilir.If the confidence score of the best-matched answer is low, the response might be a disambiguation question or an acknowledgment that the bot could not reply adequately.

Günlüğe kaydetme.Logging. Bir Kullanıcı isteği alındığında veya bir yanıt gönderildiğinde, tüm konuşma eylemlerinin, performans ölçümleri ve dış hizmetlerden gelen genel hatalarla birlikte günlüğe kaydetme deposuna kaydedilmesi gerekir.When a user request is received or a response is sent, all conversation actions should be logged to a logging store, along with performance metrics and general errors from external services. Bu günlükler daha sonra sorunları tanılamanıza ve sistemi iyileştirerek yararlı olacaktır.These logs will be useful later when diagnosing issues and improving the system.

Geri bildirim.Feedback. Başka bir iyi uygulama de Kullanıcı geri bildirimi ve memnuniyet puanları toplamaktır.Another good practice is to collect user feedback and satisfaction scores. Bot 'un nihai yanıtını takip eden bir izleme olarak, bot kullanıcıdan Yanıtla ilgili memnuniyet oranını belirtmesini ister.As a follow up to the bot's final response, the bot should ask the user to rate their satisfaction with the reply. Geri bildirim, doğal dil anlama ve sürekli yanıt doğruluğunu iyileştirebilmek için soğuk başlatma sorununu çözmenize yardımcı olabilir.Feedback can help you to solve the cold start problem of natural language understanding, and continually improve the accuracy of responses.

Sistem veri akışıSystem Data Flow

ETL.ETL. Bot, arka uçta bir ETL işlemi tarafından ham verilerden ayıklanan bilgileri ve bilgileri kullanır.The bot relies on information and knowledge extracted from the raw data by an ETL process in the backend. Bu veriler yapılandırılmış (SQL veritabanı), yarı yapılandırılmış (CRM sistemi, SSS) veya yapılandırılmamış (Word belgeleri, PDF 'Ler, Web günlükleri) olabilir.This data might be structured (SQL database), semi-structured (CRM system, FAQs), or unstructured (Word documents, PDFs, web logs). ETL alt sistemi, verileri sabit bir zamanlamaya göre ayıklar.An ETL subsystem extracts the data on a fixed schedule. İçerik dönüştürülür ve zenginleştirilmiş, ardından Cosmos DB veya Azure Blob depolama gibi bir ara veri deposuna yüklenir.The content is transformed and enriched, then loaded into an intermediary data store, such as Cosmos DB or Azure Blob Storage.

Daha sonra, aracı deposundaki veriler belge alımı için Azure Search dizinlenir, soru ve yanıt çiftleri oluşturmak için Soru-Cevap Oluşturma yüklenir veya yapılandırılmamış metin işleme için özel bir Web uygulamasına yüklenir.Data in the intermediary store is then indexed into Azure Search for document retrieval, loaded into QnA Maker to create question and answer pairs, or loaded into a custom web app for unstructured text processing. Veriler, amaç ve varlık ayıklama için bir LUO modeli eğitme için de kullanılır.The data is also used to train a LUIS model for intent and entity extraction.

Kalite güvencesi.Quality assurance. Konuşma günlükleri, hataları tanılamak ve onarmak, bot 'ın nasıl kullanıldığına ilişkin Öngörüler sağlamak ve genel performansı izlemek için kullanılır.The conversation logs are used to diagnose and fix bugs, provide insight into how the bot is being used, and track overall performance. Geri bildirim verileri, bot performansını geliştirmek üzere AI modellerini yeniden eğitmek için faydalıdır.Feedback data is useful for retraining the AI models to improve bot performance.

Bot oluşturmaBuilding a bot

Tek bir kod satırı yazmadan önce, bir işlevsel belirtim yazmak önemlidir, böylece geliştirme ekibinin, bot 'ın yapması beklenen bir fikir vardır.Before you even write a single line of code, it's important to write a functional specification so the development team has a clear idea of what the bot is expected to do. Belirtim, çeşitli bilgi etki alanlarında Kullanıcı girişlerinin makul kapsamlı bir listesini ve beklenen bot yanıtlarını içermelidir.The specification should include a reasonably comprehensive list of user inputs and expected bot responses in various knowledge domains. Bu oturma belgesi, bot uygulamanızı geliştirmek ve test etmek için değerli bir kılavuz olacaktır.This living document will be an invaluable guide for developing and testing your bot.

Veriyi çekmeIngest data

Ardından, bot 'ın kullanıcılarla etkileşimli olarak etkileşime geçmesini sağlayacak veri kaynaklarını tanımla.Next, identify the data sources that will enable the bot to interact intelligently with users. Daha önce belirtildiği gibi, bu veri kaynakları yapılandırılmış, yarı yapılandırılmış veya yapılandırılmamış veri kümeleri içerebilir.As mentioned earlier, these data sources could contain structured, semi-structured, or unstructured data sets. Başlarken, verilerin bir kopyasını Cosmos DB veya Azure depolama gibi merkezi bir depoya oluşturmak iyi bir yaklaşımdır.When you're getting started, a good approach is to make a one-off copy of the data to a central store, such as Cosmos DB or Azure Storage. Devam ederken, bu verileri güncel tutmak için otomatik veri alma işlem hattı oluşturmalısınız.As you progress, you should create an automated data ingestion pipeline to keep this data current. Otomatik alma işlem hattı seçenekleri Data Factory, Işlevleri ve Logic Apps içerir.Options for an automated ingestion pipeline include Data Factory, Functions, and Logic Apps. Veri depolarına ve şemalara bağlı olarak, bu yaklaşımların bir bileşimini kullanabilirsiniz.Depending on the data stores and the schemas, you might use a combination of these approaches.

Başlarken, Azure kaynaklarını el ile oluşturmak için Azure portal kullanmak mantıklı olur.As you get started, it's reasonable to use the Azure portal to manually create Azure resources. Daha sonra, bu kaynakların dağıtımını otomatik hale getirmek için daha fazla düşünce koymanız gerekir.Later on, you should put more thought into automating the deployment of these resources.

Çekirdek bot mantığı ve UXCore bot logic and UX

Bir belirtim ve bazı verileriniz olduktan sonra, botunuzu gerçeklik 'e yapmaya başlaalım zamanı.Once you have a specification and some data, it's time to start making your bot into reality. Çekirdek bot mantığına odaklanalım.Let's focus on the core bot logic. Bu, yönlendirme mantığı, Kesinleştirme mantığı ve günlüğe kaydetme dahil olmak üzere kullanıcıyla iletişimi işleyen koddur.This is the code that handles the conversation with the user, including the routing logic, disambiguation logic, and logging. Alıştırarak ile Şu şekilde başlatın: Start by familiarizing yourself with the Bot Framework, including:

  • Çerçevede kullanılan temel kavramlar ve terminoloji, özellikle [konuşmalar], [dönüşler]ve [Etkinlikler].Basic concepts and terminology used in the framework, especially conversations, turns, and activities.
  • Bot ve kanallarınız arasındaki ağı işleyen bot Bağlayıcısı hizmeti.The Bot Connector service, which handles the networking between the bot and your channels.
  • Azure Blob depolama veya Azure Cosmos DB gibi bir depoda, veya daha iyi bir şekilde konuşma durumunun bakımı.How conversation state is maintained, either in memory or better yet in a store such as Azure Blob Storage or Azure Cosmos DB.
  • Ara yazılımlarve bilişsel hizmetler gibi dış hizmetlerle botunuzu bağlamak için nasıl kullanılabileceği.Middleware, and how it can be used to hook up your bot with external services, such as Cognitive Services.

Zengin bir Kullanıcı deneyimiiçin birçok seçenek vardır.For a rich user experience, there are many options.

  • Düğmeleri, görüntüleri, Carousels ve menüleri dahil etmek için kartlar kullanabilirsiniz.You can use cards to include buttons, images, carousels, and menus.
  • Bir bot, konuşmayı destekleyebilir.A bot can support speech.
  • Ayrıca, bot uygulamanızı bir uygulamaya veya Web sitesine ekleyebilir ve bu uygulamayı barındıran uygulamanın yeteneklerini kullanabilirsiniz.You can even embed your bot in an app or website and use the capabilities of the app hosting it.

Başlamak için, Azure bot hizmetinikullanarak botunuzu, kullanılabilir C# ve Node.js şablonlarından seçerek oluşturabilirsiniz.To get started, you can build your bot online using the Azure Bot Service, selecting from the available C# and Node.js templates. Ancak, bot 'niz daha karmaşıktır; ancak, bu dosyayı yerel olarak oluşturmanız ve ardından Web 'e dağıtmanız gerekecektir.As your bot gets more sophisticated, however, you will need to create your bot locally then deploy it to the web. Visual Studio veya Visual Studio Code gibi bir IDE ve bir programlama dili seçin.Choose an IDE, such as Visual Studio or Visual Studio Code, and a programming language. SDK 'lar aşağıdaki diller için kullanılabilir:SDKs are available for the following languages:

Başlangıç noktası olarak, Azure bot hizmetini kullanarak oluşturduğunuz bot 'ın kaynak kodunu indirebilirsiniz.As a starting point, you can download the source code for the bot you created using the Azure Bot Service. Basit yankı botları ' ndan, çeşitli AI hizmetleriyle tümleştirilen daha karmaşık botlara örnek kodde bulabilirsiniz.You can also find sample code, from simple echo bots to more sophisticated bots that integrate with various AI services.

Botunuza Smarts eklemeAdd smarts to your bot

İyi tanımlanmış bir komut listesi olan basit bir bot için, Regex aracılığıyla Kullanıcı girişini ayrıştırmaya yönelik kurallar tabanlı bir yaklaşım kullanabilirsiniz.For a simple bot with a well-defined list of commands, you might be able to use a rules-based approach to parse the user input via regex. Bu, belirleyici ve anlaşılabilir olmasının avantajlarından yararlanır.This has the advantage of being deterministic and understandable. Ancak, bot 'unuzun daha doğal bir iletinin amaçlarını ve varlıklarını anlaması gerektiğinde, yardımcı olabilecek AI hizmetleri vardır.However, when your bot needs to understand the intents and entities of a more natural-language message, there are AI services that can help.

  • LUO, Kullanıcı amaçlarını ve varlıklarını anlamak için özel olarak tasarlanmıştır.LUIS is specifically designed to understand user intents and entities. Bunu, ilgili Kullanıcı girişinin ve istenen yanıtların orta ölçekli bir koleksiyonuyla eğitebilirsiniz ve Kullanıcı verilen ileti için amaçları ve varlıkları döndürür.You train it with a moderately sized collection of relevant user input and desired responses, and it returns the intents and entities for a user's given message.

  • Azure Search, LUO ile birlikte çalışabilir.Azure Search can work alongside LUIS. Arama 'yı kullanarak tüm ilgili veriler üzerinde aranabilir dizinler oluşturursunuz.Using Search, you create searchable indexes over all relevant data. Bot, LUO tarafından ayıklanan varlıklar için bu dizinleri sorgular.The bot queries these indexes for the entities extracted by LUIS. Azure Search, eş anlamlılarıda destekler ve bu da doğru sözcük eşlemelerinin net ' i genişletebilirsiniz.Azure Search also supports synonyms, which can widen the net of correct word mappings.

  • Soru-Cevap Oluşturma, belirli soruların yanıtlarını döndürecek şekilde tasarlanan başka bir hizmettir.QnA Maker is another service that is designed to return answers for given questions. Genellikle SSS gibi yarı yapılandırılmış verilere göre eğitilir.It's typically trained over semi-structured data such as FAQs.

Botunuzun diğer AI hizmetlerini kullanarak Kullanıcı deneyimini daha zengin zenginleştirebilirsiniz.Your bot can use other AI services to further enrich the user experience. Önceden oluşturulmuş olan AI hizmetlerinin bilişsel hizmetler PAKETI (Luu ve soru-cevap oluşturma dahildir), görme, konuşma, dil, arama ve konum hizmetleri içerir.The Cognitive Services suite of pre-built AI services (which includes LUIS and QnA Maker) has services for vision, speech, language, search, and location. Dil çevirisi, yazım denetimi, yaklaşım analizi, OCR, konum tanıma ve içerik denetleme gibi işlevleri hızlıca ekleyebilirsiniz.You can quickly add functionality such as language translation, spell checking, sentiment analysis, OCR, location awareness, and content moderation. Bu hizmetler, daha doğal ve Kullanıcı ile anlaşılır bir şekilde etkileşimde bulunmak için bot 'inizdeki ara yazılım modülleri olarak bağlanabilir.These services can be wired up as middleware modules in your bot to interact more naturally and intelligently with the user.

Başka bir seçenek de kendi özel AI hizmetinizi tümleştirmeniz.Another option is to integrate your own custom AI service. Bu yaklaşım daha karmaşıktır, ancak makine öğrenimi algoritması, eğitim ve model açısından tüm esnekliğe sahip olmanızı sağlar.This approach is more complex, but gives you complete flexibility in terms of the machine learning algorithm, training, and model. Örneğin, kendi konu modelinizi uygulayabilir ve benzer veya ilgili belgeleri bulmak için lda gibi algoritmayı kullanabilirsiniz.For example, you could implement your own topic modeling and use algorithm such as LDA to find similar or relevant documents. Özel AI çözümünüzü Web hizmeti uç noktası olarak kullanıma sunmak ve çekirdek bot mantığındaki uç noktayı çağırmak iyi bir yaklaşımdır.A good approach is to expose your custom AI solution as a web service endpoint, and call the endpoint from the core bot logic. Web hizmeti App Service veya bir VM kümesinde barındırılabilir.The web service could be hosted in App Service or in a cluster of VMs. Azure Machine Learning , modellerinizi eğitmek ve dağıtmanıza yardımcı olacak bir dizi hizmet ve kitaplık sağlar.Azure Machine Learning provides a number of services and libraries to assist you in training and deploying your models.

Kalite güvencesi ve geliştirmeQuality assurance and enhancement

Günlüğe kaydetme.Logging. Temeldeki performans ölçümleri ve hatalar da dahil olmak üzere, Kullanıcı konuşmalarını bot ile günlüğe kaydedin.Log user conversations with the bot, including the underlying performance metrics and any errors. Bu Günlükler, hata ayıklama sorunları, kullanıcı etkileşimini anlamak ve sistemi iyileştirmek için değerlidir.These logs will prove invaluable for debugging issues, understanding user interactions, and improving the system. Farklı türlerde Günlükler için farklı veri depoları uygun olabilir.Different data stores might be appropriate for different types of logs. Örneğin, Web günlükleri için Application Insights, konuşmalar için Cosmos DB ve büyük yükleri için Azure Storage ' ı düşünün.For example, consider Application Insights for web logs, Cosmos DB for conversations, and Azure Storage for large payloads. Bkz. doğrudan Azure Storage 'A yazma.See Write directly to Azure Storage.

Geri bildirim.Feedback. Ayrıca, memnun olan kullanıcıların bot etkileşimlerine ait olduğunu anlamak da önemlidir.It's also important to understand how satisfied users are with their bot interactions. Kullanıcı geri bildirimi kaydınız varsa, bu verileri belirli etkileşimleri geliştirme ve daha iyi performans için AI modellerini yeniden eğitme hakkında çabalarınıza odaklanmak için kullanabilirsiniz.If you have a record of user feedback, you can use this data to focus your efforts on improving certain interactions and retraining the AI models for improved performance. Sisteminizdeki LUO gibi modelleri yeniden eğitebilmeniz için geri bildirimleri kullanın.Use the feedback to retrain the models, such as LUIS, in your system.

Test ediliyor.Testing. Bir bot 'ı test etmek, birim testlerini, tümleştirme testlerini, regresyon testlerini ve işlevsel testleri içerir.Testing a bot involves unit tests, integration tests, regression tests, and functional tests. Sınama için, Azure Search veya Soru-Cevap Oluşturma gibi harici hizmetlerden gerçek HTTP yanıtlarının kaydedilmesini öneririz. böylece, dış hizmetlere gerçek ağ çağrıları yapmaya gerek kalmadan birim testi sırasında kayıttan oynanabilir.For testing, we recommend recording real HTTP responses from external services, such as Azure Search or QnA Maker, so they can be played back during unit testing without needing to make real network calls to external services.

Not

Bu alanlarda geliştirmeye hızlı bir başlangıç yapmak için JavaScript Için Botbuilder yardımcı programları' na bakın.To jump-start your development in these areas, look at the Botbuilder Utils for JavaScript. Bu depo, Microsoft bot Framework v4 ile oluşturulan ve Node.js çalıştıran botlar için örnek yardımcı program kodu içerir.This repo contains sample utility code for bots built with Microsoft Bot Framework v4 and running Node.js. Aşağıdaki paketleri içerir:It includes the following packages:

Bu paketler yardımcı program örnek kodu olarak sağlanır ve destek veya güncelleştirme garantisi olmadan gelir.These packages are provided as utility sample code, and come with no guarantee of support or updates.

Kullanılabilirlik konusunda dikkat edilmesi gerekenlerAvailability considerations

Botunuza yeni özellikler veya hata düzeltmeleri yaparken, hazırlama ve üretim gibi birden çok dağıtım ortamını kullanmak en iyisidir.As you roll out new features or bug fixes to your bot, it's best to use multiple deployment environments, such as staging and production. Azure DevOps 'tan dağıtım yuvaları kullanmak, bu işlemi sıfır kapalı kalma süresiyle yapmanıza olanak sağlar.Using deployment slots from Azure DevOps allows you to do this with zero downtime. En son yükseltmelerinizi üretim ortamına değiştirmeden önce hazırlama ortamında test edebilirsiniz.You can test your latest upgrades in the staging environment before swapping them to the production environment. Yük işleme açısından, App Service ölçeği el ile veya otomatik olarak genişletmek için tasarlanmıştır.In terms of handling load, App Service is designed to scale up or out manually or automatically. Bot 'niz Microsoft 'un küresel veri merkezi altyapısında barındırıldığından, App Service SLA yüksek kullanılabilirliğe sahip olur.Because your bot is hosted in Microsoft's global datacenter infrastructure, the App Service SLA promises high availability.

Güvenlik konularıSecurity considerations

Diğer herhangi bir uygulamada olduğu gibi, bot önemli verileri işleyecek şekilde tasarlanabilir.As with any other application, the bot can be designed to handle sensitive data. Bu nedenle, kimin oturum açmasını ve bot 'ı kullanbileceğini kısıtlayın.Therefore, restrict who can sign in and use the bot. Ayrıca, kullanıcının kimliğine veya rolüne göre hangi verilere erişilebileceğini sınırlayın.Also limit which data can be accessed, based on the user's identity or role. Anahtar ve gizli dizileri yönetmek için kimlik ve erişim denetimi için Azure AD kullanın ve Key Vault.Use Azure AD for identity and access control and Key Vault to manage keys and secrets.

DevOps için dikkat edilmesi gerekenlerDevOps considerations

İzleme ve raporlamaMonitoring and reporting

Botunuzun üretimde çalışmaya başladıktan sonra bu şekilde bir DevOps ekibine sahip olursunuz.Once your bot is running in production, you will need a DevOps team to keep it that way. Bot 'ın yoğun performans üzerinde çalıştığından emin olmak için sistemi sürekli izleyin.Continually monitor the system to ensure the bot operates at peak performance. Application Insights kendisini, Power BI ya da özel bir Web uygulaması panosunu kullanarak izleme panoları oluşturmak için Application Insights veya Cosmos DB gönderilen günlükleri kullanın.Use the logs sent to Application Insights or Cosmos DB to create monitoring dashboards, either using Application Insights itself, Power BI, or a custom web app dashboard. Kritik hatalar oluşursa veya performans kabul edilebilir eşiğin altına düşerse DevOps ekibine uyarı gönderin.Send alerts to the DevOps team if critical errors occur or performance falls below an acceptable threshold.

Otomatik kaynak dağıtımıAutomated resource deployment

Bot yalnızca en yeni verileri sağlayan daha büyük bir sistemin parçasıdır ve doğru işlemini sağlar.The bot itself is only part of a larger system that provides it with the latest data and ensures its proper operation. Data Factory gibi diğer tüm Azure kaynakları — veri düzenleme hizmetleri, Cosmos DB gibi depolama hizmetleri ve benzeri, — dağıtılması gerekir.All of these other Azure resources — data orchestration services such as Data Factory, storage services such as Cosmos DB, and so forth — must be deployed. Azure Resource Manager, Azure portal, PowerShell veya Azure CLı aracılığıyla erişebileceğiniz tutarlı bir yönetim katmanı sağlar.Azure Resource Manager provides a consistent management layer that you can access through the Azure portal, PowerShell, or the Azure CLI. Hız ve tutarlılık için, bu yaklaşımlardan birini kullanarak dağıtımınızı otomatik hale getirmek en iyisidir.For speed and consistency, it's best to automate your deployment using one of these approaches.

Sürekli bot dağıtımıContinuous bot deployment

Bot mantığını doğrudan IDE 'nizden veya Azure CLı gibi bir komut satırından dağıtabilirsiniz.You can deploy the bot logic directly from your IDE or from a command line, such as the Azure CLI. Bununla birlikte, sizin de en iyi şekilde Azure DevOps gibi bir CI/CD çözümü kullanarak sürekli dağıtımı ayarlamamakalesinde açıklandığı gibi, sürekli bir dağıtım işlemi kullanmak en iyisidir.As your bot matures, however, it's best to use a continual deployment process using a CI/CD solution such as Azure DevOps, as described in the article Set up continuous deployment. Bu, yeni özellikleri ve Botlarınızdaki düzeltmeleri neredeyse üretim ortamında sınamaya yönelik iyi bir yoldur.This is a good way to ease the friction in testing new features and fixes in your bot in a near-production environment. Genellikle en az hazırlama ve üretim olmak üzere birden çok dağıtım ortamının olması iyi bir fikirdir.It's also a good idea to have multiple deployment environments, typically at least staging and production. Azure DevOps bu yaklaşımı destekler.Azure DevOps supports this approach.

Maliyetle ilgili konularCost considerations

Maliyetleri tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın.Use the Azure pricing calculator to estimate costs. Diğer bazı konular aşağıda verilmiştir.Here are some other considerations.

Bot uygulamasıBot application

Bu mimaride, ana maliyet sürücüsü, bot uygulama mantığının barındırıldığı Azure App Service.In this architecture, the main cost driver is the Azure App Service in which the bot application logic is hosted. Gereksinimlerinize en uygun bir App Service planı katmanını seçin.Choose an App Service plan tier that best suits your needs. Bazı öneriler aşağıda verilmiştir:Here are some recommendations:

  • Paylaşılan kaynaklar ölçeklenmediği için, test amaçlı olarak ücretsiz ve paylaşılan (Önizleme) katmanları kullanın.Use Free and Shared (preview) tiers for testing purposes because the shared resources cannot scale out.
  • Uygulama adanmış sanal makine örneklerinde çalıştığından ve ölçeklendirebilecek kaynakları ayırdığından, üretim iş yükünüzü temel, Standart ve Premium katmanlarda çalıştırın. App Service planlar, saniye başına faturalandırılır.Run your production workload on Basic, Standard, and Premium tiers because the app runs on dedicated virtual machine instances and has allocated resources that can scale out. App Service plans are billed on a per second basis.

Uygulama durdurulduğunda bile App Service planındaki örnekler için ücretlendirilirsiniz.You are charged for the instances in the App Service plan, even when the app is stopped. Test dağıtımları gibi uzun vadede kullanmak istemediğiniz planları silin.Delete plans that you don't intend to use long term, such as test deployments.

Daha fazla bilgi için App Service planımın maliyeti nedir?bölümüne bakın.For more information, see How much does my App Service plan cost?.

Veri alımıData ingestion

  • Azure Data FactoryAzure Data Factory

    Bu mimaride, Data Factory veri alımı ardışık düzenini otomatikleştirir.In this architecture, Data Factory automates the data ingestion pipeline. SQL Server Integration Services, tüm şekil ve boyutlardaki verileri tümleştirmede büyük ölçekli, sunucusuz veri işlem hattına kadar, SQL Server projelerinin sorunsuz geçişini sağlamak için yönetilen, bütçe ihtiyaçlarınıza uygun bir dizi veri tümleştirme özelliği bulun.Explore a range of data integration capabilities to fit your budget needs, from managed SQL Server Integration Services for seamless migration of SQL Server projects to the cloud (cost effective option), to large-scale, serverless data pipelines for integrating data of all shapes and sizes.

    Örnek için bkz. Azure Data Factory-örnek maliyet analizi.For an example, see Azure Data Factory - example cost analysis.

  • Azure İşlevleriAzure Functions

    Bu başvuru mimarisinde, Azure Işlevleri Tüketim planına göre faturalandırılır.In this reference architecture, Azure Functions is billed as per the Consumption plan. İkinci kaynak tüketimine göre ücretlendirilirsiniz ve bir olay, işlevin yürütülmesini tetikler.You are charged based on per-second resource consumption and each time an event triggers the execution of the function. Tek bir yürütmede veya toplu işlerle çeşitli olayların işlenmesi maliyeti düşürebilir.Processing several events in a single execution or batches can reduce cost.

    Azure, işlevleri gerektiği gibi çalıştırmak için gereken altyapıyı ölçeklendirir.Azure scales the infrastructure required to run functions as needed. İş yükü azaldığında, altyapı, ilişkili maliyet olmadan sıfıra kadar ölçeklendirilir.When workload is low, the infrastructure is scaled down up to zero with no associated cost. İş yükü her büyüdükçe Azure tüm talepleri karşılamak için yeterli kapasiteyi kullanır.Whenever the workload grows, Azure uses enough capacity to serve all the demand. Fiili kullanım başına ödeme yaptığınız için, her bileşenin tam maliyetini yönetin.Because you pay per actual use, manage the exact cost of each component.

Logic AppsLogic Apps

Logic Apps fiyatlandırması, Kullandıkça öde modelinde çalışmaktadır.Logic apps pricing works on the pay-as-you-go model. Logic Apps, Kullandıkça Öde fiyatlandırma modeline sahiptir.Logic apps have a pay-as-you-go pricing model. Bir mantıksal uygulama her çalıştığında Tetikleyiciler, Eylemler ve bağlayıcı yürütmeleri ölçülür.Triggers, actions, and connector executions are metered each time a logic app runs. Tetikleyiciler de dahil olmak üzere tüm başarılı ve başarısız eylemler yürütmeler olarak değerlendirilir.All successful and unsuccessful actions, including triggers, are considered as executions.

Örneğin, mantıksal uygulamanız 1000 ileti Azure Service Bus 'ten bir gün işler.For instance, your logic app processes 1000 messages a day from Azure Service Bus. Beş eylemden oluşan bir iş akışı $6 'den daha az ücret alacak.A workflow of five actions will cost less than $6. Daha fazla bilgi için bkz. Logic Apps fiyatlandırması.For more information, see Logic Apps pricing.

Diğer maliyet konuları için Microsoft Azure Well-Architected Framework 'Ünmaliyet bölümüne bakın.For other cost considerations, see the Cost section in Microsoft Azure Well-Architected Framework.

Sonraki AdımlarNext Steps

  • Konuşma botları oluşturmaya başlamak için sanal yardımcı şablonunu gözden geçirin.Review the Virtual Assistant template to quickly get started building conversational bots.