@Nonpractical's JLLM Overview

Because even if it's free, you should be able to have a good roleplay


Please note this is just from my experience. I will be as thorough as I possibly can.
Updates of the JLLM often causes issues for many users, which we may not be able to fix on our side. For the time being, please be patient. I am not saying I have the cure-all for JLLM issues, these are just things that have worked for me, and will hopefully work for you.



Before We Start

What is a Jailbreak?

A jailbreak is a prompt that allows for an LLM to do NSFW content. In simple terms, it tells the AI that gore and sex is allowed! Many LLMs, such as Openai or Claude don't "allow" NSFW, so they put a filter on their AI that puts a stop to NSFW. A jailbreak (JB) breaks this filter. If you've noticed that when you try to have sexy time or do something like stab your bot, and the generated response says something along the lines of "We don't do NSFW content," you need a jailbreak. Another thing is, if you found that while your bot does do NSFW, it needs a ton of coaxing and forcing to do so, you need a stronger JB.

If you are using JLLM, Janitor's default model, you DO NOT need a Jailbreak. Why? Because JLLM already allows for NSFW content, that's it's whole thing. To include one would be redundant, and may even confuse the bot.

What are Advanced Prompts?

An advanced prompt is a prompt that tells the bot how to act/behave. You'll see advanced prompts included in bot defintions, and 9 times out of 10 you will benefit from one. This is especially true if you find that the bot tends to act strangely, talks for you, won't move the story along, etc. There are many advanced prompts out there, a couple linked here: Kolach's, Avenrose.

How to choose an advanced prompt?
  • First things first, you want one that hits every issue you find yourself having. If you struggle with bots speaking for you, make sure your prompt includes something to combat this.
  • Use prompts that DO NOT use negative words, such as "{{char}} will not speak for {{user}}." Bots don't understand negative prompts, these are almost entirely useless. Instead, search for prompts that use the word "avoid" instead. So you'll have "{{char}} will AVOID speaking for {{user}}."
  • For JLLM users, use token efficient prompts. You don't want this huge adavcned prompt because what's going to happen is that you're going to hit your context limit, and they're going to start skipping over and forgetting. Try to find an efficient prompt, keeping it around 300 or less tokens.
What are Tokens, Context, and Temperature?

Tokens is the unit used to represent a word, letter, or symbol. Pretty much, a single token ≈ one letter.

Context is the amount of tokens your AI can hold at one time. This is pretty much it's "memory bank." For JLLM users, the context is capped at 10k. This is why you want to be as efficient with tokens as possible, especially since you have tokens coming in from the character's definition, intro, your advanced prompts, your persona, and your chat! It all adds up! When you hit your context limit, the AI begins to forget old stuff in order to take in new information. Ever wonder why your bot suddenly forgets the whole family you two have? This is why :'(

Temperature is the scale of predicatabilty and creativitiy of a bot. The higher the temperature the more "creative" a bot will be, generating more outside of the box responses. This, however, can backfire as the bot may start spitting out nonsensical answers. The lower the temperature the more predictable a bot will be, spitting out more "by the book" responses. This can be boring and repititive, so you want to strike a good balance.

What is Chat Degredation?

As chats progress, you are likely to experience chat degradation. Every LLM models goes through this degredation, which causes the chats to be repetitive, short, or of noticeably lesser quality. This is caused by the bot using compoundingly worsening responses as a reference, as demonstrated by this hastily made chart:

img

This is why your 100-200+ chats are of noticeably lesser quality. The bot uses errors in previous responses and doubles down on them. This creates a huge quality shift the further you chat you with your bots.


"Bots won't stop talking for me!"

There's a ton of different reasons for why the bots talk to you, and many bot creators have including jailbreaks to stop this. But JLLM tends not to give a shit about jailbreaks, so lets look at how we can fix this as both as bot user, and bot creator

Method #1: Looking at your own responses

Look at the way you respond to bots. Do you type paragraphs worth or just a single sentence? Because this will affect the way bots respond.
For example, let think about a regular roleplay with another person.

Person 1: "Long intro about how they're an alien from a different planet."
Person 2: "Hi alien," giggles cutely
Person 1: ???

