[go: up one dir, main page]

Sign inSign up

dominicbreuker/rasa_nlu

By dominicbreuker

•Updated over 9 years ago

Chatbot AI service inside Docker - all credits go to the original creators

Image
1

1.5K

dominicbreuker/rasa_nlu repository overview

⁠Rasa NLU

Join the chat at https://gitter.im/RasaHQ/rasa_nlu Build Status Coverage Status PyPI version Documentation Status

Rasa NLU (Natural Language Understanding) is a tool for intent classification and entity extraction. You can think of Rasa NLU as a set of high level APIs for building your own language parser using existing NLP and ML libraries. Find out more on the homepage of the project⁠, where you can also sign up for the mailing list.

Extended documentation:

If you are new to Rasa NLU and want to create a bot, you should start with the tutorial⁠.

Contents:

⁠Setup

⁠A. Install Locally

From pypi:

pip install rasa_nlu

From github:

git clone [email protected]:RasaHQ/rasa_nlu.git
cd rasa_nlu
pip install -r requirements.txt
pip install -e .

To test the installation use (this will run a very stupid default model. you need to train your own model⁠ to do something useful!):

python -m rasa_nlu.server &
curl 'http://localhost:5000/parse?q=hello'
⁠B. Install with Docker

Before you start, ensure you have the latest version of docker engine on your machine. You can check if you have docker installed by typing docker -v in your terminal.

⁠1. Build the image:
docker build -t rasa_nlu .
⁠2. Start the web server:
docker run -p 5000:5000 rasa_nlu start

Caveat for Docker for Windows users: please share your C: in docker settings, and add -v C:\path\to\rasa_nlu:/app to your docker run commands for download and training to work correctly.

⁠3. Test it!
curl 'http://localhost:5000/parse?q=hello'
⁠C. (Experimental) Deploying to Docker Cloud

Deploy to Docker Cloud

⁠FAQ

⁠Who is it for?

The intended audience is mainly people developing bots, starting from scratch or looking to find a a drop-in replacement for wit⁠, LUIS⁠, or api.ai⁠. The setup process is designed to be as simple as possible. Rasa NLU is written in Python, but you can use it from any language through a HTTP API⁠. If your project is written in Python you can simply import the relevant classes⁠. If you're currently using wit/LUIS/api.ai, you just:

  1. Download your app data from wit, LUIS, or api.ai and feed it into Rasa NLU
  2. Run Rasa NLU on your machine and switch the URL of your wit/LUIS api calls to localhost:5000/parse.
⁠Why should I use Rasa NLU?
  • You don't have to hand over your data to FB/MSFT/GOOG
  • You don't have to make a https call to parse every message.
  • You can tune models to work well on your particular use case.

These points are laid out in more detail in a blog post⁠. Rasa is a set of tools for building more advanced bots, developed by the company Rasa⁠. Rasa NLU is the natural language understanding module, and the first component to be open sourced.

⁠What languages does it support?

Short answer: English, German, and Spanish currently. Longer answer: If you want to add a new language, the key things you need are a tokenizer and a set of word vectors. More information can be found in the language documentation⁠.

⁠How to contribute

We are very happy to receive and merge your contributions. There is some more information about the style of the code and docs in the documentation⁠.

In general the process is rather simple:

  1. create an issue describing the feature you want to work on (or have a look at issues with the label help wanted⁠)
  2. write your code, tests and documentation
  3. create a pull request describing your changes

You pull request will be reviewed by a maintainer, who might get back to you about any necessary changes or questions.

⁠Development Internals

⁠Steps to release a new version

Releasing a new version is quite simple, as the packages are build and distributed by travis. The following things need to be done to release a new version

  1. update rasa_nlu/version.py⁠ to reflect the correct version number
  2. edit the CHANGELOG.rst⁠, create a new section for the release (eg by moving the items from the collected master section) and create a new master logging section
  3. edit the migration guide⁠ to provide assistance for users updating to the new version
  4. commit all the above changes and tag a new release, e.g. using
    git tag -f 0.7.0 -m "Some helpful line describing the release"
    git push origin master --tags
    
    travis will build this tag and push a package to pypi⁠
  5. only if it is a major release, a new branch should be created pointing to the same commit as the tag to allow for future minor patches, e.g.
    git checkout -b 0.7.x
    git push origin 0.7.x
    

⁠License

Licensed under the Apache License, Version 2.0. Copyright 2016 LastMile Technologies Ltd. Copy of the license⁠.

As a reference, the following contains a listing of the licenses of the different dependencies as of this writing. Licenses of minimal dependencies:

required packageLicense
geventMIT
flaskBSD 3-clause
boto3Apache License 2.0
typingPSF
futureMIT
sixMIT
jsonschemaMIT

Licenses of optional dependencies (only required for certain components of Rasa NLU. Hence, they are optional):

optional packageLicense
MITIEBoost Software License 1.0
spacyMIT
scikit-learnBSD 3-clause
scipyBSD 3-clause
numpyBSD 3-clause
ducklingApache License 2.0
sklearn-crfsuiteMIT
cloudpickleBSD 3-clause
google-cloud-storageApache License 2.0

Tag summary

Content type

Image

Digest

Size

172.9 MB

Last updated

over 9 years ago

docker pull dominicbreuker/rasa_nlu