About This Playbook¶
This playbook represents a first step toward defining the governing principles and best practices which will enable developers to build great conversational applications. It is the result of several years of practical experience building and deploying dozens of the most advanced conversational applications achievable. Cutting-edge research and state-of-the-art algorithms are not surveyed here; there are many other resources available for that purpose. Instead, this playbook focuses on helping developers and data scientists build real production applications. The detailed instructions, practical advice, and real-world examples provided here should empower developers to improve the quality and variety of conversational experiences of the coming months and years.
The Introduction provides an overview of the state of the art in building conversational applications and discusses tradeoffs associated with different implementation approaches.
The Step-by-Step Guide illustrates how to build an end-to-end conversational application using MindMeld, the Conversational AI toolkit. You can apply it directly while building a conversational application, or just read it to learn the essentials of MindMeld.
The Blueprint Applications section explains how to use MindMeld to quickly build and test a fully working conversational application without writing code or collecting training data. You can bootstrap a Blueprint app into a more specialized and powerful conversational application, or just use the Blueprint app as a demo or research tool.
The User Guide covers each component of the MindMeld platform in depth and explains how to use MindMeld to build and configure each component for optimal performance. It functions as a technical supplement that details how to improve an application built following either the Step-by-Step Guide or the Blueprint Applications. The User Guide highlights many common techniques and best practices that contribute to successful conversational experiences today.
The Versions section contains a Recent Changes section which you should always consult before installing or upgrading MindMeld.
Readers should be familiar with Machine Learning and the Python programming language, including functional knowledge of the scikit-learn python package.
For those who wish to use the deep learning models included in MindMeld, familiarity with the TensorFlow library is recommended.
How to Use these Docs¶
The questions and answers below explain how to use this Conversational AI Playbook to support your individual needs as a developer and learner.
Q: What is Conversational AI? Why does MindMeld exist and what does it do?
A: Read the Introduction. This explains what MindMeld does differently from other platforms and toolkits.
Q: What is the methodology for building Conversational AI applications with MindMeld?
A: Read the Step-by-Step Guide. This and the User Guide together form the main body of knowledge for MindMeld developers.
Q: How do I quickly get a pre-built MindMeld app running, either as a learning exercise or as a baseline for my own application?
A: Follow the instructions in Blueprint Applications.
Q: How do I apply the Step-by-Step methodology to my own MindMeld app, either building from scratch or extending a Blueprint app?
A: Work through either the Step-by-Step Guide or the section of Blueprint Applications that’s appropriate for your use case. Where those docs refer you to the User Guide, apply the in-depth material in the User Guide to improve your application’s performance or increase its sophistication, as needed.
The User Guide and the Step-by-Step Guide together form the main body of knowledge for MindMeld developers.
Contents¶
- Building a Conversational Interface in 10 Steps
- Step 1: Select the Right Use Case
- Step 2: Script Your Ideal Dialogue Interactions
- Step 3: Define the Domain, Intent, Entity, and Role Hierarchy
- Step 4: Define the Dialogue State Handlers
- Step 5: Create the Knowledge Base
- Step 6: Generate Representative Training Data
- Step 7: Train the Natural Language Processing Classifiers
- Step 8: Configure the Language Parser
- Step 9: Optimize Question Answering Performance
- Step 10: Deploy Trained Models
- Getting Started
- Platform Architecture
- Managing Optional Dependencies
- Working with the Natural Language Processor
- Working with the Domain Classifier
- Working with the Intent Classifier
- Working with the Entity Recognizer
- System entities and custom entities
- Access the entity recognizer
- Train an entity recognizer
- Run the entity recognizer
- Evaluate classifier performance
- Viewing features extracted for entity recognition
- Save model for future use
- More about system entities
- Using Deep Neural Models for Entity Recognition
- Working with the Role Classifier
- Working with the Entity Resolver
- Working with the Language Parser
- Some parsing terminology
- Figure out whether your app needs a parser
- How the configuration instructs the parser
- Learn how to create a simple parser configuration
- Define a simple parser configuration
- Load the parser configuration
- Run the parser
- Learn how to create an advanced parser configuration (optional)
- Experimenting with an advanced configuration (optional)
- Working with User-Defined Features
- Working with the Knowledge Base and Question Answerer
- Decide Whether your App Needs a Knowledge Base
- Decide How to Use Question Answering in your Application
- Prepare your Data for the Knowledge Base
- Verify that the Data is Clean
- Import the Data into the Knowledge Base
- Perform Simple Searches with the
get()
API - Perform Advanced Searches with the
build_search()
API - QuestionAnswerer Configurations
- Dealing with unstructured text
- Leveraging semantic embeddings
- Working with the Dialogue Manager
- Working with the Text Preparation Pipeline
- Working with the Auto Annotator
- Working with Custom Actions
- Active Learning in MindMeld
- Data Augmentation in MindMeld
- Deep Neural Networks in MindMeld
- Internationalization support
- Dealing with Voice Inputs
- DVC & DAGsHub for Model Tracking
- Webex Teams Integration
- WhatsApp Integration