Chat bots are a rising and exciting new way to interact with your users and engage them wherever they are. You most probably have a web site, you might have a mobile application, and if you’re really serious (or bored) you might have a desktop application as well. But do you have a chat bot? Be it in Slack, Skype, Facebook or anywhere else – your users are already there, so why not allow them to interact with your service directly from there in a human, natural way?
In this session you’ll get to know the Microsoft Bot Framework and the Azure Bot Service, as we use them to build a real live bot bartender on stage and tackle all of the development issues one by one. So do you have a bot yet? Now is a great time!
More info at https://stiller.blog/portfolio/bot-tender-a-chat-bot-walks-into-a-bar-2020/
Moving to Dojo 1.7 and the path to 2.0James Thomas
With the upcoming 1.7 release, The Dojo Toolkit is beginning to introduce major structural and architectural changes in the toolkit, setting the path for their new major 2.0 release due in 2012.
These fundamental changes to the architecture and technologies underpinning the toolkit will dramatically change how we write Dojo applications in the future, bringing with it huge benefits in performance, cross-library compatibility and support for mobile platforms.
In this presentation, I'll be walking through these changes, explaining the benefits and how it'll impact developers. I'll also be providing migration tips to help you start taking advantage of these benefits in your application today, based upon my experience using Dojo 1.7 on the Watson project.
This talk will be technical in nature, aiming at developers and team leads who are using the toolkit in their products or on client engagements.
An overview of the practical and useful Dojo Toolkit for the Fairfield County JavaScript Meetup, Sept. 26 2012. A shout to Chris Barber and his excellent presentation which served as inspiration.
Moving to Dojo 1.7 and the path to 2.0James Thomas
With the upcoming 1.7 release, The Dojo Toolkit is beginning to introduce major structural and architectural changes in the toolkit, setting the path for their new major 2.0 release due in 2012.
These fundamental changes to the architecture and technologies underpinning the toolkit will dramatically change how we write Dojo applications in the future, bringing with it huge benefits in performance, cross-library compatibility and support for mobile platforms.
In this presentation, I'll be walking through these changes, explaining the benefits and how it'll impact developers. I'll also be providing migration tips to help you start taking advantage of these benefits in your application today, based upon my experience using Dojo 1.7 on the Watson project.
This talk will be technical in nature, aiming at developers and team leads who are using the toolkit in their products or on client engagements.
An overview of the practical and useful Dojo Toolkit for the Fairfield County JavaScript Meetup, Sept. 26 2012. A shout to Chris Barber and his excellent presentation which served as inspiration.
Bot-Tender: A Chat Bot Walks into a Bar - TechBash 2017Eran Stiller
The slide deck for my session at TechBash 2017 on "Bot-Tender: A Chat Bot Walks into a Bar".
Sample code can be found at https://github.com/estiller/beer-bot
An introduction to Microsoft Bot FrameworkTaswar Bhatti
Talk given in #Ottawa Meetup Group https://www.meetup.com/ottawaitcommunity/events/235920172/
Want to learn what bots and Microsoft Bot Framework can offer? The Microsoft Bot Framework provides just what you need to build and connect intelligent bots that interact naturally wherever your users are talking, from text/sms to Skype, Slack, Office 365 mail and other popular services.In this session we will go over building a Bot using the SDK and Bot Connector
Predavanje How to Build a Serverless Chatbot for $0? koje je Slobodan Stojanović iz kompanije CloudHorizon održao 6. februara 2017. godine na 14. Mobile Monday Srbija događaju.
#OSSPARIS19 - Création facile de chatbots - Créez votre chatbot en 20 minutes...Paris Open Source Summit
#IA Track - Technologie et outils
Vous avez toujours voulu créer un chatbot, mais vous vous êtes senti impuissant devant le nombre d'options s'offrant à vous, beaucoup d'entre elles propriétaires et fortement couplées à des plateformes spécifiques.
Nous allons vous faciliter la tâche et vous montrer comment, en moins de 20 minutes, vous pourrez comprendre les concepts clés qui régissent les technologies de développement d'agents conversationnels et créer votre propre chatbot déployable sur diverses plateformes.
Nous ne nous contenterons pas de créer un chatbot qui ne fait que parler, mais aussi qui écoute, réagit, effectue des actions complexes, et vous alerte lorsqu'un événement se produit.
Pour cela, nous utilisons Xatkit, une plateforme de développement low-code et Open Source permettant de créer des agents conversationnels riches avec un minimum d'effort.
Bot. You said bot? Let build bot then! - Laurent EllerbachITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
Build intelligent chatbot with bot frameworkPuja Pramudya
A Chatbot 101 Explanation from developer perspective.
We explain about human nature of communication bring chatbot into the play, what to expect and how to build chatbot using ASPNET, Azure Bot Service and App Service.
Bots represent a new channel for businesses to expose their products & services via messaging platforms. In this session we will explore how Azure Bot Framework, Azure Cognitive Services can be integrated with Dynamics 365 for Customer Engagement and Customer Service
Architecting at Scale with the Advice ProcessEran Stiller
Software architecture is an essential aspect of the software development lifecycle. But how do you run your architecture process? How do you make architectural decisions at scale with hundreds of developers on board? Enter the Advice Process.
The Advice Process empowers anyone to make architectural decisions, even those without the "Architect" title. Say goodbye to strict hierarchies and hello to a more collaborative approach. But how do you make it work in practice? How do you set your organization up for success?
Join us in this session, where Eran will walk you through the ins and outs of the Advice Process, including how he implemented it successfully and the lessons learned along the way.
As companies attempt to implement Digital Transformation, they need to modernize their in-house software systems and build new ones. This modernization process often includes transitioning the software to the public cloud, using modern technologies, implementing a SaaS system, changing the system's architecture (Microservices anyone?), and delivering a new user experience (UX) to customers. However, we rarely get the opportunity to rebuild our systems from scratch. The customers are still there, the business is still running, and stakeholders still want everything to operate at the same operational level as it was until now.
So how can we do it? Can we have our cake and eat it too? There is no silver bullet, and trade-offs comprise our every choice. The trick is knowing which questions to ask and how to choose our strategy.
Join us in this session as we review the technical methods we have to modernize our software systems. We'll review the questions we should ask ourselves and the strategies that we can employ. Starting from lift & shift through containerization to cloud-native apps - we'll take you on a journey that's relevant for any modern software's stakeholder.
More Related Content
Similar to Bot-Tender: A Chat Bot Walks into a Bar (2020)
Bot-Tender: A Chat Bot Walks into a Bar - TechBash 2017Eran Stiller
The slide deck for my session at TechBash 2017 on "Bot-Tender: A Chat Bot Walks into a Bar".
Sample code can be found at https://github.com/estiller/beer-bot
An introduction to Microsoft Bot FrameworkTaswar Bhatti
Talk given in #Ottawa Meetup Group https://www.meetup.com/ottawaitcommunity/events/235920172/
Want to learn what bots and Microsoft Bot Framework can offer? The Microsoft Bot Framework provides just what you need to build and connect intelligent bots that interact naturally wherever your users are talking, from text/sms to Skype, Slack, Office 365 mail and other popular services.In this session we will go over building a Bot using the SDK and Bot Connector
Predavanje How to Build a Serverless Chatbot for $0? koje je Slobodan Stojanović iz kompanije CloudHorizon održao 6. februara 2017. godine na 14. Mobile Monday Srbija događaju.
#OSSPARIS19 - Création facile de chatbots - Créez votre chatbot en 20 minutes...Paris Open Source Summit
#IA Track - Technologie et outils
Vous avez toujours voulu créer un chatbot, mais vous vous êtes senti impuissant devant le nombre d'options s'offrant à vous, beaucoup d'entre elles propriétaires et fortement couplées à des plateformes spécifiques.
Nous allons vous faciliter la tâche et vous montrer comment, en moins de 20 minutes, vous pourrez comprendre les concepts clés qui régissent les technologies de développement d'agents conversationnels et créer votre propre chatbot déployable sur diverses plateformes.
Nous ne nous contenterons pas de créer un chatbot qui ne fait que parler, mais aussi qui écoute, réagit, effectue des actions complexes, et vous alerte lorsqu'un événement se produit.
Pour cela, nous utilisons Xatkit, une plateforme de développement low-code et Open Source permettant de créer des agents conversationnels riches avec un minimum d'effort.
Bot. You said bot? Let build bot then! - Laurent EllerbachITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp
Bot is a new fashion word. This session will explain you what’s a bot, what’s not a bot, how to build a bot using the Microsoft Bot Framework, how to include language recognition using LUIS.ai. The session will be illustrated by a real bot built to connect various information from my own house, garden, wine cellar and health as well as a real production Lego bot!
Build intelligent chatbot with bot frameworkPuja Pramudya
A Chatbot 101 Explanation from developer perspective.
We explain about human nature of communication bring chatbot into the play, what to expect and how to build chatbot using ASPNET, Azure Bot Service and App Service.
Bots represent a new channel for businesses to expose their products & services via messaging platforms. In this session we will explore how Azure Bot Framework, Azure Cognitive Services can be integrated with Dynamics 365 for Customer Engagement and Customer Service
Architecting at Scale with the Advice ProcessEran Stiller
Software architecture is an essential aspect of the software development lifecycle. But how do you run your architecture process? How do you make architectural decisions at scale with hundreds of developers on board? Enter the Advice Process.
The Advice Process empowers anyone to make architectural decisions, even those without the "Architect" title. Say goodbye to strict hierarchies and hello to a more collaborative approach. But how do you make it work in practice? How do you set your organization up for success?
Join us in this session, where Eran will walk you through the ins and outs of the Advice Process, including how he implemented it successfully and the lessons learned along the way.
As companies attempt to implement Digital Transformation, they need to modernize their in-house software systems and build new ones. This modernization process often includes transitioning the software to the public cloud, using modern technologies, implementing a SaaS system, changing the system's architecture (Microservices anyone?), and delivering a new user experience (UX) to customers. However, we rarely get the opportunity to rebuild our systems from scratch. The customers are still there, the business is still running, and stakeholders still want everything to operate at the same operational level as it was until now.
So how can we do it? Can we have our cake and eat it too? There is no silver bullet, and trade-offs comprise our every choice. The trick is knowing which questions to ask and how to choose our strategy.
Join us in this session as we review the technical methods we have to modernize our software systems. We'll review the questions we should ask ourselves and the strategies that we can employ. Starting from lift & shift through containerization to cloud-native apps - we'll take you on a journey that's relevant for any modern software's stakeholder.
Developing and Deploying Microservices with Project TyeEran Stiller
Everyone's talking about Microservices. Everyone's considering doing Microservices. Everyone's starting to use Microservices. And then everyone discovers how hard it is to develop Microservices on your local machine.
Join me as we discover project "Tye," which simplifies Microservices development and flattens the learning curve of getting your services into production up and running.
See more at https://stiller.blog/portfolio/developing-and-deploying-microservices-with-tye/
API Design in the Modern Era - Architecture Next 2020Eran Stiller
APIs are at the heart of the modern software development world. Whether we author a distributed system, a microservices-based application, or a simple client-server n-tier application - our system will most probably expose an API at its core. APIs are a means to expose the functionality of a particular component to its users. Unsurprisingly, many formats for APIs have existed over the years, with the industry setting around RESTful APIs as the de-facto standard, with gRPC growing in popularity.
Join me in this session, as I review today's most popular API formats and their relative strengths and weaknesses. From REST, through OpenAPI, via gRPC and to the rising star of AsyncAPI - we'll explain how these API formats work and the tools they employ and offer some guidance as towards when we should use each. At the end of this session, you'll have a good familiarity with these formats, and you'll be in a much better position to choose between them.
Why Don’t You Understand Me? Build Intelligence into Your AppsEran Stiller
Artificial Intelligence is not something exotic anymore. We want to interact with our apps in the most natural way, and we want our apps to act intelligently - personalize our experience, predict what we want to do next, or remove some of the heavy lifting we do on our daily lives. Traditionally, this required building sophisticated AI models, but today - everyone can do it! In this session we'll see how we can add vision, language and speech into our applications using Azure Cognitive Services, making them smarter than ever before. Stand out from the crowd - bring intelligence into your apps!
Modern Microservices Architecture with DockerEran Stiller
Microservices are all the rage these days. Docker is a tool which makes managing Microservices a whole lot easier. But what do Microservices really mean? What are the best practices of composing your application with Microservices? How can you leverage Docker and the public cloud to help you build a more agile DevOps process? How does the Azure Container Service fit in? Join us to find out the answer.
Windows Containers - Microsoft Ignite The TourEran Stiller
Docker containers are all the rage nowadays. But what about all of us Windows developers? In this session I'll show you what are Windows Containers and how to use them to easily package and deploy your Windows applications, services and IIS apps using standard and familiar Docker tools.
Architecting Multitenant SaaS Applications with Azure - Microsoft Ignite The ...Eran Stiller
Multitenancy is a software architecture pattern in which a single instance of software serves multiple groups of users (known as tenants or organizations). Many modern SaaS applications use this pattern to serve their customers with maximum efficiency while maintaining operational costs low. But how do you build a multitenant application right? How do you secure one tenant's information from another tenant's users? How do you keep operational costs low? How do you monitor and manage this stuff?
In this session you will gain architecture practices for architecting multitenant SaaS applications, learnt from migrating real applications to the cloud so that you won't have to learn them the hard way, with implementation tips and tricks on Azure.
Bot Framework - Microsoft Ignite The TourEran Stiller
Chat bots are a rising and exciting new way to interact with your users and engage them wherever they are. You most probably have a web site and you might have a mobile application. But do you have a chat bot? Be it in Slack, Skype, Facebook or anywhere else - your users are already there, so why not allow them to interact with your service directly from there in a human, natural way?
In this session you'll get to know the Microsoft Bot Framework and the Azure Bot Service, as we use them to build a real live bot bartender on stage and tackle all of the development issues one by one.
Serverless platforms are not new anymore; even Serverless Compute has been around for a while, with popular implementations such as AWS Lambda, Azure Functions and Google Cloud Functions. However, Functions-as-a-Service (FaaS) platforms are just the tip of the iceberg, as new cutting edge Serverless abstractions such as Containers-as-a-Services (CaaS) and Serverless Application Platforms come into play.
In this session we'll discuss multiple modern Serverless platform abstractions, along with demonstrations from the all major public cloud vendors - AWS, Azure & GCP.
Keynote - From Monolith to Microservices - Lessons Learned in the Real WorldEran Stiller
The keynote session from Architecture Next 2019 (https://www.eventbrite.com/e/architecture-next-2019-tickets-59285850575#). A Joint session with Alon Fliess.
Architecting a Serverless IoT System in the CloudEran Stiller
The Internet of Things is the interconnect of devices and cloud. As the proliferation of connected devices expands to
multiple industries, more and more hardware companies are discovering that they are now software companies as
well. Building a cloud based software system is not easy, and IoT system are no different. However, various cloud
platform services exist out there which make developing such systems much easier, allowing customers to focus on
their own unique business logic.
Join me in this session, as I demonstrate the architecture of a real-world IoT Azure based system which utilizes
various PaaS services in a completely Serverless manner. We'll show how the usage of IoT Hub, Azure Functions,
Azure Stream Analytics and other PaaS services enable us to architect and implement an IoT system rapidly and at a
low cost.
6 Lessons I Learned on my Journey from Monolith to MicroservicesEran Stiller
Microservices is all the rage. We want to use Microservices, we want to decompose into Microservices and we want Microservices to be a part of our world. While modern tools and platforms such as Docker, Kubernetes, Service Mesh and the public cloud help in implementing and maintaining such systems, the reality is that many fail even before the first line of code was written.
Join me as I provide my perspective on transitioning from Monolith to Microservices through lessons learned in the real world, while architecting multiple Microservices based software systems at various customers.
Create Your Own Serverless PKI with .NET & Azure Key VaultEran Stiller
A Public Key Infrastructure (PKI) is the basis of modern system authentication; X.509 certificates are at the core of modern cryptography. Building your own PKI is not for the faint of heart, so we usually buy our certificates from an external Certificate Authority or operate a 3rd-party off-the-shelf PKI.
But what can you do if you need to issue your own certificates while keeping your costs low? What if, for example, you're in the business of manufacturing millions of IoT devices and you need to issue a certificate to each and every one of them? And to top it off - you want to do it in a Serverless manner?
Join me in this session, as we build a Serverless PKI system with Azure Functions & Key-Vault and learn all about Key-Vault's capabilities in regards to X.509 certificates along the way.
An overview introduction to some Azure PaaS services including Azure App Service, Azure Queues & Azure Functions. This session was delivered at TLV Cloud Week 2019.
Sample code is available at https://github.com/estiller/eShopOnWeb
A slide deck from my inspirational talk on why it is important to get into learning cloud computing, and how did I get involved personally.
https://stiller.blog/2019/07/boost-your-career-with-cloud-computing/
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
1. Bot-Tender:
A Chat Bot Walks into a Bar
Eran Stiller
Chief Technology Officer, CodeValue
erans@codevalue.net
@eranstiller
https://stiller.blog
https://codevalue.net
5. Agenda
6
▪ Azure Bot Service
▪ Bot Builder SDK
▪ Activities
▪ Conversations
▪ Dialogs & Prompts
▪ State
▪ Microsoft Cognitive Services
▪ Image Search
▪ Language Understanding (LUIS)
▪ Deployment & Channel Integration
6. About Eran
Eran Stiller
▪ @eranstiller
▪ CTO & Founder at CodeValue
▪ Software architect, consultant and instructor
▪ Microsoft Regional Director & Azure MVP
▪ Founder of Azure Israel Meetup
7
7. About CodeValue
▪ Awesome software company!
▪ Technology experts
▪ High quality software development solutions
Cloud Computing
Advanced Mobile
Technologies
UI/UX & Graphic
Design
Cross Platform
Development
Advanced Web
Technologies
ALM & DevOps Software Architecture
IOT & Embedded
Software
Training & Mentoring
Development
Management &
Methodology
8
8. Introduction to Chat Bots
9
▪ Natural Language User Interface (NLUI)
▪ Another form of User Experience (UX)
▪ Various platforms
▪ Web
▪ Mobile
▪ Social Networks
▪ Messaging Apps
▪ Personal Assistants
▪ Text and/or Speech
9. Introducing Beer Bot
10
▪ Your friendly bartender bot
▪ Or Bot-Tender
▪ Beer-Bot can:
▪ Give you a random beer
▪ Recommend a beer
▪ Order you a beer with a chaser and side dish
11. Beer Bot – Simplified Conversation View
13
Main Menu
Recommend
Beer
By
Category
By Origin
By
Name
Order Beer Help
Beer Chaser Side Dish
Entrance
Random Beer
13. Azure Bot Service
Bot web service
Your bot code
Entity
Extraction
Speech
Vision/Face
Natural
Language
Translation
+ Microsoft Cognitive Services
Search
Emotion
Knowledge
API
…
Message input <> output
Bot Service
Conversation Canvas/Channels
………
Other services, APIs,
Databases, Azure Machine
Learning, Azure Search,
etc…
Bot Builder SDK
Web Chat
Direct Line…
Email
Facebook
GroupMe
Kik
Skype
Slack
Telegram
Twilio (SMS)
Bot Builder SDK
Your bot code goes here
15
14. Building Bots
▪ The hard way – DIY
▪ Implement a REST API
▪ The easier way – Bot Builder SDK
▪ C#
▪ JavaScript / TypeScript
▪ Python
▪ Java (preview)
16
16. Basic Concepts
▪ Activities
▪ Communication events exchanged between users and your bot
▪ Message activities contain actual messages
▪ Conversations
▪ A logical thread/session
▪ Can contain more than one user
▪ Channels
▪ A bot integration, where the user interacts with the bot
▪ Users
▪ A specific, identified user
18
17. Implementing Bots
19
[Route("api/messages")]
[ApiController]
public class BotController : ControllerBase
{
private readonly IBotFrameworkHttpAdapter _adapter;
private readonly IBot _bot;
public BotController(IBotFrameworkHttpAdapter adapter, IBot bot)
{
_adapter = adapter;
_bot = bot;
}
[HttpPost, HttpGet]
public async Task PostAsync(CancellationToken cancellationToken)
{
// Delegate the processing of the HTTP POST to the adapter.
// The adapter will invoke the bot.
await _adapter.ProcessAsync(Request, Response, _bot, cancellationToken);
}
}
22. Dialogs
▪ Dialogs are for bots like screens are for apps
▪ Dialogs are serialized into a stack
▪ The dialog state is stored as part of the conversation state
24
Main
Recommend
Beer
Order Beer
23. Prompts
▪ Prompts are abstraction for easily acquiring user input
▪ AttachmentPrompt
▪ ChoicePrompt
▪ ConfirmPrompt
▪ DateTimePrompt
▪ NumberPrompt
▪ TextPrompt
▪ All prompts inherit Prompt<T>
▪ Which is a dialog
▪ You can write your own
25
24. Implementing Dialogs
26
public class MainDialog : ComponentDialog
{
public MainDialog() : base(nameof(MainDialog))
{
AddDialog(new TextPrompt(nameof(TextPrompt)));
AddDialog(new ChoicePrompt(nameof(ChoicePrompt)));
AddDialog(new WaterfallDialog(nameof(MainDialog), new WaterfallStep[]
{
IntroStepAsync,
ShowMenuAsync,
ActStepAsync,
FinalStepAsync,
}));
InitialDialogId = nameof(MainDialog);
}
private Task<DialogTurnResult> IntroStepAsync(WaterfallStepContext stepContext,
CancellationToken cancellationToken)
{
25. 27
AddDialog(new WaterfallDialog(nameof(MainDialog), new WaterfallStep[]
{
IntroStepAsync,
ShowMenuAsync,
ActStepAsync,
FinalStepAsync,
}));
InitialDialogId = nameof(MainDialog);
}
private Task<DialogTurnResult> IntroStepAsync(WaterfallStepContext stepContext,
CancellationToken cancellationToken)
{
var message = stepContext.Options?.ToString() ??
"Welcome to your friendly neighborhood bot-tender! How can I help?";
var promptMessage = MessageFactory.Text(message, message, InputHints.ExpectingInput);
return stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = promptMessage },
cancellationToken);
}
// ...
}
26. Bot State
▪ State can be managed at multiple levels
▪ Conversation State
▪ Including Dialog State
▪ User State
▪ State is persisted by a state storage service
▪ Some are provided out-of-the-box
▪ In-memory, file, Azure Blobs, Cosmos DB
▪ Can write your own
▪ State can be used to direct conversation flow
28
28. Composing Dialogs
▪ For a complex scenario, the need for dialog modularity arises
▪ Placing all dialogs in a single Dialog is not recommended
▪ “Dialog Monolith”
▪ Hard to maintain, not reusable
▪ Component Dialogs are the solution
▪ Group related dialogs into components, isolating them from unrelated dialogs
30
34. Rich Cards
36
Card Type Description
Adaptive Card A customizable card that can contain any combination of text, speech, images, buttons,
and input fields.
Animation Card A card that can play animated GIFs or short videos.
Audio Card A card that can play an audio file.
Hero Card A card that typically contains a single large image, one or more buttons, and text.
Thumbnail Card A card that typically contains a single thumbnail image, one or more buttons, and text.
Receipt Card A card that enables a bot to provide a receipt to the user.
Sign-In Card A card that enables a bot to request that a user sign-in.
Video Card A card that can play videos.
▪ Sometimes text is not enough
▪ Can create media rich “cards”
41. Sending a Notification Ad-Hoc
44
var typingActivity = Activity.CreateTypingActivity();
await turnContext.SendActivityAsync(typingActivity, cancellationToken);
await Task.Delay(1500, cancellationToken); // Make it look like we're typing a lot
42. Sending a Notification Automatically
45
internal class BeerBotHttpAdapter : BotFrameworkHttpAdapter
{
public BeerBotHttpAdapter(IConfiguration configuration, ILogger<BotFrameworkHttpAdapter> logger)
: base(configuration, logger)
{
// ...
Use(new ShowTypingMiddleware(delay: 500, period: 2000)); // These are default values
}
}
56. Speech
▪ All operations have a form which accepts a “speak” parameter
59
(stepContext, cancellationToken) => stepContext.PromptAsync(Inputs.Choice, new PromptOptions
{
Prompt = MessageFactory.Text(
"How would you like me to recommend your beer?",
"How would you like me to recommend your beer? By category, by origin, or by name?",
InputHints.ExpectingInput),
RetryPrompt = MessageFactory.Text(
"Not sure I got it. Could you try again?",
"Not sure I got it. By category, by origin, or by name?",
InputHints.ExpectingInput),
Choices = RecommendationMenu.Choices,
}),
57. SSML
▪ Speech Synthesis Markup Language
60
The rental car you reserved <break strength="medium" /> a mid-size sedan
<break strength="medium" /> will be ready for you to pick up at <break
time="500ms" /> <say-as interpret-as="hms12"> 4:00pm </say-as> today.
For English, press 1.
<voice xml:lang="fr-FR" gender="female"> Pour le français, appuyez sur 2 </voice>
<prosody volume="x-loud"> This is extra loud volume. </prosody>
<audio src=“http://somewhere.com/mymusic.mp3"> Here's today's weather forecast. </audio>
https://msdn.microsoft.com/en-us/library/jj127898.aspx
59. Takeaways
62
▪ Chat bots are another form of UX
▪ Azure Bot Service makes it easier to write your bot
▪ Standard connection to various channels
▪ Focus on your own business logic
▪ Bot Builder SDK is the preferred way for authoring your bot to work with the
Bot Service
▪ LUIS allows easily adding NLP to your bot
▪ Adding speech enhances your bot on supported channels