Year: 2021

  • HELP!!!

    Can someone help me to find a chatbot that has failed but is still present to test?? (for research purposes)

    submitted by /u/OutrageousSession327
    [link] [comments]

  • personality forge webpage problem again

    personality forge webpage is blank for me.

    is it blank for anyone else?

    submitted by /u/loopy_fun
    [link] [comments]

  • NLP based Chatbot in PyTorch. Bonus Flask and JavaScript deployment

    Among the various ways you can improve customer satisfaction, chatbots are a powerful solution to help the customer base. Chatbots are affordable, help scale your business, fully customizable, help your customers find the right products/services, and help build trust for your business. To prove this I’ll go through following content:

    1. What is a machine learning chatbot?
    2. Why chatbots are important in different business spheres?
    3. Build you own NLP based chatbot using PyTorch.
    4. Deploy chatbot in Javascript and Flask.

    What is a machine learning chatbot?

    A chatbot (Conversational AI) is an automated program that simulates human conversation through text messages, voice chats, or both. It learns to do that based on a lot of inputs, and Natural Language Processing (NLP).

    For the sake of semantics, chatbots and conversational assistants will be used interchangeably in this article, they sort of mean the same thing.

    Why chatbots are important in different business spheres?

    Business Insider reported that the global chatbot market was expected to grow from $2.6 billion in 2019 to $9.4 billion in 2024, forecasting a compound annual growth rate of 29.7%. The same report also suggested that the highest growth in chatbot implementation would be in the retail and ecommerce industries, due to the increasing demand of providing customers with seamless omnichannel experiences.

    That alone should be enough to convince you that chatbots are the way to handle customer relationships moving forward, but they will also continue to grow as internal tools for enterprise tools and nearly every industry will adopt the technology if it hasn’t already.

    Below are the key reasons why more and more businesses are adopting the chatbot strategy and how they are a win-win formula to acquire & retain customers.

    • Reduce customer waiting time — 21% of consumers see chatbots as the easiest way to contact a business. Bots are a smarter way to ensure that customers receive the immediate response that they are looking for without making them wait in a queue.
    • 24×7 availability — Bots are always available to engage customers with immediate answers to the common questions asked by them. The top potential benefit of using chatbots is 24-hour customer service.
    • Better customer engagement — Conversational bots can engage customers round the clock by starting proactive conservation and offering personalized recommendations that boost customer experience.
    • Save customer service costs — Chatbots will help businesses save more than $8 billion per year. Bots can be easily scaled which saves customer support costs of hiring more resources, infrastructure costs, etc.
    • Automate lead qualification & sales — You can automate your sales funnel with chatbots to prequalify leads and direct them to the right team for further nurturing. Being able to engage customers instantly increases the number of leads and conversion rates.

    Trending Bot Articles:

    1. How Conversational AI can Automate Customer Service

    2. Automated vs Live Chats: What will the Future of Customer Service Look Like?

    3. Chatbots As Medical Assistants In COVID-19 Pandemic

    4. Chatbot Vs. Intelligent Virtual Assistant — What’s the difference & Why Care?

    Build you own NLP based chatbot using PyTorch

    There are many platform where developers, data scientists, and machine learning engineers can create and maintain chatbots like Dialogflow and Amazon Lex. But my goal in this article to show you how to create a chatbot from scratch to help you understand concepts of Feed-Forward Networks for Natural Language Processing.

    Let’s get started!

    You can easily find a complete code in my GitHub repo.

    Here is a short plan that I want to follow to build a model.

    1. Theory + NLP concepts (Stemming, Tokenization, bag of words)
    2. Create training data
    3. PyTorch model and training
    4. Save/load model and implement the chat

    We will build chatbot for Coffee and Tea Supplier needs to handle simple questions about hours of operation, reservation options and so on.

    A chatbot framework needs a structure in which conversational intents are defined. One clean way to do this is with a JSON file, like this.

    Chatbot intents

    Each conversational intent contains:

    • a tag (a unique name)
    • patterns (sentence patterns for our neural network text classifier)
    • responses (one will be used as a response)

    So our NLP pipeline looks like this

    • Tokenize
    • Lower + stem
    • Exclude punctuation characters
    • Bag of Words

    We create a list of documents (sentences), each sentence is a list of stemmedwords and each document is associated with an intent (a class). Full code is in this file.

    Then we need to set a training data and hyperparameters.

    After all needed preprocessing steps we create a model.py file to define FeedForward Neural Network.

    Feedforward neural networks are artificial neural networks where the connections between units do not form a cycle. Feedforward neural networks were the first type of artificial neural network invented and are simpler than their counterpart, recurrent neural networks. They are called feedforward because information only travels forward in the network (no loops), first through the input nodes, then through the hidden nodes (if present), and finally through the output nodes.

    Be careful! In the end we don’t need an activation function because later we will use cross-entropy loss and it automatically apply an activation function for us.

    Why we use ReLU?

    They are simple, fast to compute, and don’t suffer from vanishing gradients, like sigmoid functions (logistic, tanh, erf, and similar). The simplicity of implementation makes them suitable for use on GPUs, which are very common today due to being optimised for matrix operations (which are also needed for 3D graphics).

    After defining a CrossEntropy Loss and Adam we implement backward and optimizer step.

    What do all these lines mean?

    We set zero_grad() to optimizer because in PyTorch, for every mini-batch during the training phase, we need to explicitly set the gradients to zero before starting to do backpropragation (i.e., updation of Weights and biases) because PyTorch accumulates the gradients on subsequent backward passes.

    Calling .backward() mutiple times accumulates the gradient (by addition) for each parameter. This is why you should call optimizer.zero_grad() after each .step() call. Note that following the first .backward call, a second call is only possible after you have performed another forward pass.

    optimizer.step is performs a parameter update based on the current gradient (stored in .grad attribute of a parameter) and the update rule.

    Finally, after running train.py script what a wonderful result we got!

    And in the last part we need to save our model. Here the way I did it easily.

    Chatbot Deployment with Flask and JavaScript

    I decided to go further and create this amazing visualization of ChatBot.

    All my HTML, CSS and JavaScript scripts you will find in my GitHub repo.

    Enjoy!

    Conclusion

    Now, as you are aware of what a chatbot is and how important bot technology is for any kinds of business. You will certainly agree that bots have drastically changed the way businesses interact with their customers.

    Chatbot technologies will become a vital part of customer engagement strategy going forward. Near to future bots will advance to enhance human capabilities and human agents to be more innovative, in handling strategic activities.

    Don’t forget to give us your 👏 !


    NLP based Chatbot in PyTorch. Bonus Flask and JavaScript deployment was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.

  • Building a simple Chatbot

    Introduction

    Have you ever wondered how techies build a chatbot? With the development of the python language, it has become simple with just a few lines of code. I’m trying to give some idea about how to build a simple chatbot using python and NLP which we come across in our daily interaction with any app/website.

    Recently, the human interaction for most kinds of initial customer support is being handled by these chatbots which reduces an enormous amount of logs or complaints coming in the day-to-day lives for any product or service that we buy. The simple and repetitive queries are very well handled and it’s good to leave these tasks to robots and focus our human energy on more efficient work that adds value to the company.

    There are two types of chatbots that we generally come across,

    1. Rule-Based Chatbot: It’s a decision tree-bots and use series of defined rules. The structures and answers are all pre-defined you are in control of the conversation.
    2. Artificial Intelligence Chatbot: It is powered by NLP(Natural Language Processing). It is more suited for complex kinds and a large number of queries.

    Some applications of Chatbots:

    Without wasting much time, let’s dive into the jupyter notebook and get our hands dirty with coding.

    1. Import Required Libraries

    Building a chatbot requires only three important libraries as follows,
    nltk — Natural Language Tool Kit for natural language processing.
    strings — To process strings in python
    random — To randomly select the words or responses

    2. Import the Corpus

    Courpus in simple terms means collection of texts(strings, words, sentences etc). It is the training data required for chatbot to learn. The corpus plays a very important role in deciding the responses. So whatever you want your chatbot to learn and respond has to put in a txt file and save it.

    The NLTK data package includes pre-trained punkt tokenizer for english language so it is preferred over other tokenizers such as tweepy, RegEx etc.

    Wordnet is a semantically-oriented dictionary of English included in NLTK library.

    Corpus is the core of our chatbot from which we proceed further to data preprocessing where we handle text case and convert all the data input to either lower or upper case to avoid misinterpretation of words.

    Trending Bot Articles:

    1. How Conversational AI can Automate Customer Service

    2. Automated vs Live Chats: What will the Future of Customer Service Look Like?

    3. Chatbots As Medical Assistants In COVID-19 Pandemic

    4. Chatbot Vs. Intelligent Virtual Assistant — What’s the difference & Why Care?

    3. Tokenization

    Tokenization is a process of converting a sentence into individual collection of words as shown below. The punkt tokenizer is used for this purpose.

    Once we separate the sentences and words using tokenizer, let’s check if it is done correctly with the following codes.

    0

    4. Text Pre-processing

    Lemmetization or Stemming is a process of finding similarity of words which are having same root(lemma) words. For example:

    5. Generating Bag Of Words (BOW)

    The process of converting words into numbers by generating vector embeddings from the tokens generated in the previous steps. For example

    Vector Embeddings

    On top of this vector embeddings, one hot encoding is applied through which all the words are converted in 0’s and 1’s which will be used as input for the ML algorithms.

    Code for lemmetization/stemming

    6. Defining the Greeting function

    7. Response Generation function

    Import two libraries that are important at this stage as follows:

    Tfidf — Term frequency(tf) is used to count the frequeny of occurance of words in the corpus & how rare is the occurance of the word is identified by inverse document frequency(idf).

    Once we have bag of words(BOW) converted into 0’s and 1’s the cosine_similarity function is used to produce normalized output so that machine can understand.

    Next, we write a function for response generation so that after we provide certain data (corpus) to it and ask some questions, we get an answer. But in case if the user asks something which the chatbot don’t understand meaning tfidf==0 then the machine should respond accordingly as mentioned in the message.

    8. Defining conversation start/end protocols

    In this section, as soon as the user greets, the chatbot will be able to respond back with the message & when the user says bye, it will quit. In between any questions related to our corpus will be responded back to the user which makes this chatbot interesting.

    9. Chatbot queries and responses

    Now, our simple chatbot is ready to respond to the user. Type in some inputs saying hi and it will respond with any of the greeting input by randomising it. When we ask any question and it will respond back to user with the related words and sentences which makes sense. Sample Chatbot interactions are shown below

    Note: Since it is a simple chatbot, it will not answer some of the direct questions like what is data science and stuffs like that.

    10. Conclusion

    This is one of the most simple chatbots you can build with very few lines of code. Of course, if you want a more sophisticated chatbot then it all depends on the scale & vastness of the corpus which we give for training & the complexity of the code which helps the chatbot to learn and respond to the user questions.

    Hope these baby steps helps my fellow friends and Data Science aspirants to dig deeper and build more complicated chatbots as per the requirement.

    Final code for this project can be found at my GitHub repository.

    Happy Learning!

    11. References

    1. https://www.nltk.org/_modules/nltk/tokenize/punkt.html
    2. https://www.esparkinfo.com/in-depth-guide-of-chatbot.html
    3. https://en.wikipedia.org/wiki/Data_science
    4. https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html
    5. https://www.greatlearning.in/academy/courses/261323/52827#?utm_source=share_with_friends

    Don’t forget to give us your 👏 !


    Building a simple Chatbot was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.

  • How to retain customers on your Shopify store

    Why should you focus on increasing your customer retention?

    Most companies focus more on acquisition than on retention. For a lot of them, that’s a mistake. Unless you’re just starting out, you should focus on retaining existing customers.

    Various studies have shown that retaining customers could be anywhere from 5 to 25 times cheaper than acquiring new customers. To make this sweeter, customer retention actually helps you with customer acquisition since loyal customers are 4 times more likely than new customers to refer you to their friends and family. These loyal customers are also 7 times more likely to try your new offerings.‍

    Which customer retention metrics should you focus on for your Shopify store?

    There are many metrics that you could track to measure customer retention. Here are the most important ones:

    1. Repeat purchase rate

    This refers to the percentage of customers who made more than one purchase from your Shopify store during a specific time period out of the total number of customers who made purchases from your Shopify store during that time period.

    You can use this formula to calculate your repeat purchase rate:

    Repeat purchase rate = (Number of customers who made multiple purchases / total number of unique customers) x 100

    2. Purchase frequency

    The purchase frequency helps you figure out how often your customers make purchases from your store. Your purchase frequency could vary depending on your industry and the type of products that your store sells. For example, stores selling fast-moving consumer goods would have a very high purchase frequency while stores that sell consumer durables would have a low purchase frequency.

    To calculate your average purchase frequency for a specific period, you can use this formula:

    Average purchase frequency = Total number of purchases / Total number of unique customers‍

    3. Average order value

    Your average order value is the amount of money that your customers spend on every purchase that they make at your Shopify store. Your average order value could increase because of your customers buying more expensive items or even because of them buying multiple products (or many of one product) at one time.

    A high average order value could be an indicator of good levels of customer retention because loyal customers would be the ones most open to spending a lot of money in a single order (they trust you) and new customers would be less likely to make very expensive purchases the very first time.

    To calculate your average order value, divide your total revenue for a certain period by the number of unique orders you had during that period.

    Average order value = Total revenue / Total number of orders‍

    Trending Bot Articles:

    1. How Conversational AI can Automate Customer Service

    2. Automated vs Live Chats: What will the Future of Customer Service Look Like?

    3. Chatbots As Medical Assistants In COVID-19 Pandemic

    4. Chatbot Vs. Intelligent Virtual Assistant — What’s the difference & Why Care?

    4. Customer lifetime value

    Your customer lifetime value is the amount of revenue that you will earn from a customer over the entire amount of time that they do business with you. If you increase your customer retention, you will end up increasing your customer lifetime value. There are many complex formulae that you could use to calculate your customer lifetime value, but let’s make it simple. Here’s the easiest, most straightforward formula that you could use.

    Customer lifetime value = Average order value x Average purchase frequency x Average customer lifespan

    Quick tip: Read this article to learn how to increase your customer lifetime value.

    How to improve your customer retention on Shopify?

    1. Respond to customer queries quickly

    According to Forrester Research, 53% of customers end up abandoning their carts if they don’t get their questions answered instantly. And this isn’t just limited to new customers. Even if your customers have made purchases from your store earlier and they came back, they’re liable to abandon their cart and even stop doing business with you if you don’t answer their questions quickly.

    That’s why you need to deploy an intelligent chatbot on your Shopify store. If you use an AI-powered Shopify chatbot from Engati, you can answer around 80% of your customer queries instantly, passing only the most complex questions on to live agents.

    Now, speaking of those complex questions; you don’t want your customers to have to get on a phone call or start an email conversation to get the answers they’re looking for. Use Engati Live Chat to let your customers converse with your agents and have their questions answered over the same platform.

    A Forrester study has shown that 44% of online shoppers believe that live chat is the best feature that an eCommerce website could have.‍

    2. Have a better return policy

    Making your return policy more lenient would cause your customers to trust you more. It’ll make them feel like your offerings must be high quality if you have such a great return policy. That trust will cause them to stick with you and keep doin business with you for a long time.

    And if you’re afraid that such a return policy would cause customers to purchase your offerings, use them once and return them, thus making you actually lose money on shipping, you don’t need to worry about that.

    What actually tends to happen is that such a policy would cause your customers to make more purchases, thinking that they can return them if they don’t like them. But, now the Endowment Effect kicks in, making them value these products more because they belong to them. The result? They just don’t end up returning their purchases. A more lenient return policy could thus help you increase your sales as well as your customer retention.‍

    3. Use Shopify Analytics

    Shopify analytics helps you understand your sales trends and shows you who your recurring customers are and what they are buying. It even shows you what items they are buying together, which could allow you to bundle those items and offer discounts on them.

    It could help you understand your customers’ interests and offer products that match what they are looking for, thus keeping them coming back for more.‍

    4. Personalize product recommendations

    You can improve your customer experience by displaying the products that your customers would be most interested in across your Shopify store. Displaying product recommendations based on your customers’ preferences would make it seem like your catalog matches their needs and tastes. It also creates a better customer experience because they don’t have to spend their time hunting for the products that they are interested in.

    You could even set up product recommendations that are based on how they have historically browsed through your store. Using personalized recommendations makes life easier for your customers and shows that you have what they need, so they won’t need to look in other places and they’ll keep coming back to your store.

    5. Engage your customers in their language

    If you can’t engage and support your customers in their language, they aren’t going to stick with you. They just won’t trust you as much if you only provide support in English while they speak other languages. They’ll look at you as an outsider and that’s not good for customer retention.

    Deploying an Engati chatbot on your Shopify store allows you to engage your customers across multiple regions in 50+ languages, helping you make all your customers feel comfortable doing business with you and more inclined to stay loyal.

    6. Leverage customer accounts

    Creating an account would subconsciously make your customers think that they are going to make more purchases from your store in the future. That’s essentially them justifying the act of making an account, even if they didn’t initially intend to make future purchases from you.

    Creating an account would certainly make the buying process much easier for your customers, but you might not want to force customers to make one, that could just be annoying and cause new customers to abandon purchases.

    You want to offer guest checkout options but still incentivize customers to create accounts on your store.‍

    7. Create a loyalty program

    A loyalty program is a time-tested way to increase your customer retention. The Harvard Business Review even shows that companies with strong loyalty programs tend to grow their revenues 2.5x faster than their competitors.

    You can find apps to build loyalty programs on the Shopify App Store, and you can even use your Engati chatbot to run your loyalty program.‍

    8. Allow customers to subscribe to products

    If you sell products that your customers would typically need to purchase at regular intervals, you don’t want to give them the opportunity to discover your competitors the next time they need to make a purchase.

    Allow them to subscribe to those products and give them a discount for doing that. This enables you to earn recurring revenue and eliminates the effort your customers have to make to reorder, along with the chance of them selecting a competitor.‍

    9. Create a feedback loop

    After your customers make a purchase, you want to lay the foundation for a good relationship by asking them for feedback and even requesting a review. Asking for feedback (and acting on it) shows your customers that you care about their opinions and makes them want to stick with you longer.

    Requesting a review is very effective because when they do leave a positive review they are essentially getting conditioned to think positively about your store. Thinking negatively would create dissonance in their mind and it just wouldn’t feel right. They’ll essentially be justifying the act of leaving a positive review by telling themselves that they do like your store and your offerings.‍

    10. Go omnichannel

    An omnichannel approach makes life easier for your customers and allows you to reach them on all the channels they’re hanging out on. Deploying an omnichannel Engati chatbot for your Shopify store even helps you reduce customer effort because they’ll be able to get support, check their order status, and do much more directly over WhatsApp, Facebook Messenger, Telegram, Instagram, and 10+ other channels instead of having to visit and navigate through your website.‍

    11. Wish them on occasions

    If you collected information about your customers like their date of birth when they set up an account with you, you could send them a message to wish them, along with a gift card or even a small gift for your most loyal, high-value customers.

    Even if you don’t have that information, you could still wish them on festive occasions and send them gift cards or gifts, thus making them feel better about you.‍

    12. Improve your user experience

    A bad user experience would cause you to lose customers. Your store should be easy to use and should require as little effort as possible for your customers to make purchases. Look at analytics and heat maps to identify issues with your store and fix them.

    When you design your Shopify store, make sure not to stray too far away from the commonly accepted web conventions, doing that could make your website feel less intuitive. If certain buttons and other features are not where your customers would intuitively expect them to be, your customers might get confused and frustrated. You don’t want that to happen.

    Another way to improve your user experience is to deploy an Engati chatbot on your Shopify store so that your customers don’t have to hunt through your entire website to find the information they need. They can get all the information they’re looking for — from other details to store policies — in one place, by simply asking a question.

    This article about “How to retain customers on your Shopify store” was originally published in Engati blogs.

    Don’t forget to give us your 👏 !


    How to retain customers on your Shopify store was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.

  • What Are Acoustic Models and Why Are They Needed in Speech Recognition for Kids?

    A silhouette of a human’s face overlaid with some colourful shapes.

    Speech Recognition Engineer Armin Saeb brings you the fifth installment of our “Lessons from Our Voice Engine” series, featuring high-level insights from our Engineering and Speech Tech teams on how our voice engine works.

    What is an acoustic model (AM)?

    Acoustic Models (AM) are key components of any speech recognition engine. An AM describes the statistical properties of sound events and connects the acoustic information with phonemes or other linguistic units. Hidden Markov Models (HMM) are one of the most common types of AMs. Other acoustic models include Deep Neural Networks (DNN) and Convolutional Neural Networks (CNN).

    Trending Bot Articles:

    1. How Conversational AI can Automate Customer Service

    2. Automated vs Live Chats: What will the Future of Customer Service Look Like?

    3. Chatbots As Medical Assistants In COVID-19 Pandemic

    4. Chatbot Vs. Intelligent Virtual Assistant — What’s the difference & Why Care?

    Why are AMs important for SoapBox?

    AMs play an even more critical role at SoapBox than in normal, adult-focused voice engines because recognizing children’s speech is much more challenging. Kids have smaller vocal tracts and slower and more variable speech patterns. They inhabit noisy environments and use a lot of spontaneous speech, imaginative words, ungrammatical phrases, and incorrect pronunciations!

    At SoapBox we work hard to design and train AMs that can cater to all of this complexity and do the heavy lifting of accurately converting children’s speech to text.

    Catch up on our previous “Lessons from Our Voice Engine”:

    While you’re here, check out our latest insights on voice tech for kids.

    Don’t forget to give us your 👏 !


    What Are Acoustic Models and Why Are They Needed in Speech Recognition for Kids? was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.

  • Chatbots are your secret Black Friday weapon

    Black Friday and Cyber Monday are the two single days that concentrate more sales of the whole year. Christmas sales are bigger but they are spread out over a much longer period of time. So, is your online shop ready for Black Friday / Cyber Monday? If you’re not sure you should definitely go over one of the many checklists posts advising you on how to make sure you test your website and checkout process, make sure it scales, etc. Also, this podcast collects a great set of experiences and Insights for Black Friday and Cyber Monday Sales.

    But these checklists focus a lot on the technical part and tend to forget that a spike in visitors directly translates into a spike of questions to answer. If you’re too busy to answer those questions immediately, visitors will just bounce to another shop. And with that, your sales will go down.

    Unless you know how to clone yourself, the best option to make sure all your visitors get the attention they need is to make sure you add a chatbot to your eCommerce site. Among all the benefits a chatbot brings to eCommerce, they can:

    • Help customers find the products they want
    • Recommend them the products, including those you want to push during these two days (e.g. as you’re running out of stock for some products you may want to redirect visitors to products with a larger remaining stock)
    • Answer any type of FAQ question
    • Up-sell and cross-sell products to maximize the sales per client
    • And do all this in the native language of the client (something that not even your clones would be able to do 🙂 )

    Trending Bot Articles:

    1. How Conversational AI can Automate Customer Service

    2. Automated vs Live Chats: What will the Future of Customer Service Look Like?

    3. Chatbots As Medical Assistants In COVID-19 Pandemic

    4. Chatbot Vs. Intelligent Virtual Assistant — What’s the difference & Why Care?

    But not any bot will do, you need a bot that

    1. Understands your shop catalog. Products, payment methods, orders,… The bot needs to be fully aware of all the shop data.
    2. Dynamically configures itself to use the shop data to provide personalized answers
    3. It lets users to add products to the cart from the bot to speed up the shopping process

    Keep in mind that you won’t have the time to use an external bot creation tool to update the conversations every time you want to, for instance, feature a different product or update the availability of the different shipping options. You need a bot that can work out-of-the-box thanks to deep integration with the eCommerce platform you’re on. For instance, like Xatkit does with WooCommerce (for now, expanding to other platforms in the future!).

    And you shouldn’t wait until the last minute if you want to get the most out of the chatbot. Even with automatic bots with plenty of built-in conversations you always have the option to add custom FAQs that are very specific to your shop. Get them ready before the D-day arrives. Also, chatbots are a great tool to discover what your visitors are looking for. Most chatbot tools come with a monitoring dashboard where you can see what are the most common questions and, even more importantly, all the questions you were not prepared for. Collect this data and advance and use it to make sure all the information is updated and available in the shop.

    Start TODAY preparing your shop for Black Friday with our chatbot, the perfect chatbot for WooCommerce (and it’s not us who say so!)

    Don’t forget to give us your 👏 !


    Chatbots are your secret Black Friday weapon was originally published in Chatbots Life on Medium, where people are continuing the conversation by highlighting and responding to this story.