Menu

Tree [fde422] main /
 History

HTTPS access


File Date Author Commit
 .github 2024-10-02 Mohamed Marrouchi Mohamed Marrouchi [3cd9b7] fix: update readme and remove makefile
 .husky 2024-09-10 Mohamed Marrouchi Mohamed Marrouchi [30e576] feat: initial commit
 .vscode 2024-09-10 Mohamed Marrouchi Mohamed Marrouchi [30e576] feat: initial commit
 api 22 hours ago Mohamed Marrouchi Mohamed Marrouchi [54d84f] fix: nlu helper init
 cli 2 days ago Yassine Sallemi Yassine Sallemi [395d16] fix: cli typo fix
 docker 5 days ago Mohamed Marrouchi Mohamed Marrouchi [862c2e] fix: additional replacements
 frontend 2 days ago yassinedorbozgithub yassinedorbozgithub [72d244] fix(frontend): make the widget stateful
 nlu 2024-09-29 Mohamed Marrouchi Mohamed Marrouchi [e11fb8] fix: remove non compliant OSD license term
 widget 2024-09-30 yassinedorbozgithub yassinedorbozgithub [c24287] fix(frontend): remove unuse lock files
 .gitignore 2024-09-10 Mohamed Marrouchi Mohamed Marrouchi [30e576] feat: initial commit
 CODE_OF_CONDUCT.md 2024-09-11 Mohamed Marrouchi Mohamed Marrouchi [45ebe1] docs: code of conduct + contributing
 CONTRIBUTING.md 2024-09-16 Mohamed Marrouchi Mohamed Marrouchi [154620] fix: update discord link
 LICENSE.txt 2024-09-29 Mohamed Marrouchi Mohamed Marrouchi [e11fb8] fix: remove non compliant OSD license term
 README.md 5 days ago Mohamed Marrouchi Mohamed Marrouchi [862c2e] fix: additional replacements
 SECURITY.md 2024-09-16 Mohamed Marrouchi Mohamed Marrouchi [154620] fix: update discord link
 commitlint.config.js 2024-09-10 Mohamed Marrouchi Mohamed Marrouchi [30e576] feat: initial commit
 package-lock.json 2024-10-02 Mohamed Marrouchi Mohamed Marrouchi [6fc19c] feat: add install command
 package.json 2024-10-02 Mohamed Marrouchi Mohamed Marrouchi [6fc19c] feat: add install command

Read Me

<picture> Logo </picture>

Build Smooth AI Chatbots / Agents


Hexabot provides everything you need to create and manage your own AI powered chatbot / agent,
Customizable, Multi-Channel, Multi-Lingual and Text-to-Action Capabilities.


Explore the docs »

Video Tutorial · Join Our Discord

Description

Hexabot is an open-source AI chatbot / agent solution. It allows you to create and manage multi-channel, and multilingual chatbots / agents with ease. Hexabot is designed for flexibility and customization, offering powerful text-to-action capabilities. Originally a closed-source project (version 1), we've now open-sourced version 2 to contribute to the community and enable developers to customize and extend the platform with extensions.

NOTE: We are currently working to package it in a way that it would be easy to install and use, hence there's no version release just yet.

Hexabot - Create exceptional chatbot experiences. 100% Open Source. | Product Hunt

Features

  • Analytics Dashboard: Monitor chatbot interactions and performance with insightful metrics and visualizations.
  • Multi-Channel Support: Create consistent chatbot experiences across multiple channels like web, mobile, and social media platforms.
  • Visual Editor: Design and manage chatbot flows with an intuitive drag-and-drop interface. Supports text messages, quick replies, carousels, and more.
  • Plugin System: Extend Hexabot's functionality by developing custom plugins. Enable features like text-to-action responses, 3rd party system integrations, and more.
  • NLU (Natural Language Understanding) Management: Manage training datasets for machine learning models that detect user intent and language, providing intelligent responses.
  • Multi-lingual Support: Define multiple languages, allowing the chatbot to interact with users in their preferred language.
  • Knowledge Base: Seamlessly integrate and manage dynamic content such as product catalogs and store lists for more engaging conversations.
  • User Roles & Permissions: Granular access control to manage user roles and permissions for different parts of the system.
  • Contextual Data: Define variables to collect and leverage relevant information about end-users to deliver personalized responses.
  • Subscribers & Labels: Organize users by assigning labels and customize their chat experience based on defined segments.
  • Inbox & Handover: Provides a real-time chat window where conversations can be monitored and handed over to human agents when necessary.

Directory Structure

  • frontend: The admin panel built with React/Next.js for managing chatbot configurations and flows.
  • api: The backend API built with NestJS and connected to MongoDB for data storage and management.
  • widget: A React-based live chat widget that can be embedded into any website to provide real-time interaction.
  • nlu: The NLU Engine built with Python, enabling intent recognition and language detection through machine learning models.
  • docker: A set of Docker Compose files for deploying the entire solution, making it easy to run Hexabot in any environment.

Prerequisites

To ensure Hexabot runs smoothly, you'll need the following:

  • Docker: We recommend using Docker to start the app since multiple services are required (MongoDB, Redis, Prometheus, etc.). All the necessary Docker Compose files are located in the docker folder.
  • Node.js: For development purposes, ensure you have Node.js >= v18.17.0 installed. We recommend using nvm (Node Version Manager) to easily manage and update your Node.js versions.

Installation

  1. Clone the Repository:
$ git clone https://github.com/hexastack/hexabot.git
  1. Installation:
    Install node dependencies:
$ npm install
  1. Environment Setup: To configure the environment variables, use the following command at the root folder for initialization:
$ npx hexabot init

This will copy the .env.example file to .env in the ./docker directory if the file does not already exist.

  1. Running the Application: Once your environment is set up, you can start the app. Use either of the following commands:
$ npx hexabot start

or for development mode:

$ npx hexabot dev

You can also enable services such as the NLU engine or Nginx :

$ npx hexabot --enable=nlu

Note: The first time you run the app, Docker will take some time to download all the required images.

Usage

UI Admin Panel is accessible via http://localhost:8080, the default credentials are :

  • Username: admin@admin.admin
  • Password: adminadmin

Live Chat Widget is accessible via http://localhost:5173

Commands

  • npx hexabot init : Copies the .env.example file to .env in the ./docker directory if .env does not exist. This is usually used for initial setup.
  • npx hexabot dev : Starts all configured Docker services in development mode. It first checks the .env file for completeness against .env.example and builds the docker images locally.
  • npx hexabot start : Starts all configured Docker services by loading all images from Docker Hub. This target also checks the .env file for required variables.
  • npx hexabot stop : Stops all running Docker services defined in the compose files.
  • npx hexabot destroy : Stops all services and removes all volumes associated with the Docker compose setup, ensuring a clean state.

Example on how to start the stack by adding the Nginx service :

npx hexabot start --enable=nginx

Documentation

For detailed information on how to get started, as well as in-depth user and developer guides, please refer to our full documentation available in the docs folder or visit the Documentation.

You can also find specific documentation for different components of the project in the following locations:

Contributing

We welcome contributions from the community! Whether you want to report a bug, suggest new features, or submit a pull request, your input is valuable to us.

Please refer to our contribution policy first : How to contribute to Hexabot

Contributor Covenant

Feel free to join us on Discord

License

This software is licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:

  1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
  2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).