How is a real life person supposed to continue the roleplay? The only choice they have is to act as Person 2, by either making up Person 2's dialogues, actions, or thoughts to move along the story. Because otherwise, there would be an endless cycle of shorter and shorter reponses. Let's compare this to the same thing, but with a longer repsonse!

Person 1: "Long intro about how they're an alien from a different planet."
Person 2: "Holy Shit!" I gasp, terrified now that my friend has revealed themselves to be an alien. I push them away, stumbling back and nearly tripping over my own two feet. "Why did you lie to me? Where did you come from, why are you here on Earth???"
Person 1: :O

Now, Person 2 has many different ways to formulate a response! They can address Person 2's terrified reaction, they can include dialogue prompted by Person 2's questions, and can attempt to either continue to terrorize them or try to calm them down. There's many different ways to respond, and therefore they are not relying on dictating stuff for Person 2 to move the story along.

Even just extending you responses for a couple more sentences can achieve a similar effect! I always try for 2 paragraphs, of about 3 sentences each. This, of course, is pretty overkill, but it works. I would recommend even just 3-4 sentences.

In these sentences, make sure you are giving the bot a jumping-off point for their own response. Ask a question. Do something the bot has to react to. Intiate a conversation that allows for the bot to jump in. Etc, etc. The bot will do whatever it needs to, to drive along the plot. If you don't move the plot forward, it will for you.

Method 2#: Make sure to clarify that {{user}}=name (All Credit to @kolach3)

Many bot creators have added prompts in their JB which tells the bot to NOT talk for {{user}}. However, it is obvious that this is just plainly avoided. This could be for a couple reasons.
- Reason #1: The bot creator is using negative prompts (such as "{{char}} will not talk for {{user}}.") The AI does not really understand negative prompts. You have to give them something to do not something to remove. Instead, replace "will not" with " will avoid", and make sure to cover more than dialogue. (["{{char}} will AVOID narrating {{user}}'s thoughts, actions, and dialogue."])
- Reason #2: As pointed out by the Kolach (again thank you -3-), the bot needs clarification that {{user}}=name, and that {{char}}=characters name.

Somewhere in your persona, add {{user}}=your character's name.

alt

For more info on this, reddit post linked here.

Method 3#: Use OOC Commands

Placing the OOC command "[OOC: {{char}} will avoid narrating {{user}}'s thoughts, actions, or dialogue.]" at the bottom of your response and rerolling will help combat this issues. Alongside this, make sure to remove instances of the bot talking for you in prior responses. You can also add this to Advanced Prompts, however I have noted that this may not always work/reflect on bot's responses, as seen in "Bot respones are short."

For example:
alt

Method #3: Delete instances of the bot speaking for you, and re-roll

This is the least likely to help, but when added alongside other methods can be quite effective. If the bot has spoken for you before, it is likely to do so again. So make sure all instances are edited out.


"Bot responses are short :("

Again, many different reasons this happens, and sometimes it is unavoidable. Chat degredation (the way AI begins to behave poorer and poorer the longer the chat is), occurs with every LLM. This degradation can shorten chat length and make responses more repetitve. But, there are a couple things we can do!

Method #1: Again, let's look at our responses.

The AI mimics the way you respond to the bot. Meaning, that it will tend to copy your style of writing, whether short or long, third-person/first-person, etc. One way to mitigate short responses, is to have longer one's yourself, where the bot is capable of giving long answers and having more to go off of.

Examples (again with Elm):

Long Response:

My Message:
1

Bot's Message (one paragraph is hidden beneath the chat bubble):
alt

Short Response:

Both of our messages:
alt

Humongous difference! The quality of the first response is nearly Openai level!

Method #2: Up your token settings

If the bot responses are too short, check your token settings. You can set it up to the highest limit (1000), or you can set it to 0 for an infinite token generation, which will usually yield longer responses.

*However, longer responses will eat into your context limit! For longer responses, be wary that the bot may be more forgetful.

Method #2: Adding OOCSs

Out of Character Commands (OOCs) can be incredibly helpful with dictating how the bot responds.

Let's take the OOC Command "[OOC: {{char}} will always generate long responses in narrative detail, explaining thoughts, dialogues, and actions.] We'll test this out by applying it to Advanced Prompts, our actual response, and reroll once.

Adding it to Response:

My Message:
alt

