Skip to content

itsManjeet/bolt

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Bolt

A flexible personal virtual assistant
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Bolt is a simple, easy-to-use, lightweight, flexible virtual assistant primarily developed for rlxos GNU/Linux but can work on any Unix based operating system, Primary target behind developing a lightweight and easy-to-use virtual assistant that any user can train and work with. Bolt uses the ML classification algorithm to detect the user intention and perform task accordingly. Bolt functionality can be extended using c++ dynamic modules, shell scripts or python scripts.

(back to top)

Getting Started

Prerequisites

  • C++17 compiler (g++10/clang++12)
  • libdl (glibc or any other unix libc)
  • CMake & ninja

Build

  1. Clone the repo
    git clone https://github.com/itsmanjeet/bolt.git
  2. Compile the project using cmake
    cmake -B build -DCMAKE_INSTALL_PREFIX=/usr

(back to top)

Usage

Test Run

./build/bolt                            \
      -model ./data/model.json          \
      -responses ./data/responses.txt   \
      -plugin-path ./build/plugins      \
      hey their

Training model

./build/bolt                            \
      -model ./data/model.json          \
      -responses ./data/responses.txt   \
      -plugin-path ./build/plugins      \
      -train ./training.txt

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • Implementation of NaiveBayes classification algorithm
  • Use FuzzySearch for unknown queries
  • Handle builtins using '@' prefix
  • Add TTS support (using espeak, festival)
  • Add STT support (...)
  • Multi-language Support
    • ...

See the open issues for a full list of proposed features ( and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Manjeet Singh - @rlxos_dev - [email protected]

Project Link: https://github.com/itsmanjeet/bolt

(back to top)

Special Thanks

Logo

JetBrain OpenSource Support

(back to top)