All Projects → samik-saha → rasa-chatbot

samik-saha / rasa-chatbot

Licence: other
Sample chatbot with rasa stack

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects
powershell
5483 projects

Projects that are alternatives of or similar to rasa-chatbot

opensnips
Open source projects related to Snips https://snips.ai/.
Stars: ✭ 50 (+72.41%)
Mutual labels:  nlu, rasa
rasa bot example
This is an example rasa chatbot implementation that can be connected to your Facebook page.
Stars: ✭ 14 (-51.72%)
Mutual labels:  nlu, rasa
Rasa
💬 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
Stars: ✭ 13,219 (+45482.76%)
Mutual labels:  nlu, rasa
rasa-docker-arm
Rasa Docker image for ARMv7. Runs on a Raspberry Pi.
Stars: ✭ 19 (-34.48%)
Mutual labels:  nlu, rasa
rasa milktea chatbot
Chatbot with bert chinese model, base on rasa framework(中文聊天机器人,结合bert意图分析,基于rasa框架)
Stars: ✭ 97 (+234.48%)
Mutual labels:  nlu, rasa
clofus-chatbot
Clofus® Chat bot Platform using rasa core and rasa nlu similar to rasa x but opensource demo https://clofus.github.io/clofus-chatbot/
Stars: ✭ 61 (+110.34%)
Mutual labels:  nlu, rasa
app rasa chat bot
a stateless chat bot to perform natural language queries against the App Store top charts
Stars: ✭ 20 (-31.03%)
Mutual labels:  nlu, rasa
virtual-assistant
Virtual Assistant
Stars: ✭ 67 (+131.03%)
Mutual labels:  nlu, rasa
Botpress
🤖 Dev tools to reliably understand text and automate conversations. Built-in NLU. Connect & deploy on any messaging channel (Slack, MS Teams, website, Telegram, etc).
Stars: ✭ 9,486 (+32610.34%)
Mutual labels:  nlu, rasa
Clue
中文语言理解测评基准 Chinese Language Understanding Evaluation Benchmark: datasets, baselines, pre-trained models, corpus and leaderboard
Stars: ✭ 2,425 (+8262.07%)
Mutual labels:  nlu
Sembert
Semantics-aware BERT for Language Understanding (AAAI 2020)
Stars: ✭ 194 (+568.97%)
Mutual labels:  nlu
Awesome Hungarian Nlp
A curated list of NLP resources for Hungarian
Stars: ✭ 121 (+317.24%)
Mutual labels:  nlu
Semantic
语义理解/口语理解,项目包含有词法分析:中文分词、词性标注、命名实体识别;口语理解:领域分类、槽填充、意图识别。
Stars: ✭ 144 (+396.55%)
Mutual labels:  nlu
Awesome Pretrained Chinese Nlp Models
Awesome Pretrained Chinese NLP Models,高质量中文预训练模型集合
Stars: ✭ 195 (+572.41%)
Mutual labels:  nlu
Homo
An open source natural interaction system based on offline wake-up, natural language understanding and sentiment analysis
Stars: ✭ 233 (+703.45%)
Mutual labels:  nlu
Nlp Papers
Papers and Book to look at when starting NLP 📚
Stars: ✭ 111 (+282.76%)
Mutual labels:  nlu
Delta
DELTA is a deep learning based natural language and speech processing platform.
Stars: ✭ 1,479 (+5000%)
Mutual labels:  nlu
Chatette
A powerful dataset generator for Rasa NLU, inspired by Chatito
Stars: ✭ 205 (+606.9%)
Mutual labels:  nlu
Ner Slot filling
中文自然语言的实体抽取和意图识别(Natural Language Understanding),可选Bi-LSTM + CRF 或者 IDCNN + CRF
Stars: ✭ 151 (+420.69%)
Mutual labels:  nlu
Dialogflow Ruby Client
Ruby SDK for Dialogflow
Stars: ✭ 148 (+410.34%)
Mutual labels:  nlu

Codeship Status for samik-saha/rasa-chatbot

Sample chatbot with rasa stack

It uses the rasa stack (rasa core/nlu/actions) to implement a simple bot which responds user messages.

Run on local machine

Using docker

Both action server and rasa-core runs as separate processes in the same container. Rename the .env-sample to .env and optionally update the API_KEYs, TOKENs etc.

docker build -t rasa-chatbot .
docker run -it --rm -p 5005:5005 --env-file $(pwd)/.env rasa-chatbot

It starts a webserver with rest api and listens for messages at localhost:5005

Test over REST api

curl --request POST \
  --url http://localhost:5005/webhooks/rest/webhook \
  --header 'content-type: application/json' \
  --data '{
    "message": "Hi"
  }'

Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 59
Access-Control-Allow-Origin: *

[{
  "recipient_id": "default",
  "text": "Hi, how is it going?"
}]

Try the bot using in terminal

docker run --rm --volume $(pwd):/app --env-file $(pwd)/.env -it\
          --workdir /app rasa-chatbot bash ./scripts/start_shell.sh

Run using docker compose

Optionally to run the actions server in separate container start the services using docker-compose. The action server runs on http://action_server:5055/webhook (docker's internal network). The rasa-core services uses the config/endpoints.local.yml to find this actions server

docker-compose up

Train Rasa model

The repository already contains a trained Rasa model at models directory. To retrain the model you can run:

docker run --rm --volume $(pwd):/app \
          --workdir /app rasa/rasa:1.10.10 \
          train --fixed-model-name rasa-model \
          --config config.yml

Deploy to Heroku

On heroku free tier we can start two containers using two dynos, but there isn't a way for the containers to communicate with each other on Heroku. So, we push everything (actions server/rasa core/nlu) in the same container.

heroku container:push -a rasa-chatbot web
heroku container:release -a rasa-chatbot web

Another option would be to create a separate app altogether for actions server (nlu server can also be run as a separate app), which then can communicate with each other over http.

Integration with Facebook

rasa supports integration with multiple channels. Apart from exposing the REST api over http, we can integrate with facebook.

Go to https://developers.facebook.com and creat an app. We can handle messages sent to a facebook page from our app. To do so add messenger to the facebook app and subscribe to a page. Update app secret and page token in config/credentials.yml. On the facebook app, update the webhook url to the deployed heroku app (https://rasa-chatbot.herokuapp.com/webhooks/facebook/webhook).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].