Go to file
Mohamed Marrouchi c018932400 feat: implement nlp based blocks prioritization strategy
feat: add weight to nlp entity schema and readapt

feat: remove commented obsolete code

feat: restore settings

feat: apply feedback

fix: re-adapt unit tests

feat: priority scoring re-calculation & enabling weight modification in builtin nlp entities

fix: remove obsolete code

feat: refine unit tests, apply mr coderabbit suggestions

fix: minor refactoring

feat: add nlp cache map type

feat: refine builtin nlp entities weight updates

feat: add more test cases and refine edge case handling

feat: add weight validation in UI

fix: apply feedback

feat: add a penalty factor & fix unit tests

feat: add documentation

fix: correct syntax

fix: remove stale log statement

fix: enforce nlp entity weight restrictions

fix: correct typo in docs

fix: typos in docs

fix: fix formatting for function comment

fix: restore matchNLP function previous code

fix: remove blank line, make updateOne asynchronous

fix: add AND operator in docs

fix: handle dependency injection in chat module

feat: refactor to use findAndPopulate in block score calculation

feat: refine caching mechanisms

feat: add typing and enforce safety checks

fix: remove typo

fix: remove async from block score calculation

fix: remove typo

fix: correct linting

fix: refine nlp pattern type check

fix: decompose code into helper utils,  add nlp entity dto validation, remove type casting

fix: minor refactoring

feat: refactor current implementation
2025-05-06 15:30:11 +01:00
.github feat: add github issues config 2025-04-07 16:50:54 +01:00
.husky
.vscode
api feat: implement nlp based blocks prioritization strategy 2025-05-06 15:30:11 +01:00
docker feat: make storage mode configurable env var 2025-01-17 19:10:39 +01:00
frontend feat: implement nlp based blocks prioritization strategy 2025-05-06 15:30:11 +01:00
widget Merge pull request #968 from Hexastack/fix/socket-io-widget-issues 2025-05-01 17:51:20 +01:00
.gitignore
bump-version.sh
CODE_OF_CONDUCT.md
commitlint.config.js
CONTRIBUTING.md fix: write an end-to-end contribution flow 2025-02-13 11:56:11 +01:00
LICENSE.txt
package-lock.json fix(widget): update dependencies category 2025-04-10 09:14:05 +01:00
package.json build: v2.2.5 2025-02-19 16:32:33 +01:00
README.md
SECURITY.md

Logo

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.


Extensions Library . Documentation

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.

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

Features

  • LLMs & NLU Support: Integrate with your favorite LLM model whether it's by using Ollama, ChatGPT, Mistral or Gemini ... Manage training datasets for machine learning models that detect user intent and language, providing intelligent responses.
  • 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 and installing extensions from the Extension Library. Enable features like text-to-action responses, 3rd party system integrations, and more.
  • 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.
  • Analytics Dashboard: Monitor chatbot interactions and performance with insightful metrics and visualizations.

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.
  • docker: A set of Docker Compose files for deploying the entire solution, making it easy to run Hexabot in any environment.

Getting Started

Prerequisites

  • Node.js >= 18.17.0
  • npm (Node Package Manager)
  • Docker installed

Installation

Install Hexabot CLI globally to have easy access to its commands:

npm install -g hexabot-cli

Usage

  1. Create a new project:

    hexabot create my-chatbot
    

    This will create a new folder my-chatbot with all necessary files to get started.

  2. Navigate to your project folder:

    cd my-chatbot
    
  3. Install dependencies:

    npm install
    
  4. Initialize environment:

    hexabot init
    

    This command copies the .env.example file to .env, which you can edit to customize your configuration.

  5. Run in development mode:

    hexabot dev --services ollama
    

    This starts the required services in development mode.

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

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

  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:
$ 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:

For development mode:

$ hexabot dev

Otherwise, you can choose to download docker images rather than building them:

$ hexabot start 

You can also enable services such as Ollama (The services are declared under the ./docker folder) :

$ hexabot dev --services ollama

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

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