• Stars
    star
    673
  • Rank 67,060 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Open Source Conversational AI Platform for Deep-Domain Voice Interfaces and Chatbots.

MindMeld Conversational AI Platform

MindMeld

This repository contains the MindMeld Conversational AI Platform.

Introducing MindMeld

The MindMeld Conversational AI platform is among the most advanced AI platforms for building production-quality conversational applications. It is a Python-based machine learning framework which encompasses all of the algorithms and utilities required for this purpose. Evolved over several years of building and deploying dozens of the most advanced conversational experiences achievable, MindMeld is optimized for building advanced conversational assistants which demonstrate deep understanding of a particular use case or domain while providing highly useful and versatile conversational experiences.

MindMeld is the only Conversational AI platform available today that provides tools and capabilities for every step in the workflow for a state-of-the-art conversational application. The architecture of MindMeld is illustrated below.

MindMeld architecture

To summarize, the functionality available in MindMeld includes:

  • advanced Natural Language Processing, consisting of

    • Domain Classification
    • Intent Classification
    • Entity Recognition
    • Entity Role Labeling
    • Entity Resolution
    • Language Parsing
  • versatile dialogue management

  • custom knowledge base creation

  • advanced question answering

  • training data collection and management support

  • large-scale data analytics

The MindMeld Philosophy

MindMeld has been used for applications in dozens of different domains by some of the largest global organizations. Over the course of these production deployments, MindMeld has evolved to be ideally suited for building production-quality, large-vocabulary language understanding capabilities for any custom application domain. This has been achieved by following the architectural philosophy whose guiding principles are expressed in the table below.

Concept Description
Power and Versatility Unlike GUI-based tools typically too rigid to accommodate the functionality required by many applications, MindMeld provides powerful command-line utilities with the flexibility to accommodate nearly any product requirements.
Algorithms and Data In contrast to machine learning toolkits which offer algorithms but little data, MindMeld provides not only state-of-the-art algorithms, but also functionality which streamlines the collection and management of large sets of custom training data.
NLP plus QA and DM While conversational AI platforms available today typically provide natural language processing (NLP) support, few assist with question answering (QA) or dialogue management (DM). MindMeld provides end-to-end functionality including advanced NLP, QA, and DM, all three of which are required for production applications today.
Knowledge-Driven Learning Nearly all production conversational applications rely on a comprehensive knowledge base to enhance intelligence and utility. MindMeld is the only Conversational AI platform available today which supports custom knowledge base creation. This makes MindMeld ideally suited for applications which must demonstrate deep understanding of a large product catalog, content library, or FAQ database, for example.
You Own Your Data Differently from cloud-based NLP services, which require that you forfeit your data, MindMeld was designed from the start to ensure that proprietary training data and models always remain within the control and ownership of your application.

Quick Start

Assuming you have pip installed with Python 3.6 or Python 3.7 and Elasticsearch running in the background:

pip install mindmeld
mindmeld blueprint home_assistant
python -m home_assistant build
python -m home_assistant converse

For detailed installation instructions, see Getting Started. To start with pre-built sample applications, see MindMeld Blueprints.

MindMeld UI

MindMeld UI

You can use our sample web-based chat client interface to interact with any MindMeld application. This web UI also serves as a debugging tool to step through the various stages of query processing by the MindMeld pipeline.

git clone [email protected]:cisco/mindmeld.git
cd mindmeld/mindmeld-ui
npm install
npm start

For detailed installation instructions, see Getting Started for UI.

Note: this web client only works on Chrome browser.

How to contribute to the MindMeld platform:

We are very happy to receive your contributions. We maintain a list of open issues on our GitHub project.

You can also create your own issue and link it to your code in a pull request, which we will promptly review.

To setup local development for MindMeld, first you will need to fork the MindMeld repository from GitHub and follow instructions on Getting Started page to setup the virtual environment.

git clone [email protected]:[username]/mindmeld.git
cd mindmeld
virtualenv -p python3 .
source bin/activate

To develop MindMeld, you need Python 3.6 or Python 3.7. To install and manage different versions of Python, you can checkout pyenv which also works with virtualenv.

Now we can install MindMeld and its dependencies:

pip install -e .
pip install -r dev-requirements.txt
pip install -r test-requirements.txt

Make sure that the numerical parser and Elasticsearch are running in the background. Finally we are ready to run MindMeld static style checks and unit tests.

./lintme
cd tests
pytest .

After making changes and all tests are passing locally, commit the code to your fork and issue a PR against the cisco/mindmeld repo.

Documentation

You can view the documentation for the latest stable release on mindmeld.com/docs and the documentation for the latest master branch version on our Github Page.

You can contribute to the documentation under the source directory.

To generate the documentation, please follow these steps:

pip install -r docs-requirements.txt
make apidoc

Citation

Please cite this paper if you use MindMeld in your work:

Raghuvanshi, A., Carroll, L. and Raghunathan, K., 2018, November. Developing Production-Level Conversational Interfaces with Shallow Semantic Parsing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations (pp. 157-162)

@inproceedings{raghuvanshi2018developing,
  title={Developing Production-Level Conversational Interfaces with Shallow Semantic Parsing},
  author={Raghuvanshi, Arushi and Carroll, Lucien and Raghunathan, Karthik},
  booktitle={Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing:
             System Demonstrations},
  pages={157--162},
  year={2018}
}

Want to learn more about MindMeld?

Visit the MindMeld website.

Feedback or Support Questions

Please contact us at [email protected].

More Repositories

1

ChezScheme

Chez Scheme
Scheme
6,965
star
2

openh264

Open Source H.264 Codec
C++
5,527
star
3

joy

