Skip to main content

Machine learning based dialogue engine for conversational software.

Project description

# Rasa Python-SDK
[![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)
[![Build Status](https://travis-ci.com/RasaHQ/rasa_core_sdk.svg?branch=master)](https://travis-ci.com/RasaHQ/rasa_core_sdk)
[![PyPI version](https://img.shields.io/pypi/v/rasa_core_sdk.svg)](https://pypi.python.org/pypi/rasa-core-sdk)
[![Documentation Status](https://img.shields.io/badge/docs-stable-brightgreen.svg)](https://rasa.com/docs/core)

Python SDK for the development of custom actions for Kidx Core.

## Installation

To install the SDK run

```bash
pip install kidx_core_sdk
```

## Compatibility

| SDK version | compatible Rasa Core version |
|---------------|----------------------------------------|
| `0.12.x` | `>=0.12.x` |
| `0.11.x` | `0.11.x` |
| not compatible | `<=0.10.x` |

## Usage

Detailed instructions can be found in the Rasa Core Documentation about
[Custom Actions](https://rasa.com/docs/core/customactions).

## Docker

### Usage

In order to start an action server using implemented custom actions,
you can use the available Docker image `rasa/rasa_core_sdk:latest`.

Before starting the action server ensure that the folder containing
your actions is handled as Python module and therefore has to contain
a file called `__init__.py`

Then start the action server using:

```bash
docker run -p 5055:5055 --mount type=bind,source=<ABSOLUTE_PATH_TO_YOUR_ACTIONS>,target=/app/actions \
kidx/kidx_core_sdk:latest
```

The action server is then avaible at `http://localhost:5055/webhook`.

### Custom Dependencies

To add custom dependencies you enhance the given Docker image, e.g.:

```
FROM kidx/kidx_core_sdk:latest

# To install system dependencies
RUN apt-get update -qq && \
apt-get install -y <NAME_OF_REQUIRED_PACKAGE> && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# To install packages from PyPI
RUN pip install --no-cache-dir <A_REQUIRED_PACKAGE_ON_PYPI>
```

## Code Style

To ensure a standardized code style we use the formatter [black](https://github.com/ambv/black).
If your code is not formatted properly, travis will fail to build.

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`.

If you want to set it up manually, install black via `pip install black`.
To reformat files execute
```
black .
```

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

```
docker build -f Dockerfile.dev . -t kidx_core_sdk_dev
docker run --name kidx_core_sdk_dev -v "$PWD":/app -it kidx_core_sdk_dev bash
```

After the docker container start run command in docker
```
pip install -e . --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/
make lint
make test
```

Look the coverage should be no failure and pass 100%


## License
Licensed under the Apache License, Version 2.0. Copyright 2019 Kidx
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_core_sdk).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for kidx-core-sdk, version 0.0.1a2
Filename, size & hash File type Python version Upload date
kidx_core_sdk-0.0.1a2-py2.py3-none-any.whl (20.5 kB) View hashes Wheel 3.7
kidx-core-sdk-0.0.1a2.tar.gz (15.9 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page