The jankiest project you ever did see
Exo is the platform for running custom conversational AI models. To train your own, see the model creation repository here
Clone the repository and modify the config files found in 'config/'
- Set the model path
- Set any username as the 'custom_player' (Used so the AI can keep track of who's who)
- Set the User ID's of users to have elevated priveliges. Discord IDs are formatted as 'DISCORD-', Telegram IDs are 'TELEGRAM-', and Terminal is simply 'TERMINAL'.
- Sudoers have access to commands that affect their experience, such as debugging their chat. Operators have access to commands that directly affect how the AI is operating for everyone, as well as seeing system and model information.
- If using Telegram and/or Discord, set the token values while setting up the bot in the 'Usage' section.
'core.py' is the file that runs the model itself. To interface with the model, this file must be running alongside the interface.
Run 'interfaces/exo-terminal.py' to open a chat in the terminal with the AI. This uses the user ID 'TERMINAL'.
Use exo-telegram.py, along with a bot API token, to host your AI on Telegram. Run 'interfaces/exo-telegram.py' to connect the Discord bot to the AI.
Use exo-discord.py, along with a bot API token, to host your AI on discord. Run 'interfaces/exo-discord.py' to connect the Discord bot to the AI. A good guide for setting up a discord bot can be found here.
- Connect to socket at address 127.0.0.1 on port 25077
import socket
sock = socket.socket()
sock.connect(("127.0.0.1", 25077))
sock.sendall(b'userid://message')
data = sock.recv(16384)
data = data.decode()
sock.close()
print(data)
>>> 'response'
Contributing is greatly appreciated, please contact one of the team members to get started working on the codebase.
- Added user timeout, history and user status get cleared after 10 minutes.
- Add response ranking via a point system
- Add sentiment analysis for proper emotions