# SplitClover's tech -> ![MIKU!!!](https://img3.gelbooru.com/images/80/12/801208610f855462fff13da4c0f6c820.jpg){70%:100%}<- -> splitclover@proton.me <- ->Mail me some time<- !!!danger ->Newest ST staging breaks the old dual prompt<-->Fixed(?) version: [catbox](https://files.catbox.moe/j5gdoq.json)<- *** # Rewrite extension !!!info New testing branch! See below for changelog and how to switch !!!note ->Use custom presets to rewrite sections of a message!<-->https://github.com/splitclover/rewrite-extension<- ### How to switch to testing branch 1. Navigate to `data\default-user\extensions\rewrite-extension` 2. Open a command window here 3. Run `git fetch origin testing:testing` 4. Run `git switch testing` 5. Restart SillyTavern ### How to switch back to main branch 1. Navigate to `data\default-user\extensions\rewrite-extension` 2. Open a command window here 3. Run `git switch main` 4. Restart SillyTavern ![Rewrite](https://files.catbox.moe/45im1x.gif){70%:100%} ## Now in testing! ### Support for Text Completion and NovelAI Rewrite now uses the main api which is currently selected (Chat Completion, Text Completion or NovelAI are supported) ### New Settings #### [Text Completion] Prompts Set the prompts that are sent to the LLMs. macros are supported, including {{rewrite}} and {{targetmessage}} These are raw, they will be sent unmodified except for macros, so if you want instruct you need to add them manually #### Use streaming Whether the rewrite should be streamed or not #### Custom token limits Sets custom token limits. There are three available types: - fixed - dynamic additive - dynamic multiplier "dynamic" calculates the token length of the selected text and either adds/subtracts or multiplies a factor to the token length #### [Chat Completion] Override preset max tokens Whether to use the max tokens given by the preset or to override it with the rewrite limits #### Remove Prefix/Suffix LLMs like to encase their replies in delimiters like `"` or `` This allows automatic removal of fixed prefixes and suffixes. This is strict and considers blank spaces! *** [TOC1] *** # Greeting placeholder extension !!!note ->Easily add custom placeholders to your greetings!<-->https://github.com/splitclover/greeting-placeholders<- ![placeholders](https://files.catbox.moe/5mj3y1.png) *** #QR-Presets ## Dual jailbreak Prompt A QR-Preset to chain two api calls with different presets and models. Preset 1 is used to gen a raw reply, Preset 2 is used to refine it. Support to set different apis, models and proxies for the two steps. *** ### Install and setup !!!note Download the QR-Preset: \[[catbox](https://files.catbox.moe/j5gdoq.json) - last updated 31 Jul: fixed(?) version] !!!note See [Example Prompts](https://rentry.org/splitcloverqr/#example-prompts) to test djb right away. !!!warning experimental qr with a third preset for the fun of it - don't use it unless you want a third [catbox](https://files.catbox.moe/ciyu5f.json) *** ![Import preset](https://files.catbox.moe/4pamdc.png) !!!info Import and activate the QR-Preset using the Quick Reply extension You should now see these buttons: ![Buttons](https://files.catbox.moe/4pp8bg.png) !!!info Press "⚙️" to open settings *** #### Select presets The QR-Preset needs to know the names of the target prompt-presets. Look up their names here: ![Completion Preset tab](https://files.catbox.moe/ddpg8j.png) Set the names in "Set Preset Names", you can test if they work using the buttons "Preset 1" or "Preset 2" ![Set Preset Name](https://files.catbox.moe/7xdh5v.png) *** #### \[Optional] Set models !!!warning This is no longer needed as the issue has been fixed on the staging branch Since /preset randomly defaults to models like gpt-3.5 or claude-2.1, this feature automatically sets the right api+model. Note that the variables set here are to be used by commands /model and /api. #### \[Optional] Set Proxies !!!warning This is no longer needed as the issue has been fixed on the staging branch The dev settings include optional proxy settings, in case those need to be set too. Shouldn't be required if the presets have the right proxies set already. Note that the variables set here are to be used by the command /proxy. #### Dev settings If you want to hide some redundant buttons, set proxies or enable a warning to avoid losing unsaved presets: ![Dev settings](https://files.catbox.moe/f5ztu2.png) *** Edit djbReply has a known issue, if the screen resolution is too small then the buttons below are not visible. Dev settings has a fix for compatibility. ### Uninstall This preset sets a global variable that persists **even if the QR-Preset is deleted**. Either open the settings button of the QR-Preset and flush the variable there, or paste this command in chat: ``` autoit /flushglobalvar djbSettings ``` To remove the qr-preset completely, first select djbPrompt in "edit qr" and press delete ![uninstall](https://files.catbox.moe/frh1ej.png) *** ### Usage !!!info Make sure to test if prompt switching works properly, use the buttons "Preset 1" and "Preset 2" to check. Instead of sending the user message as usual, press the" \[djb] Send button". This starts the whole generation process. Note that it automatically adds the input text to chat, but that's optional. #### Swipes After \[djb] Send has been used once in the current chat, a variable gets saved that persists locally. Swiping only "rerolls" the second prompt, keeping the first part untouched. The button "Edit djbReply" shows the results of Prompt 1 and allows editing. #### Delete message/Regenerate There's an optional Delete message button that can be used to delete the latest message. The button checks if the message has been sent by {{char}} to avoid accidental deletion of system or {{user}} messages. #### Impersonation Same as "\[djb] Send", use "\[djb] Impersonate". This calls /impersonate to change the prompt/output. #### Include last N messages !!!warning This is not extensively tested, do give feedback if issues occur. Seems to be working though To avoid having to send the entire chat history to Preset 2, this macro {{getvar::recentMessages}} has been added. It comes with a few caveats, the roles Human: and AI Assistant: get discarded (ST doesn't support that). That means to distinguish the messages the chat names are used instead. (This can be toggled off, so all messages get combined into one continuous string) To enable this macro, open the dev settings, and set the recentMessages amount to the number of messages to include (positive integers). This will automatically copy the messages before Preset 2 gets sent, use {{getvar::recentMessages}} to include them. ### Prompts #### Creating prompts for djb !!!note This section is for creating prompts, not about using the qr The first prompt generates a reply that can be used by the second prompt. Whether it's some CoT, a summary with objectives or a normal reply - the point is that the second prompt uses that reply to refine and or create improved results. To include the generated reply from prompt 1 use the macro {{getvar::djbReply}} in prompt 2, this will be replaced when calling the second model. Version 1.11.8 added the option to disable chat history and examples, this can be useful for the second prompt. Additionally other macros could be helpful like {{lastmessage}}, see /help macros for more. Streaming could be turned off for preset 1 to hide the first step. #### Example prompts - Recommended: [Pitanon's dual presets](https://rentry.org/pitanonprompts/#dual-presets) - [bloatmaxx](https://rentry.org/splitmaxx) - [writing style](https://rentry.org/writing_style) *** ->![Me-ku](https://img3.gelbooru.com/images/33/e8/33e82cf706871f75e04fa7924c5b157f.png){70%:100%}<- ### Special Thanks !!!note This QR-preset was made as a collaboration with [pitanon](https://rentry.org/pitanonbots), his idea made this possible. *** ## Auto example-xml toggles Tired of always toggling the xml wrapping the example messages? ![xml](https://files.catbox.moe/x3iv5w.png){25%:100%} Same here, so I made this little QR action to automate this in the background. This requires a bit of setup, but it shouldn't be that hard. 1. Download the QR \[[catbox](https://files.catbox.moe/yssn4m.json)]: last updated 26 Jun 2. Import it: ![Import preset](https://files.catbox.moe/4pamdc.png){30%:100%} 3. Activate it, "Global Quick Reply Sets" - add it there ![](https://files.catbox.moe/yife0u.png) 4. Open the command to edit the entry names: ![Open edit](https://files.catbox.moe/jic6b0.png) 5. Enter your names to toggle here: ![Enter names](https://files.catbox.moe/u8a6js.png) !!!warning This only activates when you send a message - regen or swiping won't.