A package for capturing and analyzing network flow data and intraflow data, for network research, forensics, and security monitoring.
C
1,301
star
4

libsrtp

Library for SRTP (Secure Realtime Transport Protocol)
C
1,209
star
5

node-jose

JavaScript
700
star
6

thor

Thor Video Codec
C
697
star
7

mercury

Mercury: network metadata capture and analysis
C++
437
star
8

cisco-mibs

Various SNMP MIBs from Cisco
HTML
144
star
9

exanic-software

ExaNIC drivers, utilities and development libraries
C
138
star
10

mlspp

Implementation of Messaging Layer Security
C++
108
star
11

cjose

C library implementing the Javascript Object Signing and Encryption (JOSE)
C
105
star
12

libest

C
97
star
13

elsy

An opinionated, multi-language, build tool based on Docker and Docker Compose
Go
79
star
14

lal-build-manager

Project dependency manager
Rust
75
star
15

libacvp

The libacvp library is a client-side implementation of the draft ACVP protocol (github.com/usnistgov/ACVP).
C
65
star
16

ns3-802.11ax-simulator

NS3 Simulator of 802.11ax
C++
58
star
17

cisco-network-puppet-module

Ruby
55
star
18

open-nFAPI

An open source implementation of the Small Cell Forum's Network Functional API (nFAPI)
C
54
star
19

ns3-rmcat

Simulator of IETF RMCAT congestion control protocols
C++
50
star
20

go-mls

Message Layer Security
Go
48
star
21

cisco.github.io

Public Github Pages for Cisco
JavaScript
45
star
22

libfnr

FNR is a small domain block cipher to encrypt small objects ( < 128 bits )
C
40
star
23

senml

Tool to convert senml between formats and act as gateway server to other services
Go
39
star
24

opus

Cisco work on the Opus codec
C
31
star
25

hash-sigs

A full-featured implementation of of the LMS and HSS Hash Based Signature Schemes from draft-mcgrew-hash-sigs-07.
C
31
star
26

go-hpke

Implementation of draft-irtf-cfrg-hpke
Go
30
star
27

cisco-network-node-utils

Ruby
29
star
28

systemf

Prepared statement support for the system command
C
29
star
29

cisco-network-chef-cookbook

Ruby
27
star
30

OpenOSC

Open Object Size Checking: Library to detect buffer overflows in C/C++ code
C
27
star
31

NATTools

NAT Tools
C
26
star
32

ActionOrchestratorContent

A repository for Action Orchestrator content definitions. Includes workflows and Atomic Workflow Adapters as well as general adapter definitions.
25
star
33

exact-capture

Exablaze High Rate Capture Software
C
23
star
34

oraf

Optimized RAndom Forests
Scala
22
star
35

node-kms

node-scr
JavaScript
21
star
36

JabberWerxC

A C API for XMPP connectivity
C
18
star
37

zepster

Generate database schema, documentation, and other artifacts from an Entity-Relationship diagram, which is created as a GraphML file using the yEd graph editor.
Python
17
star
38

firepower-ngfw

Firepower Threat Defense Virtual templates and artifacts
13
star
39

cisco-yang-puppet-module

Puppet module to allow configuration of IOS-XR via YANG
Ruby
11
star
40

anyconnect-kdf

Cisco AnyConnect Linux Kernel Module
C
11
star
41

webex-assistant-sdk

An SDK for developing Webex Assistant Skills based on the MindMeld platform.
Python
11
star
42

xr-telemetry-m2m-web

A small web app to explore the IOS-XR internal data model, for streaming telemetry or other automation uses
Python
10
star
43

herisson

C++
10
star
44

goFish

Finding Fish
C++
9
star
45

cisco-nxapi

Ruby
8
star
46

asav

ASAv templates and artifacts
8
star
47

syncodecs

Synthetic codecs for evaluation of RMCAT work
C++
7
star
48

ciscohls

C
7
star
49

multilingual-speech-testing

Test software and data for evaluation of speech processing algorithms in multiple languages
Python
7
star
50

sframe

Implementation of draft-omara-sframe
C++
6
star
51

hyperledger-est-ca

EST CA for Hyperledger Fabric
Go
6
star
52

SSMAMTtools

C
6
star
53

ciscoacipuppet

Ruby
6
star
54

gse

Game State Encoder and Decoder for RTP
C++
6
star
55

go-tls-syntax

Encode and decode messages in TLS 1.3 syntax
Go
6
star
56

jfnr

Java bindings for FNR block cipher
Java
5
star
57

usnic_tools

usNIC tools
C
4
star
58

ampfsm

Cisco AMP Filesystem Module
C
4
star
59

arc

Go
4
star
60

xr-telemetry-m2m-lib

Libraries for interacting with the IOS-XR M2M service.
Python
3
star
61

JdbcDecorator

Java
3
star
62

gst-plugin-dlnasrc

A fork of the original gst-dlna-src plugin, these modifications make the plugin work with the RDK server
C
3
star
63

ampnetworkflow

Cisco AMP Device Flow Control
C
3
star
64

libamvp

A client-side implementation of the AMVP protocol.
C
2
star
65

guppi

Grand Unified Platform for Process Interactions: A DevOps Environment for Data Scientists
Python
2
star
66

cisco-otel-java

Cisco Distribution of OpenTelemetry Java
1
star
67

WXM-Invitations

Optional module for dispatching SMS and Email invitations for Cisco Webex Experience Management Surveys from your private cloud
C#
1
star
68

cgmi

C
1
star
69

libusnic_verbs

Perl
1
star
70

node-scr

JavaScript
1
star
71

pam_mpa

PAM module providing Multi-Person Authentication against local (/etc/shadow)
C
1
star