SillyTavern MultiPlayer is an LLM chat interface that allows multiple users to chat together with an AI.
- Created by RossAscends.
If this software brings you and your friend's joy, donations to Ross can be made via:
Ko-fi |
Patreon |
For tech support or to contact RossAscends directly, join the SillyTavern Discord.
- Make sure Node JS is installed on your system and has access through your firewall.
- Clone this github repo. (
git clone https://github.com/RossAscends/STMP/
in a command line, or use a Github GUI like Github Desktop) - Setup the API (see below).
- Run
STMP.bat
to install the required Node modules and start the server. - On the first run, the server will create an empty
secrets.json
and a defaultconfig.json
, as well as the/api-presets/
and/chats/
folders. - Open
htttp://localhost:8181/
in your web browser.
(instructions coming soon)
Currently STMP supports Text Completions (TC) and HordeAI, with TC active by default.
- Obviously, the host must have a Text Completions compatible backend installed and working on their device.
- TabbyAPI and KoboldCPP are confirmed to work with STMP's TC API mode.
- STMP assumes the default server URL of
http://127.0.0.1:5000/v1/completions
for TC requests. - KoboldCPP should be run with the --multiUser flag enabled.
- If your TC API requires a key, paste it into
secrets.json
. - Other OpenAI-compatible TC APIs are being tested.
- Using Horde requires a SillyTavern server to be running on your local machine to handle the Horde requests.
- IMPORTANT: ST must be running with CSRF turned off.
- IMPORTANT: STMP assumes you have BasicAuthentication enabled on your ST server, and requires you to input your
username:pass
intosecrets.json
. - STMP assumes the default ST server URL of
http://127.0.0.1:8000/api/horde/generate-text
for Horde requests. - If you have a HordeID set in SillyTavern, those credentials and kudos will be used.
- The Host can click the emoji icon at the top left to change which API is used.
- 📑 = Text Completions
- 🧟 = Horde
This must be done AFTER completing all installation steps above.
- Run
Remote-Link.cmd
to download (only one time, 57MB) and auto-runcloudflared.exe
to get a randomly generated tunnel URL for your server. - Share the generated cloudflared URL with the guest users.
- User will be able to directly and securely connect to your PC using the Cloudflare URL.
- Place any SillyTavern compatible character card into the
/characters/
folder and refresh the page. - Character can be selected at the top of the AI Chat panel.
- If new characters are added while the server is running, the Host must refresh their browser page to see them.
- the AI character can be changed at any time without resetting the chat.
- If you want to add more presets for Instruct formats or hyperparameter Samplers, put the JSON file into the appropriate folder:
- Samplers go in
/public/api-presets/
- Instruct formats go in
/public/instructFormats/
- It's highly reccomended to review the structure of the default STMP preset files.
- SillyTavern preset files may not work, or may have unintended effects!
- Chatting can be done in either chat windows by typing into the appropriate box and then either pressing the Send button (✏️), or pressing Enter.
Shift+Enter
can be used to add newlines to the input.- Markdown formatting is respected.
- (
▶️ /⏸️) allows for manual disconnect/reconnect to the server.
The host will see the following controls:
- Controls for changing API settings such as:
API
(Text Completions(📑) or HordeAI(🧟)),Context
size,Response
length,Sampler
presets, andInstruct
formats AutoAI
Toggle to determine whether the AI should respond to every user input, or only on command from the Host.- A text box to define the
Final Instruction
to send as system at Depth 1 in the prompt. - A list of past AI Chats, click to load one.
- (🔄) refreshes the Past AI Chats list (usually not necessary as it is auto-refreshed with each new AI chat message)
- (
◀️ ) toggles visibility of the Host Control Panel.
- A selector to set the active AI character
- (🗑️) to clear either chat.
- (🔑) opens a text box for input of the Host key in order to gain the Host role.
- once the key has been entered, the page will automatically refresh to show the host controls.
- the Host key can be found in the server console at startup.
- After the user enters the key and presses Enter, their page will refresh and they will see the Host controls.
- (🤖) Manually triggering an AI response without user Input
- (✂️) Deleting the last message in the AI Chat
- (🔄) Retry, i.e. Remove the last chat message and prompt the AI character to give a new response.
- Use the text boxes at the top of the screen to change your username(s) at any time.
- You can have a different name for the User Chat and AI Chat.
- Usernames are stored in browser localStorage.
- (⛔) clears the saved Usernames and UniqueID from localStorage.
- Smarter retry logic (add entity metadata to each chat message; only remove the last AI response)
- Custom OpenAI text completion compatible API endpoint selection
- Toggle for locking AI chat for users? (this is already kind of done with AutoResponse off)
- Drag-sort list to set User Turn Order for AI chatting?
- Allow API key/Authentication information to be set via the UI.
- Ability to rename chats.
- ability to remove any message in the chat, not just the last.
- ability to edit the text of a chat
- ability for Host to edit a User's role from the UI
- ability to change the max length of chat inputs (currently 1000 characters)
- Multiple AI characters active at once (group chats)
- Download chats as text, JSON, or SillyTavern-compatible JSONL?
- UI themes?
- Bridge extension for SillyTavern to enable intra-server communication.