Metadata-Version: 2.1
Name: rasa-hydra
Version: 3.10.2rc3
Summary: Forked from the open source machine learning framework, Rasa
Author: Versay Solutions, LLC
Author-email: 
Maintainer: Chiajun Tai
Maintainer-email: ctai@versay.com
Keywords: nlp machine-learning machine-learning-library bot bots botkit rasa-hydra conversational-agents conversational-ai chatbotchatbot-framework bot-framework
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
License-File: LICENSE.txt
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.5.0
Requires-Dist: pymongo[srv,tls] ~=3.8
Requires-Dist: numpy ==1.16.4
Requires-Dist: scipy ~=1.2
Requires-Dist: tensorflow ~=1.15.0
Requires-Dist: tensorflow-datasets ~=3.2.0
Requires-Dist: absl-py ~=0.9.0
Requires-Dist: setuptools >=41.0.0
Requires-Dist: tensorflow-probability ~=0.7.0
Requires-Dist: tensor2tensor ~=1.14.0
Requires-Dist: gym <=0.15.4
Requires-Dist: apscheduler ~=3.0
Requires-Dist: tqdm ~=4.0
Requires-Dist: networkx ~=2.3.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.5.0
Requires-Dist: colorclass ~=2.2
Requires-Dist: terminaltables ~=3.1
Requires-Dist: sanic ==19.12.2
Requires-Dist: sanic-cors ==0.9.9.post1
Requires-Dist: sanic-jwt ~=1.3
Requires-Dist: multidict ==4.6.1
Requires-Dist: aiohttp ~=3.5
Requires-Dist: questionary >=1.1.0
Requires-Dist: python-socketio ~=4.6.1
Requires-Dist: python-engineio ~=3.14.2
Requires-Dist: pydot ~=1.4
Requires-Dist: pymssql ==2.1.4
Requires-Dist: async-generator ~=1.10
Requires-Dist: SQLAlchemy ~=1.3.0
Requires-Dist: sklearn-crfsuite ~=0.3.6
Requires-Dist: prompt-toolkit ==2.0.10
Requires-Dist: opentracing-instrumentation ~=3.2.1
Requires-Dist: psycopg2-binary ~=2.8.2
Requires-Dist: prometheus-client ~=0.7.1
Requires-Dist: sanic-prometheus ~=0.2.1
Requires-Dist: aredis ~=1.1.8
Requires-Dist: aioredis ~=1.3.1
Requires-Dist: redis-py-cluster ==2.1.0
Requires-Dist: json-logging ~=1.2.7
Requires-Dist: pyinstrument ~=3.2.0
Requires-Dist: PyJWT ~=1.7
Requires-Dist: gast ==0.2.2
Requires-Dist: cloudpickle ~=1.2.0
Requires-Dist: h2 ==3.0.0
Requires-Dist: dopamine-rl ~=3.0.0
Requires-Dist: h5py ~=2.10.0
Requires-Dist: tensorflow-hub ~=0.10.0
Requires-Dist: text2digits ==0.1.0
Requires-Dist: aiokafka ==0.7.2
Requires-Dist: Cython ==0.29.28
Requires-Dist: ecs-logging ~=2.0.0
Provides-Extra: convert
Requires-Dist: tensorflow-text ~=1.15.1 ; extra == 'convert'
Requires-Dist: tensorflow-hub ~=0.6.0 ; extra == 'convert'
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 ~=5.0 ; 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.4 ; extra == 'test'
Requires-Dist: asynctest ~=0.13.0 ; extra == 'test'
Requires-Dist: ecs-logging ~=2.0.0 ; extra == 'test'

# Rasa-Hydra (Forked from Rasa)

Rasa-Hydra is forked from the official Rasa repo and maintained by the Hydra team. Rasa is an open source machine learning framework to automate text-and voice-based conversations. With Rasa-Hydra, you can build chatbots 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-Hydra's primary purpose is to help you build contextual, layered
conversations with lots of back-and-forth. To have a real conversation,
you need to have some memory and build on things that were said earlier.
Rasa-Hydra lets you do that in a scalable way.

### Development Internals
### Running the Tests
In order to run the tests, make sure that you have the development requirements installed:
```bash
pipenv shell --python 3.7
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
make test -j [n]
```

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 --tags
    ```
    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
    ```
6. Packaging the Rasa-Hydra project. For more information, please refer to this [guide](https://packaging.python.org/tutorials/packaging-projects/).
    1. Make sure you have the latest versions of setuptools and wheel installed:
        ```bash
        python3 -m pip install --user --upgrade setuptools wheel
        ```
       
    2. Bump up the version in the dialog_manager/version.py.
       
    3. Build the package locally.
        ```bash
        python3 setup.py sdist bdist_wheel
        ```
7. Upload the package to PyPI/Test PyPI.
    1. Install twine from PyPI.
       ```bash
       pip install twine
       ```

    *  PyPI
        ```bash
        python3 -m twine upload dist/*
        ```
    * Test PyPI
        ```bash
        python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
        ```
