chloe

module
v0.0.0-...-66bbac4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2023 License: GPL-3.0

README ΒΆ

Chloe

A powerful AI assistant

Chloe

tests status license

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.

πŸš€ Features

  • 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

🌟 Power Chloe's Growth: Lend Your Support

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.

πŸ“± Supported Interfaces

πŸ›£οΈ Roadmap

You can track Chloe's progress on the Roadmap project.

πŸ”— Dependencies

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

πŸ’Ύ Installation

Pre-built binaries

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.

From source

  1. Clone the repository
git clone https://github.com/kamushadenes/chloe.git
  1. Change directory to the project folder
cd chloe
  1. Compile
make

βš™οΈ Usage

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.

πŸ“š Documentation

Check out the Wiki for more information.

πŸ”§ Configuration

See Configuration for more information.

πŸ’¬ Improving responses

See Few-shot prompting.

πŸ› οΈ Extending capabilities

See Extending Chloe.

πŸ‘₯ User management

See User management.

🀝 Contributing

We welcome contributions! If you would like to improve Chloe, please check out the Contributing Guide.

⚠️ Disclaimer

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!

πŸ“„ License

Chloe is licensed under the GPL-3.0 License.

πŸ“š References

πŸ™ Acknowledgements

Directories ΒΆ

Path Synopsis
cmd
interfaces
cli
langchain
actions/file
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/google
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/image
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/latex
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/math
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/mock
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/news
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/scrape
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/transcribe
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/tts
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/weather
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/wikipedia
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
actions/youtube
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL