Skip to content

Commit

Permalink
Update MindMeld readme (#510)
Browse files Browse the repository at this point in the history
* Update MindMeld readme
* Remove mentions of workbench
* Update project description in setup.py
* Bump version: 4.0.2 → 4.0.3
* Bump version: 4.0.3 → 4.0.4
* Bump version: 4.0.4 → 4.0.5
  • Loading branch information
minhtuev committed Apr 21, 2019
1 parent a5191e6 commit d9a988f
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 105 deletions.
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
include source/versions/history.rst

recursive-include mindmeld *
recursive-include tests *
recursive-exclude * __pycache__
Expand Down
128 changes: 39 additions & 89 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,111 +1,61 @@
# MindMeld Workbench
# MindMeld Conversational AI Platform

[![CircleCI](https://circleci.com/gh/expectlabs/mindmeld-workbench.svg?style=svg&circle-token=437cf905895688ac1b58b60fe79144c180893372)](https://circleci.com/gh/expectlabs/mindmeld-workbench)

This repository contains MindMeld Workbench. This repository was renamed to https://github.com/expectlabs/mindmeld-workbench/ from https://github.com/expectlabs/mindmeld-workbench3/ to avoid confusion in relation to the upcoming 4.0.0 release. Please update any configuration that is still pointed to the mindmeld-workbench3 repo.
This repository contains the MindMeld Conversational AI Platform.

## TLDR: Quick Start
## 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.

Assuming you have pyenv installed.
```
cd mindmeld-workbench3/ # go to the root of the workbench repo
pyenv install 3.5.3 # install an appropriate version of python
pyenv virtualenv 3.5.3 workbench3 # create a virtualenv
pyenv local workbench3 # set the virtualenv for the repo
pip install -r dev-requirements.txt # install development dependencies
```

## Getting Started

Workbench 3.x is developed primarily in Python 3.4+, but has support for Python 2.7 as well. Best practice is to set up a virtualenv using the latest stable version of Python for Workbench development. Steps below describe how to do this, assuming pyenv is installed on your system. If not see (pyenv on the eng-wiki)[https://github.com/expectlabs/eng-wiki/wiki/pyenv].

Make sure you're in the root of the repo
`cd mindmeld-workbench3/`

Install an appropriate version of Python, 3.5.3 or 3.6.0
`pyenv install 3.5.3`

Create virtualenv with that Python for Workbench 3
`pyenv virtualenv 3.5.3 workbench3`

Set that virtualenv to be automatically activated for the repo.
`pyenv local workbench3`

Install the development dependencies.
`pip install -r dev-requirements.txt`
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.

## Releasing a Version to MindMeld's PyPI
![MindMeld architecture](http://www.mindmeld.com/_images/architecture1.png)

**Beware! Make sure you read this guide and know what you are doing!**
To summarize, the functionality available in MindMeld includes:

### Bump the Version
- advanced **Natural Language Processing**, consisting of

We use a python utility for bumping the version, aptly named `bumpversion`.
- **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**

This utility will update the version in all the places it should, create a new commit `Bump version: {old-version} → {new-version}`, and create a tag for the new version.
## The MindMeld Philosophy

Our versioning format is `{major}.{minor}.{patch}{release}{revision}`. So version part should be any of `major`, `minor`, `patch` `release` or `revision`.

Let's say the current version is `3.0.1dev2`. `bumpversion revision` would bump the version to `3.0.1dev3`.

If this is your first release, it is recommended that you do a dry run first to confirm you are using the correct version part:

```
bumpversion <version-part> --dry-run --verbose
```

#### TLDR; Do The Thing

```
# Bump the Version
bumpversion <version-part> --commit --tag
git push
git push --tags
```
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.

### Building the wheel
|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 knowlege 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.|

Python wheels are the preferred binary package format for python packages. If you care to learn more, read [here](http://pythonwheels.com/) or [here](https://www.python.org/dev/peps/pep-0427/)
## Quick Start

#### TLDR; Do The Thing
Assuming you have pip installed with Python 3.4, Python 3.5 or Python 3.6 and Elasticsearch running in the background:

```
python setup.py bdist_wheel --universal
pip install mindmeld
mindmeld blueprint home_assistant
python -m home_assistant build
python -m home_assistant converse
```

For detailed installation instructions, see [Getting Started](http://www.mindmeld.com/userguide/getting_started.html). To start with pre-built sample applications, see [MindMeld Blueprints](http://www.mindmeld.com/blueprints/overview.html).

### Publishing to PyPI
## Want to learn more about MindMeld?

You can publish to pypi by pushing the .whl to `s3://mindmeld-pypi/<develop||staging||master>/` (the trailing forward slash is important!).

```
aws s3 cp dist/mindmeld-{new-version}-py2.py3-none-any.whl s3://mindmeld-pypi/<develop||staging||master>/
```

Currently we do not have a deployment process that takes a package from `dev` to `staging` to `master`.

Hence you should deploy to all three environments.

Usually it takes about 5 - 10 minutes to for the PyPI server to update, and you can check at `https://mindmeld.com/packages/`.

## MindMeld Workbench Documentation


This repository contains documentation for MindMeld Workbench.

### TLDR: Quick Start

Assuming you have pyenv installed.
```
pip install -r docs-requirements.txt # install development dependencies
```

### Building Docs

```
make apidoc
```
Read our [Conversational AI Playbook](https://www.mindmeld.com/docs).

### Viewing Docs
## Feedback or Support Questions

`open build/html/index.html`
Please contact us at mindmeld-support@cisco.com.
Binary file added images/architecture1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion mindmeld/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

from .exceptions import MindMeldVersionWarning, MindMeldVersionError

current = '4.0.2'
current = '4.0.5'

logger = logging.getLogger(__name__)

Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 4.0.2
current_version = 4.0.5
commit = False
tag = False
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>[a-z]+)(?P<revision>\d+)?)?
Expand Down
22 changes: 13 additions & 9 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
# pylint: disable=locally-disabled,invalid-name
from setuptools import setup

with open('source/versions/history.rst') as history_file:
history = history_file.read()
with open('README.md') as readme_file:
readme = readme_file.read()

requirements = [
'bleach==1.5.0', # tensorflow -> tensorboard -> bleach, prevents conflicts with jupyter
Expand Down Expand Up @@ -49,12 +49,13 @@

setup(
name='mindmeld',
version='4.0.2',
description="A Python module for building natural language processing models.",
long_description=history,
author="MindMeld, Inc.",
version='4.0.5',
description="A Conversational AI platform.",
long_description=readme,
long_description_content_type='text/markdown',
author="Cisco Systems, Inc.",
author_email='contact@mindmeld.com',
url='https://github.com/mindmeld/mindmeld-workbench3',
url='https://github.com/cisco/mindmeld',
packages=[
'mindmeld',
],
Expand All @@ -65,14 +66,17 @@
include_package_data=True,
install_requires=requirements,
zip_safe=False,
keywords='mindmeld',
keywords=['mindmeld', 'nlp', 'ai', 'conversational'],
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Topic :: Scientific/Engineering :: Artificial Intelligence',
'Topic :: Software Development :: Libraries :: Application Frameworks',
'License :: OSI Approved :: Apache Software License'
],
setup_requires=setup_requirements,
test_suite='tests',
Expand Down
4 changes: 0 additions & 4 deletions source/userguide/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -483,10 +483,6 @@ Troubleshooting
+---------------+---------------------------------------------+-----------------------------------------------+
| Context | Error | Resolution |
+===============+=============================================+===============================================+
| pip install | Could not find a version | Verify your credentials for the |
| | that satisfies the | MindMeld Learning Center. |
| | requirement mindmeld | |
+---------------+---------------------------------------------+-----------------------------------------------+
| any | Code issue | Upgrade to latest build: |
| | | ``pip install mindmeld -U`` |
+---------------+---------------------------------------------+-----------------------------------------------+
Expand Down
2 changes: 1 addition & 1 deletion source/versions/history.rst
Original file line number Diff line number Diff line change
Expand Up @@ -195,4 +195,4 @@ Compatibility Notes
3.0.0 (2017-08-14)
------------------

* First release of the MindMeld MindMeld conversational AI toolkit
* First release of the MindMeld conversational AI toolkit

0 comments on commit d9a988f

Please sign in to comment.