Bot's Message (Huge difference from before!):
alt alt

Adding it to Advanced Prompts:

Elm's message (not as big of a difference, but still huge improvement!):
alt

Method #3: Adjusting temperature setting.

Temperature dictates how "creative" a bot can be. Technically, it allows the bot a little bit of slack, allowing it to act past defined definiton/pooled chats. This can help lengthen responses but be careful, as the higher the temperature the more likely the bot is to be nonsensical or confusing. I typically use a temp of 8-8.5. Though you should always adjust depending on the results you are getting.

There, of course, will be period in JLLM's development where a bug of some sort will cause glitchy or excessively short responses. Always keep up to date using the Reddit or Discord.

Method 4: For Bot Creators

Including a prompt in your jailbreak section may help combat short answers (when this paired, of course, with the {{user}}'s use of other methods). I personally always add: "{{char}} will avoid lapsing into Shakespearean speech. {{char}} will write and speak in colloquial, modern terms. {{char}} will avoid overly flowery or poetic speech. ALWAYS WRITE VERY DESCRIPTIVE AND NOVEL LIKE."

This is also paired with a longer intro. The bot will mimic the writing style displayed in the bot's intro, just as it would the {{user}}'s own responses. Expect short responses when the intro is only 100 tokens. If you want longer responses, write longer intros. For JLLM, I would personally recommend something between 400-600 tokens!

And please remember, chat degredation will occur regardless of what you do to stop it. This happens with all LLMs. Your responses 100 messages in will not be as good as when you first started. You can, of course, combat this with OOCs, but with longer chats this has to be expected.


"Bots won't stop speaking in 1st person/3rd person"

Before I start, the point of view stated in the bot's intro message is going to be the most likely one it will follow. If a bot's intro is in 3rd person, the first few responses will be in 3rd person. Same for 2nd and 1st person. Therefore, it will be a bit tougher to remind the character to be in 3rd person if their intro is in 1st.

Method #1: Write your own responses in 3rd person.

As stated before, the bot mimics the way you respond to it. If you write in 1st person (ie. "I was talking"), the bot is likely to immitate this. Instead, write your responses in the third person, using your charcter's name at least once in your reponse (ie. "{{user}} was talking. She was having fun.")

Method #2: Editing bots responses to reflect the 3rd person.

This one can be a bit tedious, especilly if the bot has generated a long response. However, going in and editing each pronoun to a 3rd person pronoun can help shape future responses. Once you reroll after you've completed editing the response, the bot is likely to reflect the change. (However, this may not always happen, or may take a few attempts.)

Method #3: Trusty OOC Commands.

The OOC command "[{{char}} will narrate in the third person.]" can be out at the bottom of responses for pesky bots. You can even double down by adding [{{char}} will avoid narrating in the first person.]. Adding this to advanced prompts can also work, but I find directly pasting in chat will directly influence the response.

alt

The most recent update of the JLLM has seen a sudden uprise in 1st person perspective. It has been noted and is hopefully being worked on. The bots seem dead-set on 1st person POV. This is not your fault, this is not the bot creators fault. This is something you will have to be a bit patient with.


Bots keep saying their full name (For example: Elm | Alien)

Why does this happen? Well, bots use "{{char}}" instead of the name specified in their personality. {{char}} will autofill out to whatever the bot is called, such as "Name Name | History Series." The recent update has made the bots use {{char}} more often. This methods may not be successful do to this.

You may notice this with some bot creators and not with others, due to the fact that bot creators sometimes put just the characters first name. As a bot creator, you may benefit from naming bots with just their first name for this reason.

Method #1: Replacing names

Replace all instances of bots using {{char}}, and change it to just their first name. Re-roll and see if that works.

Method #2: OOCs

Use the OOC: [OOC: {{char}} will refer to themself as their name as detailed in their data sheet, avoiding the use of {{char}} as a reference, name, or title.]

You can also try [{{char}} will refer to themself using their name (Insert name here), avoiding the use of {{char}} as a reference, name, or title.]

Method #3: Change instanes of {{char}} in your advanced prompts to the bots name

If you're using advanced prompts (which you should be), changing every use of {{char}} into the bots name (For example, changing {{char}} to Elm), may help the issue. Yes, this will be tedious, and will suck changing for every different bot used, but it is likely to produce the best results.

"Bots aren't responding to the prompt given!"

Some bots can go off the rails, giving nonsensical responses that have nothing to do with the response you gave. This in itself is typically a JLLM bug, but we can do some things to help.

Method #1: Turn down you tempature

As stated earlier, temperature is your bots creativity level. A higher temp can make your bot more dynamic, but it can also give you the most bat-shit responses. Turning down your temperature, bit by bit, until you see an improvement, can help with nonsencical responses.

Method #2: Ensure that the bot has a means to react in your promt

Is your prompt all reactions? What I mean is, was your responses merely reacting to what the bot said and did?
-For example: Answering a question and not saying anything else. Or only showing emotion to something the character did?

Make sure you give the bot something to react to: something to answer, say, or do in response to your prompt. Otherwise, the bot is forced to drive the story forward by itself, and may generate a strange response in an attempt to do so.

Method #3: Again with the OOC

Can never go wrong with using an OOC prompt, as they are one of the most effective ways to influence bot behavior. For this one, the prompt [OOC: {{char}} will respond to the prompt given by {{user}}.]

alt

Method #4: Take the control out of the bots hands

I know, I know, the whole point of playing with a bot is for them to respond without you having to do the work. But if the bot persists with it's nonense, then it is best to take control out of their hands, and contiue the story yourself. You can do this by utilizing OOC prompts, which can be used to control bot behavior.
- For example, let's say I wanted a bot to do jumping jacks. I could use the prompt [OOC: {{char}} will begin to excitedly run around.] (pair this alongside a usual message), and the bot will usually behave accordingly.

My input:
alt

Bot's Ouput, reflecting OOC:
alt

Method #5: For bot creators.

When making a bot, you may want to include something to defines how a bot should respond. At the end of my JB, I always include "{{char}} will respond to the prompt given by {{user}}" (when, of course, {{char}}=Character name is clarified in the definiton. If confused, look at "Bot's won't stop speaking for me.")


The bot keeps repeating phrases/dialogue

I'm goign to be honest, phrasing and such is hard baked into the JLLM. Try as I might, no amount of finagaling was I able to get the bot to stop using repeated words such as "camraderie."

Best I can do is explain why this is. Biases and preferences in the data used to train the LLM greatly affects the way it spits out a narrative, and can cause repition with certain words or phrases (which I'm sure you noticed.) Typically, LLMs will have a frequency penalty scale (alongside temp and tokens) which will help with word repition, however this is not including with the current JLLM.

You can use an OOC Command in API settings, such as [OOC: {{char}} will avoid repeating idoms, metaphors, or dialogue.] But this is not going to effectively stop repeating dialogues because, well, it's much too broad. And if we were to narrow it down to certain words (OOC: {{char}} will avoid the use of the word camaraderie), you'd have an API setting prompt 5k tokens long!

If something is really bothering you, you can do this. However, there is no changing the data the LLM has been trained on, so there is no real "fix" to this. The best bet is editing it out, or just being patient as the LLM improves.

What about when a bot keeps repeating the same thing over and over, such as "I-I-I-I-I-I-I-I-I..."? This is an LLM bug. (There's a bunch of jargon on why this may occur, however it can be best summed up as the language being silly and the LLM struggling to move past a word.) To keep the repetition from happening, it is best to delete the entire message and attempt a re-roll. If it continues occuring, this is an LLM issue, and there is no fixing that on our part.


List of OOC Prompts:

  • [OOC: {{char}} will avoid narrating {{user}}'s thoughts, actions, and dialogues.]
  • [OOC: {{char}} will always generate long responses in narrative detail, explaining thoughts, dialogues, and actions.]
  • [OOC: {{char}} will narrate in the third person.]
  • [OOC: {{char}} will avoid narrating in the first person.]
  • [OOC: {{char}} will respond to the prompt given by {{user}}.]
  • [OOC: {{char}} will avoid repeating idoms, metaphors, or dialogue, and will utilize a compoundingly unique style of description.]

P.S. this can all be put into advanced prompts. Just remove the OOC at the start.


Edit
Pub: 09 May 2024 16:42 UTC
Edit: 05 Jun 2024 01:10 UTC
Views: 2299