Metadata-Version: 2.1
Name: rasa
Version: 1.7.2
Summary: Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants
Home-page: https://rasa.com
Author: Rasa Technologies GmbH
Author-email: hi@rasa.com
Maintainer: Tom Bocklisch
Maintainer-email: tom@rasa.com
License: Apache 2.0
Download-URL: https://github.com/RasaHQ/rasa/archive/1.7.2.tar.gz
Project-URL: Bug Reports, https://github.com/rasahq/rasa/issues
Project-URL: Source, https://github.com/rasahq/rasa
Keywords: nlp machine-learning machine-learning-library bot bots botkit rasa conversational-agents conversational-ai chatbotchatbot-framework bot-framework
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: requests (>=2.20)
Requires-Dist: boto3 (~=1.9)
Requires-Dist: matplotlib (~=3.0)
Requires-Dist: attrs (>=18)
Requires-Dist: jsonpickle (~=1.1)
Requires-Dist: redis (~=3.3.5)
Requires-Dist: pymongo[srv,tls] (~=3.8)
Requires-Dist: numpy (~=1.16)
Requires-Dist: scipy (~=1.2)
Requires-Dist: tensorflow-cpu (~=1.15.0)
Requires-Dist: absl-py (>=0.8.0)
Requires-Dist: setuptools (>=41.0.0)
Requires-Dist: tensorflow-probability (~=0.7.0)
Requires-Dist: tensor2tensor (~=1.14.0)
Requires-Dist: apscheduler (~=3.0)
Requires-Dist: tqdm (~=4.0)
Requires-Dist: networkx (~=2.4.0)
Requires-Dist: fbmessenger (~=6.0)
Requires-Dist: pykwalify (~=1.7.0)
Requires-Dist: coloredlogs (~=10.0)
Requires-Dist: scikit-learn (~=0.20.2)
Requires-Dist: ruamel.yaml (~=0.15.0)
Requires-Dist: scikit-learn (~=0.20.0)
Requires-Dist: slackclient (~=1.3)
Requires-Dist: python-telegram-bot (~=11.0)
Requires-Dist: twilio (~=6.0)
Requires-Dist: webexteamssdk (~=1.1)
Requires-Dist: mattermostwrapper (~=2.0)
Requires-Dist: rocketchat-API (~=0.6.0)
Requires-Dist: colorhash (~=1.0)
Requires-Dist: pika (~=1.0.0)
Requires-Dist: jsonschema (~=3.0)
Requires-Dist: packaging (~=19.0)
Requires-Dist: gevent (~=1.4)
Requires-Dist: pytz (~=2019.1)
Requires-Dist: python-dateutil (~=2.8)
Requires-Dist: rasa-sdk (~=1.7.0)
Requires-Dist: colorclass (~=2.2)
Requires-Dist: terminaltables (~=3.1)
Requires-Dist: sanic (~=19.9.0)
Requires-Dist: sanic-cors (==0.9.9.post1)
Requires-Dist: sanic-jwt (~=1.3)
Requires-Dist: cloudpickle (~=1.2.0)
Requires-Dist: multidict (==4.6.1)
Requires-Dist: aiohttp (~=3.5)
Requires-Dist: questionary (>=1.1.0)
Requires-Dist: prompt-toolkit (<3.0)
Requires-Dist: python-socketio (>=4.3.1)
Requires-Dist: python-engineio (>=3.9.3)
Requires-Dist: pydot (~=1.4)
Requires-Dist: async-generator (~=1.10)
Requires-Dist: SQLAlchemy (~=1.3.0)
Requires-Dist: sklearn-crfsuite (~=0.3.6)
Requires-Dist: PyJWT (~=1.7)
Requires-Dist: gast (==0.2.2)
Provides-Extra: convert
Requires-Dist: tensorflow-text (~=1.15.1) ; extra == 'convert'
Requires-Dist: tensorflow-hub (~=0.6.0) ; extra == 'convert'
Provides-Extra: kafka
Requires-Dist: kafka-python (~=1.4) ; extra == 'kafka'
Provides-Extra: mitie
Requires-Dist: mitie ; extra == 'mitie'
Provides-Extra: spacy
Requires-Dist: spacy (<2.2,>=2.1) ; extra == 'spacy'
Provides-Extra: sql
Requires-Dist: psycopg2 (~=2.8.2) ; extra == 'sql'
Requires-Dist: SQLAlchemy (~=1.3) ; extra == 'sql'
Provides-Extra: test
Requires-Dist: pytest (~=4.5) ; extra == 'test'
Requires-Dist: pytest-cov (~=2.7) ; extra == 'test'
Requires-Dist: pytest-localserver (~=0.5.0) ; extra == 'test'
Requires-Dist: pytest-sanic (~=1.0.0) ; extra == 'test'
Requires-Dist: responses (~=0.9.0) ; extra == 'test'
Requires-Dist: freezegun (~=0.3.0) ; extra == 'test'
Requires-Dist: nbsphinx (>=0.3) ; extra == 'test'
Requires-Dist: aioresponses (~=0.6.0) ; extra == 'test'
Requires-Dist: moto (~=1.3.8) ; extra == 'test'
Requires-Dist: fakeredis (~=1.0) ; extra == 'test'
Requires-Dist: mongomock (~=3.18) ; extra == 'test'

