Extensible AI assistant that seamlessly interacts with various plugins to fulfill complex tasks, all through natural language conversations powered by OpenAI.
- Key Features
- Installation & Setup
- Usage
- Known Issues
- Future Enhancements & Missing Features
- Contribution
- License
-
Dynamic Plugin Integration: Easily extend the capabilities of the AI assistant by adding new plugins.
-
Function Chaining: Execute multiple plugins in sequence for more complex commands.
-
Conversational Interface: Color-coded roles and an interactive design ensure clear communication.
-
Persistant long term memory: The assistant remembers information from previous conversations to provide a more personalized experience. via a Vector database (Milvus)
- Self plugin creation: The assistant can create and load it's own plugins at runtime if it doesn't have a plugin for a given function (e.g. if the user asks the assistant to do something it doesn't know how to do, it can create a plugin for that function and then execute it)
- Clone the repository:
git clone https://github.com/jjkirkpatrick/clara
- Navigate to the project directory and install the required packages:
cd clara
make buildAssistant
-
Set up the OpenAI API key and other configurations as required.
-
Run the assistant:
./clara
If you don't wish to build the assistant binary you can run it directly with:
go run main.go
However, you will still need to compile the plugins with make rebuild
before running the assistant.
Start a conversation with the assistant by typing ./clara
in the terminal. You can then enter commands in natural language to interact with the assistant.
You can ask the assistant what functions is has available by using natural language commands such as:
- "What are your functions?"
- "What can I ask you to do?"
- [List any known bugs or issues here.]
- support for the assistant to create and load it's own plugins at runtime if it doesn't have a plugin for a given function (e.g. if the user asks the assistant to do something it doesn't know how to do, it can create a plugin for that function and then execute it)
Contributions are always welcome! See CONTRIBUTING.md for ways to get started. Please adhere to this project's code of conduct.
This project is licensed under the MIT License