Metadata-Version: 2.1
Name: rasa-hydra
Version: 2.6.2
Summary: Forked from the open source machine learning framework, Rasa
Home-page: UNKNOWN
Author: Versay Solutions, LLC
Author-email: 
Maintainer: Chiajun Tai
Maintainer-email: ctai@versay.com
License: UNKNOWN
Keywords: nlp machine-learning machine-learning-library bot bots botkit rasa-hydra 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.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: kafka-python (~=1.4)
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.5)
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)
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'

# 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
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. Build the package locally.
        ```bash
        python3 setup.py sdist bdist_wheel
        ```
7. Upload the package to PyPI/Test PyPI.

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

