ProHoster > وبلاگ > اداره > ما توسعه را با استفاده از خدمات Azure تسریع می کنیم: ما چت بات ها و خدمات شناختی را با استفاده از پلت فرم ایجاد می کنیم
ما توسعه را با استفاده از خدمات Azure تسریع می کنیم: ما چت بات ها و خدمات شناختی را با استفاده از پلت فرم ایجاد می کنیم
سلام، هابر! امروز به شما نشان خواهیم داد که چگونه از Azure برای حل مشکلاتی که معمولاً نیاز به دخالت انسان دارند استفاده کنید. نمایندگان زمان زیادی را صرف پاسخگویی به سوالات مشابه، رسیدگی به تماس های تلفنی و پیام های متنی می کنند. چت بات ها ارتباطات و شناسایی را خودکار می کنند و بار مردم را کاهش می دهند. رباتها همچنین در Azure DevOps استفاده میشوند، جایی که به عنوان مثال اجازه میدهند تا نسخهها را تأیید کنند، ساختها را مدیریت کنند - مشاهده، شروع و توقف - مستقیماً از Slack یا تیمهای مایکروسافت. در اصل، یک ربات چت تا حدودی یادآور CLI است، فقط تعاملی است، و به توسعهدهنده اجازه میدهد تا در چارچوب بحث چت باقی بماند.
در این مقاله، ما در مورد ابزارهایی برای ایجاد چت بات ها صحبت خواهیم کرد، نشان خواهیم داد که چگونه می توان آنها را با خدمات شناختی بهبود بخشید، و نحوه سرعت بخشیدن به توسعه با سرویس های آماده در Azure را شرح خواهیم داد.
چت بات ها و خدمات شناختی: چه شباهت ها و چه تفاوت هایی با هم دارند؟
برای ایجاد ربات در Microsoft Azure، از سرویس ربات Azure و Bot Framework استفاده می کنید. آنها با هم مجموعه ای از نرم افزارها را برای ساخت، آزمایش، استقرار و مدیریت ربات ها نشان می دهند که به شما امکان می دهد از ماژول های آماده سیستم های ارتباطی ساده و پیشرفته با پشتیبانی گفتار، تشخیص زبان طبیعی و سایر قابلیت ها ایجاد کنید.
بیایید فرض کنیم که شما باید یک ربات ساده را بر اساس یک سرویس پرسش و پاسخ شرکتی پیاده سازی کنید یا برعکس، یک ربات کاربردی با یک سیستم ارتباطی پیچیده و شاخه ای ایجاد کنید. برای انجام این کار، می توانید از تعدادی ابزار استفاده کنید که به سه گروه تقسیم می شوند:
خدمات توسعه سریع رابط های گفتگو (ربات ها).
خدمات هوش مصنوعی شناختی آماده برای موارد استفاده مختلف (تشخیص الگو، تشخیص گفتار، پایگاه دانش و جستجو).
خدمات ایجاد و آموزش مدل های هوش مصنوعی.
به طور معمول، مردم به طور شهودی «رباتها» و «سرویسهای شناختی» را اشتباه میگیرند، زیرا هر دو مفهوم مبتنی بر اصل ارتباط هستند و مورد استفاده رباتها و سرویسها شامل گفتوگو میشود. اما چتباتها با کلمات کلیدی و محرکها کار میکنند و سرویسهای شناختی با درخواستهای دلخواه که معمولاً توسط انسانها پردازش میشوند کار میکنند:
خدمات شناختی راه دیگری برای برقراری ارتباط با کاربر است که به تبدیل درخواست دلخواه به یک دستور واضح و انتقال آن به ربات کمک می کند.
بنابراین، رباتهای چت برنامههایی برای کار با درخواستها هستند و سرویسهای شناختی ابزارهایی برای تجزیه و تحلیل هوشمند درخواستها هستند که به طور جداگانه راهاندازی میشوند، اما چتبات میتواند به آنها دسترسی پیدا کند و «هوشمند» شود.
ایجاد چت ربات
نمودار طراحی پیشنهادی برای یک ربات در Azure به شرح زیر است:
برای طراحی و توسعه ربات ها در Azure، استفاده کنید چارچوب ربات. در GitHub موجود است نمونه هایی از ربات ها، قابلیت های فریم ورک تغییر می کند، بنابراین لازم است نسخه SDK مورد استفاده در ربات ها را در نظر گرفت.
این چارچوب چندین گزینه برای ایجاد ربات ها ارائه می دهد: استفاده از کد کلاسیک، ابزارهای خط فرمان یا فلوچارت. آخرین گزینه دیالوگ ها را به تصویر می کشد؛ برای این کار می توانید از مدیر استفاده کنید آهنگساز چارچوب ربات. این بر اساس Bot Framework SDK به عنوان یک ابزار توسعه بصری ساخته شده است که تیم های بین رشته ای می توانند از آن برای ایجاد ربات استفاده کنند.
Bot Framework Composer به شما امکان می دهد از بلوک ها برای ایجاد یک ساختار گفتگو استفاده کنید که ربات با آن کار می کند. علاوه بر این، می توانید محرک هایی ایجاد کنید، یعنی کلمات کلیدی که ربات در طول گفتگو به آنها واکنش نشان می دهد. به عنوان مثال، کلمات "اپراتور"، "سرقت" یا "توقف" و "به اندازه کافی".
در Bot Framework Composer، می توانید با استفاده از سیستم های گفتگوی پیچیده ایجاد کنید دیالوگ های تطبیقی. دیالوگ ها می توانند هم از خدمات شناختی و هم از کارت های رویداد (کارت های تطبیقی) استفاده کنند:
پس از ایجاد، می توانید چت بات را در یک اشتراک مستقر کنید، و یک اسکریپت آماده شده به طور خودکار تمام منابع لازم را ایجاد می کند: خدمات شناختی، برنامه کاربردی، بینش برنامه، پایگاه داده و غیره.
سازنده QnA
برای ایجاد ربات های ساده بر اساس پایگاه های داده پرسش و پاسخ شرکت، می توانید از سرویس شناختی QnA Maker استفاده کنید. به عنوان یک جادوگر وب ساده پیاده سازی شده است، به شما امکان می دهد پیوندی را به یک پایگاه دانش شرکتی (آدرس پرسش و پاسخ) وارد کنید یا از یک پایگاه داده سند در قالب *.doc یا *.pdf به عنوان پایه استفاده کنید. پس از ایجاد ایندکس، ربات به طور خودکار مناسب ترین پاسخ ها را برای سوالات کاربر انتخاب می کند.
با استفاده از QnAMaker، میتوانید زنجیرهای از سوالات شفافسازی را با ایجاد خودکار دکمهها ایجاد کنید، پایگاه دانش را با ابرداده تکمیل کنید و در حین استفاده، سرویس را آموزش دهید.
این سرویس می تواند به عنوان یک ربات چت که تنها این یک عملکرد را پیاده سازی می کند، یا به عنوان بخشی از یک ربات گفتگوی پیچیده که بسته به درخواست، از سایر سرویس های هوش مصنوعی یا عناصر چارچوب ربات استفاده می کند، استفاده شود.
کار با سایر خدمات شناختی
بسیاری از خدمات شناختی مختلف در پلتفرم Azure وجود دارد. از نظر فنی، اینها خدمات وب مستقلی هستند که می توانند از طریق کد فراخوانی شوند. در پاسخ، سرویس json با فرمت خاصی را ارسال می کند که می تواند در ربات چت استفاده شود.
رایج ترین کاربردهای چت بات ها عبارتند از:
تشخیص متن
شناسایی دستههای تصویر Custom Vision Service تعریفشده توسط توسعهدهنده (مورد تولید: تشخیص اینکه آیا یک کارمند کلاه سخت، عینک یا ماسک به چشم دارد).
تشخیص چهره (یک مورد استفاده عالی این است که بررسی کنید آیا شخص مورد بررسی صورت خود را پست کرده است یا مثلاً یک عکس از یک سگ یا یک عکس از یک فرد با جنسیت متفاوت).
تشخیص گفتار.
تجزیه و تحلیل تصویر
ترجمه (همه ما به یاد داریم که ترجمه همزمان در اسکایپ چقدر سر و صدا ایجاد کرد).
بررسی املا و پیشنهاداتی برای تصحیح خطاها.
لوئیس
همچنین، برای ایجاد ربات ممکن است نیاز داشته باشید لوئیس (سرویس هوشمند درک زبان). اهداف خدمات:
تعیین کنید که آیا اظهارات کاربر منطقی است و آیا پاسخ ربات ضروری است یا خیر.
تلاش برای رونویسی گفتار کاربر (متن) به دستورات قابل فهم برای ربات را کاهش دهید.
اهداف / مقاصد واقعی کاربر را پیش بینی کنید و بینش های کلیدی را از عبارات در گفتگو استخراج کنید.
به توسعهدهنده اجازه دهید تا ربات را با استفاده از چند نمونه از تشخیص معنا و آموزشهای اضافی بعدی ربات در حین کار راهاندازی کند.
برنامهنویس را فعال کنید تا از تجسم برای ارزیابی کیفیت رونویسی دستور استفاده کند.
به بهبودهای تدریجی در تشخیص واقعی هدف کمک کنید.
در واقع هدف اصلی LUIS این است که با احتمال مشخصی منظور کاربر را بفهمد و یک درخواست طبیعی را به یک دستور هماهنگ تبدیل کند. برای تشخیص مقادیر پرس و جو، LUIS از مجموعهای از مقاصد (معنا، مقاصد) و موجودیتها (که توسط توسعهدهندگان از قبل پیکربندی شدهاند، یا «دامنههای» گرفتهشده و از پیش تشکیلشده - برخی از کتابخانههای آماده عبارات استاندارد که توسط مایکروسافت تهیه شدهاند) استفاده میکند.
یک مثال ساده: شما یک ربات دارید که به شما پیش بینی آب و هوا می دهد. برای او، هدف ترجمه یک درخواست طبیعی به یک "عمل" خواهد بود - یک درخواست برای پیش بینی آب و هوا، و موجودیت ها زمان و مکان خواهند بود. در اینجا نموداری از نحوه عملکرد Intent CheckWeather برای چنین رباتی ارائه شده است.
قصد
اساسی
نمونه ای از یک پرس و جو طبیعی
بررسی آب و هوا
{"type": "location"، "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
هوای فردا در مسکو چگونه خواهد بود؟
بررسی آب و هوا
{ "type": "date_range", "entity": "این آخر هفته" }
پیش بینی آخر هفته را به من نشان دهید
برای ترکیب QnA Maker و LUIS می توانید استفاده کنید توزیع کننده.
هنگامی که با QnA Maker کار می کنید و درخواستی از یک کاربر دریافت می کنید، سیستم تعیین می کند که چه درصدی از احتمال پاسخ QnA با درخواست مطابقت دارد. اگر احتمال زیاد باشد، به سادگی از پایگاه دانش شرکت به کاربر پاسخ داده میشود؛ اگر کم باشد، میتوان درخواست را برای شفافسازی به LUIS ارسال کرد. استفاده از Dispatcher به شما این امکان را می دهد که این منطق را برنامه ریزی نکنید، بلکه به طور خودکار این لبه جداسازی درخواست ها را تعیین کنید و به سرعت آنها را توزیع کنید.
تست و انتشار ربات
یک برنامه محلی دیگر برای آزمایش استفاده می شود، شبیه ساز چارچوب ربات. با استفاده از شبیه ساز می توانید با ربات ارتباط برقرار کنید و پیام هایی را که ارسال و دریافت می کند بررسی کنید. شبیه ساز پیام ها را همانطور که در رابط چت وب ظاهر می شود نمایش می دهد و هنگام ارسال پیام به ربات، درخواست ها و پاسخ های JSON را ثبت می کند.
نمونه ای از استفاده از شبیه ساز در این دمو ارائه شده است که ساخت دستیار مجازی برای BMW را نشان می دهد. این ویدیو همچنین در مورد شتاب دهنده های جدید برای ایجاد چت بات ها - قالب ها صحبت می کند:
شما همچنین می توانید هنگام ایجاد چت ربات خود از قالب ها استفاده کنید.
الگوها به شما این امکان را می دهند که توابع استاندارد ربات را دوباره ننویسید، بلکه کدهای آماده را به عنوان یک "مهارت" اضافه کنید. یک مثال می تواند کار با یک تقویم، قرار ملاقات و غیره باشد. کد مهارت های آماده منتشر شد در github.
آزمایش موفقیت آمیز بود، ربات آماده است و اکنون باید منتشر شود و کانال ها متصل شوند. انتشار با استفاده از Azure انجام می شود و می توان از پیام رسان ها یا شبکه های اجتماعی به عنوان کانال استفاده کرد. اگر کانال مورد نیاز برای وارد کردن داده ها را ندارید، می توانید آن را در انجمن مربوطه در GitHab جستجو کنید.
همچنین، برای ایجاد یک چت بات کامل به عنوان رابطی برای ارتباط با کاربر و خدمات شناختی، البته به خدمات اضافی Azure مانند پایگاه داده، بدون سرور (توابع Azure) و همچنین خدمات LogicApp و احتمالاً نیاز خواهید داشت. ، شبکه رویداد.
ارزیابی و تحلیل
برای ارزیابی تعامل کاربر، می توانید هم از تجزیه و تحلیل داخلی سرویس ربات Azure و هم از سرویس ویژه Application Insights استفاده کنید.
در نتیجه، می توانید اطلاعات را بر اساس معیارهای زیر جمع آوری کنید:
تعداد کاربرانی که در طول مدت زمان انتخاب شده از کانال های مختلف به ربات دسترسی داشته اند.
چه تعداد از کاربرانی که یک پیام ارسال کرده اند، بعداً برگشتند و پیام دیگری ارسال کردند.
تعداد اقدامات ارسال و دریافت شده با استفاده از هر کانال در بازه زمانی مشخص شده.
با استفاده از Application Insights، میتوانید هر برنامهای را در Azure و بهویژه رباتهای چت را زیر نظر بگیرید و اطلاعات بیشتری درباره رفتار کاربر، بارگذاریها و واکنشهای رباتهای چت به دست آورید. لازم به ذکر است که سرویس Application Insights رابط مخصوص به خود را در پورتال Azure دارد.
همچنین می توانید از داده های جمع آوری شده از طریق این سرویس برای ایجاد تصاویر و گزارش های تحلیلی اضافی در PowerBI استفاده کنید. نمونه ای از چنین گزارش و قالبی برای PowerBI می توان گرفت اینجا.
با تشکر از همه شما برای توجه شما! در این مقاله استفاده کردیم ماده از وبینار معمار Microsoft Azure Anna Fenyushina "وقتی مردم وقت ندارند. چگونه 100% از چت بات ها و خدمات شناختی برای خودکارسازی فرآیندهای معمول استفاده کنیم، جایی که ما به وضوح نشان دادیم که چت بات ها در Azure چه هستند و چه سناریوهایی برای استفاده از آنها وجود دارد، و همچنین نشان دادیم که چگونه یک ربات در QnA Maker در 15 دقیقه ایجاد کنیم و چگونه ساختار پرس و جو در LUIS رمزگشایی می شود.
ما این وبینار را به عنوان بخشی از ماراتن آنلاین برای توسعه دهندگان Dev Bootcamp ساختیم. این در مورد محصولاتی بود که با استفاده از ابزارهای اتوماسیون و ماژول های Azure از پیش پیکربندی شده، سرعت توسعه را افزایش داده و مقداری از بار کاری معمول را از کارمندان شرکت کم می کند. ضبط سایر وبینارهای موجود در ماراتن در لینک های زیر موجود است:
سازماندهی CI/CD با استفاده از خطوط لوله Azure
ما نحوه پیادهسازی رویکرد اسمبلی بهعنوان کد را برای هر زبان برنامهنویسی با استفاده از خطوط لوله چند مرحلهای YAML در نظر میگیریم. مجری: ولادیمیر گوساروف MVP مایکروسافت.
وایت سورس نظارت بر کتابخانه های منبع باز امن
ما تکنیک های مدیریت منبع باز را در توسعه و کاربرد عملی ابزار WhiteSource معرفی می کنیم. ما در مورد جستجوی آسیبپذیریها در مؤلفههای منبع باز و حفظ خلوص مجوز با استفاده از WhiteSource صحبت میکنیم. ارائه دهندگان: دیانا لیسبارون، مدیر فروش وایت سورس، و داریا اورشکینا، کنترل وب، توزیع کننده رسمی وایت سورس در روسیه.