β οΈ AI is advancing incredibly fast.Most of what Chloe and other assistant projects did is now superseeded by advances not only from OpenAI's API but the entire AI space as a whole, including open source models.
Chloe is no longer needed.
It was incredibly fun to play around with this exciting technology, and while Chloe is no more (for now), I'll keep busy with AI-related projects for a long time.
Keep hacking!
A powerful AI assistant
Chloe is a powerful AI Assistant written in Go that leverages OpenAI technologies (ChatGPT, Whisper, and DALL-E) along with Google's Text-to-Speech engine and ElevenLabs' Text-To-Speech engine to provide versatile and comprehensive assistance.
It offers multiple interfaces and is able to understand and respond to complex instructions making use of several tools.
- Calculates and logs the cost of each request as well as the total cost of the session
- Scrapes websites to have them on its context
- Searches Google for information
- Searches and summarizes news articles
- Performs calculations
- Uses Google's Text-to-Speech engine to speak
- Uses OpenAI's DALL-E to generate images
- Automatically summarizes messages in order to have a longer context
- Automatically moderates message using OpenAI's moderation endpoint
- Many more, check Actions
complete.webm
For the price of a single coffee, you can play a crucial role in advancing Chloe, an exciting project that's pushing the boundaries of fully autonomous AI! This labor of love is developed during my precious free time, requiring countless hours of dedication. Your generous contributions keep the momentum going and are deeply appreciated!
To support Chloe's growth, click here.
You can track Chloe's progress on the Roadmap project.
Dependency | Description | License | Type |
---|---|---|---|
aria2 | Chloe uses aria2 to speed up the download YouTube videos for transcription. Although highly recommended, this is not a mandatory dependency. If you don't have it installed, Chloe will fall back to using the youtube-dl default downloader. |
GPL-2.0 | Runtime |
ffmpeg | Chloe uses ffmpeg to convert YouTube videos to audio, and also to convert audio received from Telegram to an appropriate format for Whisper. It is also used to perform cost calculation on Whisper requests. | LGPL-2.1 | Runtime |
imagemagick | Chloe uses imagemagick to convert images to the appropriate format for DALL-E. | Apache-2.0 | Runtime |
youtube-dl | Chloe uses youtube-dl to download YouTube videos for transcription. | Unlicense | Runtime |
Pre-built binaries are available for Linux (amd64) and macOS (Intel and M1).
You can download them from the releases page.
Windows might work if you compile from source, but it's untested.
- Clone the repository
git clone https://github.com/kamushadenes/chloe.git
- Change directory to the project folder
cd chloe
- Compile
make
Setup the required environment variables
# This is the only mandatory variable
export OPENAI_API_KEY="your_openai_api_key"
# Only necessary if you want to use the Telegram interface
export CHLOE_TELEGRAM_TOKEN="your_telegram_bot_token"
# Only necessary if you want to use the Discord interface
export CHLOE_DISCORD_TOKEN="your_discord_bot_token"
# Only necessary if you want to use the Text-to-Speech engine
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json"
Running the chloe
binary will start the bot.
cd cmd/chloe/
./chloe
Here's the complete list of available commands:
Usage: chloe <command>
Chloe is a powerful AI Assistant
Running Chloe without arguments will start the server
Flags:
-h, --help Show context-sensitive help.
--version Print version information and quit
Commands:
complete Complete a prompt
generate Generate an prompt
tts Generate an audio from a prompt
action Performs an action
forget Forget all users
count-tokens Count tokens
create-user Create a new user
delete-user Delete a user
list-users List users
merge-users Merge users
add-external-id Add external ID to user
delete-external-id Delete external ID from user
list-messages List messages
create-api-key Create an API key for use with the HTTP interface
Run "chloe <command> --help" for more information on a command.
Check out the Wiki for more information.
See Configuration for more information.
See Few-shot prompting.
See Extending Chloe.
See User management.
We welcome contributions! If you would like to improve Chloe, please check out the Contributing Guide.
There are some rushed parts of the code, and some parts that are not very well documented. You can also find a few TODOs scattered around the codebase and some duplicate code too.
Feel free to open an issue if you have any questions, or even better, open a pull request!
Chloe is licensed under the GPL-3.0 License.
- ReAct: Synergizing Reasoning and Acting in Language Models
- A simple Python implementation of the ReAct pattern for LLMs
- pkoukk for the Pure-Go tokenizer
- sashabaranov for the Go OpenAI SDK