1 unstable release

0.1.0 Sep 24, 2024

#415 in Web programming

MIT license

31KB
544 lines

jutella-xmpp

License crates.io

XMPP – OpenAI API bridge based on tokio-xmpp and jutella.

Supports OpenAI and Azure endpoints and implements rolling context window to reduce costs.

Installation

Install the executable

  1. Install cargo from https://rustup.rs/.
  2. Install jutella-xmpp from crates.io with cargo install jutella-xmpp.
    The executable will be installed as $HOME/.cargo/bin/jutellaxmpp.
  3. Alternatively, clone the repo and build the executable with cargo build --release. The resulting executable will be target/release/jutellaxmpp.
  4. Copy the executable to /usr/local/bin.

Create a user for runnig the daemon

sudo useradd --system --shell /sbin/nologin --home-dir /nonexistent jutella

Install the config

  1. Copy the config example to /etc.
  2. Make it accessible by root only: sudo chmod 600 /etc/jutellaxmpp.toml.
  3. Edit the config to match your configuration.
  4. Make the config readable by user jutella: sudo setfacl -m user:jutella:r /etc/jutellaxmpp.toml.
  5. You will need to repeat step 4 after every edit if using vim, as it does not preserve ACL.

Install the systemd service

  1. Copy systemd service to /etc/systemd/system.
  2. Enable it to run on system startup: sudo systemctl enable jutellaxmpp.service.
  3. Start the service: sudo systemctl start jutellaxmpp.service.

Dependencies

~36–53MB
~815K SLoC