# Rasa (formerly Rasa Core + Rasa NLU)

[![Join the chat on Rasa Community Forum](https://img.shields.io/badge/forum-join%20discussions-brightgreen.svg)](https://forum.rasa.com/?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![PyPI version](https://badge.fury.io/py/rasa.svg)](https://badge.fury.io/py/rasa)
[![Supported Python Versions](https://img.shields.io/pypi/pyversions/rasa.svg)](https://pypi.python.org/pypi/rasa)
[![Build Status](https://travis-ci.com/RasaHQ/rasa.svg?branch=master)](https://travis-ci.com/RasaHQ/rasa)
[![Coverage Status](https://coveralls.io/repos/github/RasaHQ/rasa/badge.svg?branch=master)](https://coveralls.io/github/RasaHQ/rasa?branch=master)
[![Documentation Status](https://img.shields.io/badge/docs-stable-brightgreen.svg)](https://rasa.com/docs)
[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B8141%2Fgit%40github.com%3ARasaHQ%2Frasa.git.svg?type=shield)](https://app.fossa.com/projects/custom%2B8141%2Fgit%40github.com%3ARasaHQ%2Frasa.git?ref=badge_shield)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/orgs/RasaHQ/projects/23)

<img align="right" height="244" src="https://www.rasa.com/assets/img/sara/sara-open-source-lg.png">

Rasa is an open source machine learning framework to automate text-and voice-based conversations. With Rasa, you can build contexual assistants on:
- Facebook Messenger
- Slack
- Microsoft Bot Framework
- Rocket.Chat
- Mattermost
- Telegram
- Twilio
- Your own custom conversational channels

or voice assistants as:
- Alexa Skills
- Google Home Actions

Rasa helps you build contextual assistants capable of having layered conversations with 
lots of back-and-forth. In order for a human to have a meaningful exchange with a contextual 
assistant, the assistant needs to be able to use context to build on things that were previously 
discussed – Rasa enables you to build assistants that can do this in a scalable way.

There's a lot more background information in this
[blog post](https://medium.com/rasa-blog/a-new-approach-to-conversational-software-2e64a5d05f2a).

---
- **What does Rasa do? 🤔**
  [Check out our Website](https://rasa.com/)

- **I'm new to Rasa 😄**
  [Get Started with Rasa](https://rasa.com/docs/getting-started/)

- **I'd like to read the detailed docs 🤓**
  [Read The Docs](https://rasa.com/docs/)

- **I'm ready to install Rasa 🚀**
  [Installation](https://rasa.com/docs/rasa/user-guide/installation/)

- **I want to learn how to use Rasa 🚀**
  [Tutorial](https://rasa.com/docs/rasa/user-guide/rasa-tutorial/)

- **I have a question ❓**
  [Rasa Community Forum](https://forum.rasa.com/)

- **I would like to contribute 🤗**
  [How to Contribute](#how-to-contribute)

---  
## Where to get help

There is extensive documentation in the [Rasa Docs](https://rasa.com/docs/rasa).
Make sure to select the correct version so you are looking at
the docs for the version you installed.

Please use [Rasa Community Forum](https://forum.rasa.com) for quick answers to
questions.

### README Contents:
- [How to contribute](#how-to-contribute)
- [Development Internals](#development-internals)
- [License](#license)

### How to contribute
We are very happy to receive and merge your contributions. You can
find more information about how to contribute to Rasa (in lots of
different ways!) [here](http://rasa.com/community/contribute).

To contribute via pull request, follow these steps:

1. Create an issue describing the feature you want to work on (or
   have a look at the [contributor board](https://github.com/orgs/RasaHQ/projects/23))
2. Write your code, tests and documentation, and format them with ``black``
3. Create a pull request describing your changes

Your pull request will be reviewed by a maintainer, who will get
back to you about any necessary changes or questions. You will
also be asked to sign a
[Contributor License Agreement](https://cla-assistant.io/RasaHQ/rasa).


## Development Internals
### Running and changing the documentation
To build & edit the docs, first install all necessary dependencies:

```
pip3 install -r requirements-dev.txt
pip3 install -r requirements-docs.txt
```

After the installation has finished, you can run and view the documentation
locally using:
```
make livedocs
```

Visit the local version of the docs at http://localhost:8000 in your browser.
You can now change the docs locally and the web page will automatically reload
and apply your changes.

### Running the Tests
In order to run the tests, make sure that you have the development requirements installed:
```bash
export PIP_USE_PEP517=false
pip3 install -r requirements-dev.txt
pip3 install -e .
make prepare-tests-ubuntu # Only on Ubuntu and Debian based systems
make prepare-tests-macos  # Only on macOS
```

Then, run the tests:
```bash
make test
```

They can also be run at multiple jobs to save some time:
```bash
JOBS=[n] make test
```

Where `[n]` is the number of jobs desired. If omitted, `[n]` will be automatically chosen by pytest.

### Steps to release a new version
Releasing a new version is quite simple, as the packages are build and distributed by travis.

*Terminology*:
* patch release (third version part increases): 1.1.2 -> 1.1.3
* minor release (second version part increases): 1.1.3 -> 1.2.0
* major release (first version part increases): 1.2.0 -> 2.0.0

*Release steps*:
1. Make sure all dependencies are up to date (**especially Rasa SDK**)
2. Switch to the branch you want to cut the release from (`master` in case of a major / minor, the current feature branch for patch releases) 
3. Run `make release`
4. Create a PR against master or the release branch (e.g. `1.2.x`)
5. Once your PR is merged, tag a new release (this SHOULD always happen on master or release branches), e.g. using
    ```bash
    git tag 1.2.0 -m "next release"
    git push origin 1.2.0
    ```
    travis will build this tag and push a package to [pypi](https://pypi.python.org/pypi/rasa)
6. **If this is a minor release**, a new release branch should be created pointing to the same commit as the tag to allow for future patch releases, e.g.
    ```bash
    git checkout -b 1.2.x
    git push origin 1.2.x
    ```

### Code Style

To ensure a standardized code style we use the formatter [black](https://github.com/ambv/black).
To ensure our type annotations are correct we use the type checker [pytype](https://github.com/google/pytype). 
If your code is not formatted properly or doesn't type check, travis will fail to build.

#### Formatting

If you want to automatically format your code on every commit, you can use [pre-commit](https://pre-commit.com/).
Just install it via `pip install pre-commit` and execute `pre-commit install` in the root folder.
This will add a hook to the repository, which reformats files on every commit.

If you want to set it up manually, install black via `pip install -r requirements-dev.txt`.
To reformat files execute
```
make formatter
```

#### Type Checking

If you want to check types on the codebase, install `pytype` using `pip install -r requirements-dev.txt`.
To check the types execute
```
make types
```

### Deploying documentation updates

We use `sphinx-versioning` to build docs for tagged versions and for the master branch.
The static site that gets built is pushed to the `docs` branch of this repo, which doesn't contain
any code, only the site.

We host the site on netlify. On master branch builds (see `.travis.yml`), we push the built docs to the `docs`
branch. Netlify automatically re-deploys the docs pages whenever there is a change to that branch.


## License
Licensed under the Apache License, Version 2.0.
Copyright 2020 Rasa Technologies GmbH. [Copy of the license](LICENSE.txt).

A list of the Licenses of the dependencies of the project can be found at
the bottom of the
[Libraries Summary](https://libraries.io/github/RasaHQ/rasa).


