Skip to content

Anitej/kairon

 
 

Repository files navigation

Python application Codacy Badge Coverage Total alerts Language grade: Python

Kairon

Kairon is envisioned as a web based microservices driven suite that helps train Rasa contextual AI assistants at scale. It is designed to make the lives of those who work with ai-assistants easy, by giving them a no-coding web interface to adapt , train , test and maintain such assistants .

What is Kairon?

Kairon is currently a set of tools built on the RASA framework with a helpful UI interface . While RASA focuses on technology of chatbots itself. Kairon on the other hand focuses on technology that deal with pre-processing of data that are needed by this framework. These include question augmentation and generation of knowledge graphs that can be used to automatically generate intents, questions and responses. It also deals with the post processing and maintenance of these bots such metrics / follow-up messages etc.

What can it do?

Kairon is open-source. One of the biggest problems for users is adapting contextual AI assistants to specific domain is one of the bigger problems adopting chatbots within organizations. This means extensive work creating intents by going through documentation, testing accuracy of responses, etc. Kairon’s aim is to provide a no-coding self service framework that helps users achieve this. These are the features in the 0.1 version with many more features incoming!

  • Easy to use UI for adding – editing Intents, Questions and Responses
  • Question augmentation to auto generate questions and enrich training data
  • Model Training and Deployment from Interface.
  • Metrics for model performance. This website can be found at Kairon and is hosted by Digite Inc.

Who uses it ?

Kairon is built for two personas Teams and Individuals who want an easy no-coding interface to create, train, test and deploy chatbots. One can directly access these features from our hosted website. Teams who want to host the chatbot trainer in-house. They can build it using docker compose. Our teams current focus within NLP is Knowledge Graphs – Do let us know if you are interested.

At this juncture it layers on top of Rasa Open Source

Deployment

Kairon only requires a recent version of Docker and Docker Compose.

Please do the below changes in docker/docker-compose.yml

  1. set env variable server to public IP of the machine where trainer api docker container is running for example: http://localhost:81

  2. Optional, if you want to have google analytics enabled then uncomment trackingid and set google analytics tracking id

  3. set env variable SECRET_KEY to some random key.

    use below command for generating random secret key

    openssl rand -hex 32
  4. run the command.

    cd kairon/docker
    docker-compose up -d
  5. Open http://localhost/ in browser.

  6. To Test use username: test@demo.in and password: Changeit@123 to try with demo user

Development

Installation

  1. Kairon requires python3.6.9+ or 3.7 and mongo 4.0+

  2. Then clone this repo

    git clone https://github.com/digiteinfotech/kairon.git
    cd kairon/
  3. For creating Virtual environment, please follow the link

  4. For installing dependencies

    Windows

    setup.bat
    

    No Matching distribution found tensorflow-text - remove the dependency from requirements.txt file, as window version is not available #44

    Linux

    chmod 777 ./setup.sh
    sh ./setup.sh
    
  5. For starting augmentation services run

    python -m uvicorn augmentation.paraphrase.server:app --host 0.0.0.0
    
  6. For starting trainer-api services run

    python -m uvicorn kairon.api.app.main:app --host 0.0.0.0 --port 8080
    

System Configuration

Email verification setup

The email.yaml file can be used to configure the process for account confirmation through a verification link sent to the user's mail id. It consists of the following parameters:

  • enable -

    set value to True for enabling email verification, and False to disable.

    You can also use the environment variable EMAIL_ENABLE to change the values.

  • url -

    this url, along with a unique token is sent to the user's mail id for account verification as well as for password reset tasks.

    You can also use the environment variable APP_URL to change the values.

  • email -

    the mail id of the account which sends the confirmation mail.

    You can also use the environment variable EMAIL_SENDER_EMAIL to change the values.

  • password -

    the password of the account which sends the confirmation mail.

    You can also use the environment variable EMAIL_SENDER_PASSWORD to change the values.

  • port -

    the port that is used to send the mail [For ex. "587"].

    You can also use the environment variable EMAIL_SENDER_PORT to change the values.

  • service -

    the mail service that is used to send the confirmation mail [For ex. "gmail"].

    You can also use the environment variable EMAIL_SENDER_SERVICE to change the values.

  • tls -

    set value to True for enabling transport layer security, and False to disable.

    You can also use the environment variable EMAIL_SENDER_TLS to change the values.

  • userid -

    the user ID for the mail service if you're using a custom service for sending mails.

    You can also use the environment variable EMAIL_SENDER_USERID to change the values.

  • confirmation_subject -

    the subject of the mail to be sent for confirmation.

    You can also use the environment variable EMAIL_TEMPLATES_CONFIRMATION_SUBJECT to change the subject.

  • confirmation_body -

    the body of the mail to be sent for confirmation.

    You can also use the environment variable EMAIL_TEMPLATES_CONFIRMATION_BODY to change the body of the mail.

  • confirmed_subject -

    the subject of the mail to be sent after confirmation.

    You can also use the environment variable EMAIL_TEMPLATES_CONFIRMED_SUBJECT to change the subject.

  • confirmed_body -

    the body of the mail to be sent after confirmation.

    You can also use the environment variable EMAIL_TEMPLATES_CONFIRMED_BODY to change the body of the mail.

  • password_reset_subject -

    the subject of the mail to be sent for password reset.

    You can also use the environment variable EMAIL_TEMPLATES_PASSWORD_RESET_SUBJECT to change the subject.

  • password_reset_body -

    the body of the mail to be sent for password reset.

    You can also use the environment variable EMAIL_TEMPLATES_PASSWORD_RESET_BODY to change the body of the mail.

  • password_changed_subject -

    the subject of the mail to be sent after changing the password.

    You can also use the environment variable EMAIL_TEMPLATES_PASSWORD_CHANGED_SUBJECT to change the subject.

  • password_changed_body -

    the body of the mail to be sent after changing the password.

    You can also use the environment variable EMAIL_TEMPLATES_PASSWORD_CHANGED_BODY to change the body of the mail.

Documentation

Documentation for all APIs for Kairon are still being fleshed out. A intermediary version of the documentation is available here. Documentation

Contribute

We ❤️ contributions of all size and sorts. If you find a typo, if you want to improve a section of the documentation or if you want to help with a bug or a feature, here are the steps:

  1. Fork the repo and create a new branch, say rasa-dx-issue1

  2. Fix/improve the codebase

  3. write test cases and documentation for code'

  4. run test cases.

python -m pytest
  1. reformat code using black
python -m black bot_trainer
  1. Commit the changes, with proper comments about the fix.

  2. Make a pull request. It can simply be one of your commit messages.

  3. Submit your pull request and wait for all checks passed.

  4. Request reviews from one of the developers from our core team.

  5. Get a 👍 and PR gets merged.

Built With

Authors

The repository is being maintained and supported by Digite Inc.

See also the list of contributors who participated in this project.

License

Licensed under the Apache License, Version 2.0. Copy of the license

A list of the Licenses of the dependencies of the project can be found at the Link

About

Tool suite built on RASA to train and deploy your chatbots using advanced NLP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Other 0.1%