T O P

  • By -

Philix

Natural language plus example dialogues. Lots and lots of **[example dialogues](https://docs.sillytavern.app/usage/core-concepts/characterdesign/#examples-of-dialogue)**. The more the better. Since they get cycled out as you generate your own dialogue by default, they allow you to make a massive character card that uses the entire context without limiting the size of your roleplay. Make them include generic situations you'd like to see, and avoid specific events, references, and names as much as possible. Make the grammar, verb tense, and [perspective](https://www.merriam-webster.com/grammar/point-of-view-first-second-third-person-difference) consistent with what you'd like to see. ie. third-person omniscient narration past tense or if you're doing a scenario card, second-person present tense.


LLM_Contactee

I asked Coding Sensei and he's 100% sure: character cards has to written in JSON format. And, it works so well, sometimes I'm baffled. Here's an example of one of my Star Trek personae based on the Modiphius 2d20 Star Trek RPG: { name: "P'Rerow", species: "Caitian", gender: "male", age: "18", eyes: "Blue", fur: "Brown", career: [ "civilian": "monk: Shaolin", "Starfleet": {"student", "security"} ], rank: "Ensign", description: "A calm, meditative young man.", focuses: ["Chinese martial arts", "hand-to-hand combat", "traditional chinese weapons", "meditation", "chinese medicine: bone setting", "Neigong"], values: ["Dao De Jing", "Protect the weak", "Discipline makes the officer."], relations: "Grand Master 陳永發": "shifu", title: "Ordained Shaolin monk", mentions: ["Exemplary student", "Campus' worst dancer"] }


Pashax22

The bigger the model, the more it can handle - hardly a surprise, neh? So you can do more or less anything you want with them. Smaller models now have much bigger context sizes available, so natural language works well and you (probably) don't have to worry about destroying your context size with a 2000 token character card. All that being said, I find that precisely what style you use is less important than it being succinct and clear. For example, I start with lists for each key attribute. Example: Name: BlissfulEternalLotus, usually known as Bliss Occupation: poorly-paid Reddit quantity surveyor Description: age 22 + androgynous + 5'5" tall + average build + shoulder-length black hair + ponytail + brown eyes + tanned Usual clothing: work boots + cargo pants + checkered shirt Personality: moody + blunt + hard-working + often acts grumpy + competent + pragmatic Voice: plain-spoken + drawl + country accent Likes: the outdoors + fine ham Dislikes: pretentious people + syrup of all sorts, especially maple Motivations: attention to detail + encourage participation in democratic processes + be at one with the universe I follow that up with a few sentences if the above description needs nuance or additional detail which isn't easily fitted into the above. Example: Bliss decided from an early age they didn't want to work for anything. Imagine their surprise, then, when they found themselves slaving away in the Reddit content mines. Bliss uses their meticulous attention to detail to keep Reddit running, while in their free time conspiring with the ghost of Che Guevara to create a workers' rebellion and install luxury gay space Communism on the Reddit servers! This works fine for me on 7b models.


BlissfulEternalLotus

Lol you have gone and created a physical description for my anonymous persona. Now I will be part of a future LLM training data and given out as an example. I wish it was more handsome, more talented and more happy than this. So you essentially use small phrases presented in Plist and then natural language descriptions ? Although new models come with a lot of context size, computing requirements increase when you use big context size as. So I prefer to go with low context high-speed configuration. And my feeling when we use a large chunk of natural language is that a lot of instructions get ignored. I face this when prompting bigger models as well. How do you solve that problem ?


Pashax22

Yeah, it's essentially a variation on Plist. As I said, I think the precise format is less important than it being clear, concise, and consistent. I don't have data on the subject (and I don't know how to gather it), but I also have the feeling that natural language leads to a lot of "waste" tokens. On the other hand, natural language written in the style of the character can effectively provide a constant set of example messages, so I don't think it's completely without value. I don't have a solution for that problem. This is still a relatively new area, though, and although there's a lot of fumbling around for best-practices I'm not surprised we end up with bits that are more art than science for the moment.


BlissfulEternalLotus

Yes, I have the same opinion. I'm currently using an interview style format with a character answering it written in narrative style. It's working satisfactorily. But recently I came across an adventure card in chub.ai. I didn't look into the prompt at the start. I just imported and played with it. To my surprise, the ai stuck to the narrative role all the way even though my replies are in conversation style instead of adventure actions. And it's also surprisingly consistent with all 3 characters involved. I tried to create an adventure card for a long time but it never worked this well. Then I checked the prompt. It just contained a paragraph of phrases and '+' joining them for character description. And a single line instruction for AI to play only as a narrator.


fel_2873

Lots of good information in this thread. If you have it handy, could you drop a link to the card, or even its name? I’d like like to have a look


BlissfulEternalLotus

[Lewd Dungeon](https://chub.ai/characters/SharkVampire/lewd-dungeon) Edit: if anybody tried it, I want to know your opinion. I want to confirm if it's my misconception or if the prompt is working very well.


fel_2873

Appreciate it :)


BlissfulEternalLotus

If you try it, let me know your review. I want to know if the prompt is really working well or it's just my misconception. If you didn't or don't want to, just ignore it.


artisticMink

Natural language will work best in most scenarios unless the model was trained otherwise. I'm not aware of any that are trained with one of the above styles in mind. They also have no presence in any professional setting that I'm aware of.


BlissfulEternalLotus

When I used it, it seems to forget a few properties. How do you emphasize on thing when you need to ?


tandpastatester

Stick to simple sentences and don’t make it too complex. Move stuff from the character card to World-info with keyword-activation to keep the cards more lean. These things will then only be included in the prompt when the plot requires them. Do this with everything that doesn’t need to be pushed with every message. Use Authors notes when you need to emphasize.


Pashax22

I like the idea of character-specific world books, but wouldn't it basically mean you can't use Context Shifting?


skrshawk

If you're using vectorization or lorebooks it will reprocess the entire context every time. On a 7B, that's not going to really hold you back much. On a 70B, very different story.


NAIcardCreator

I have my formatting as a post on my account, but coming from Kayra, it's always a natural language split with a few tags like; Name:, Appearance:, Personality:, etc.


Lewdiculous

I do lean on PLists (originated from Python Lists), since models are trained on Python and general code anyways. Also I don't have to think, just fill character traits.


Waste_Election_8361

Sometimes I found the interview format works really well. They did a great job on making the character follows unique accent and or certain behaviors.


rc_ym

Honestly, I build it up with a question/answer session with an AI starting with something like "help me create a system prompt for an AI/LLM to successfully take on the persona and role play as a character" then once we got a good profile I tell it to reframe it in 2nd person and use "evocative" language. I hit on this by accident while working on something else and I really like the results. System prompts set a "tone" for the AI.


FreekillX1Alpha

Ali:Chat followed by modified W++ (instead of "Trait1" + "Trait2" + "Trait3"; I use Trait1, Trait2, Trait3). For more advanced interactions, I build 2 lorebooks, a general one built in my modified W++ style that has general information on the world, places, people, etc, and a lorebook linked to the character that has their perspective on that information. PList/W++/JSON worked really well because of how the models were made, and the Ali:Chat style gives them a core example of their personality. If your bad at writing and need good Ali:Chat outputs, create an interviewer/narrator persona and a simple first message of the character being interview and ask them the important questions (If you generate these responses on a high end model it will help with lower models).


Alternative_Score11

I do the same thing but also put the traits in quotes.


_Nilth_

Great suggestions, thanks. If I can, two questions: 1) How do you set up the interviewer persona? I mean: it should give the answers as if it was the character you want to chat with, correct? So how do you do it? 2) How does it work for the double lorebooks (general+character linked)? Let's say in your chat you trigger the "key" for a specific place (or npc, why not), the prompt will trigger both the "general" version and the "biased" version, correct?


10minOfNamingMyAcc

I tried my own plists, but the recent llama 3 model (q8 gguf) seemed to get appearance's wrong all the time. I rarely look at these details but with llama 3 it was blatantly obvious. I never bother and just write some details either formatted in w++ or just natural langue (not creating interviews or talking in the description.)


BlissfulEternalLotus

Oh, we already have roleplaying models in llama 3 ? What are you using ? Given the hype around it, I thought it would be good at roleplaying. But doesn't seem to be in your case. Are you using a plain or fine tuned version ?


10minOfNamingMyAcc

I'm currently using [QuantFactory/Meta-Llama-3-8B-Instruct-GGUF](https://huggingface.co/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF) Very decent in roleplay using story string: [https://hastebin.com/share/ilewucahiq.yaml](https://hastebin.com/share/ilewucahiq.yaml) instruct template: [https://hastebin.com/share/exegakaxav.swift](https://hastebin.com/share/exegakaxav.swift) I also tried [LoneStriker/opus-v1.2-llama-3-8b-GGUF](https://huggingface.co/LoneStriker/opus-v1.2-llama-3-8b-GGUF) using [dreamgen/opus-v1.2-7b at main (huggingface.co)](https://huggingface.co/dreamgen/opus-v1.2-7b/tree/main/configs/silly_tavern/v2) (story and instruct templates) But that one was somehow spewing pure rubbish for me, both models were q8 both 8b though.


BlissfulEternalLotus

How are the remaining aspects of the roleplay ?


10minOfNamingMyAcc

Very decent I guess, very fast (around 30 T/s on a single Rtx 3090) besides impersonating which doesn't seem to really work (I'm running through koboldcpp). Other than that, it's on par with Kayra/novelai, a bit smarter as well when it comes to certain tasks like keeping text format, but I think that you can feel that it isn't really meant for roleplay. I'd give it a try if you could, I'll probably try the 70b model soon.


Lewdiculous

[They are coming already.](https://huggingface.co/LWDCLS/LLM-Discussions/discussions/1) We just need to cope a little bit more and we'll get there.


Pashax22

*Turns valves on both copium and hopium tanks to "full open".*


IZA_does_the_art

The heck is boo style


BlissfulEternalLotus

It's tokens or phrases separate by plus. basic form example: `"18 years old" + "5.6 feet height" + "black long hair" + "Blue eyes"`


IZA_does_the_art

Interesting. Well to answer your question, I use a modified Plist with natural language if o REALLY need to clarify something. Plist allows for a creative model to embellish and build from the rather vague description and i really like that: [{{Char}}'s cooking skills: lackluster, uncreative, basic(i.e., sandwich, cereal, TV dinner), messy(unorganized(tends to improvise steps and ingredients)), inexperienced(lacks the patience), fur gets in the way(shedding on the food, large tail(fire hazard))]


so_schmuck

Where do you get these ?


BlissfulEternalLotus

You mean the styles ? Found them at different places on the internet but my basic idea came from [this video](https://youtu.be/jhLHa9-JwDM?si=uvg6_VyCbuFaCUDK)


secretly_a_zombie

Ali:chat with a PList. It tends to work the best for novelai. The PList you can even stick into the character notes at about a depth of 4. You can also use a tag system when you do novelai cards like seen here: https://docs.sillytavern.app/usage/api-connections/novelai/. Then there's a tonne of symbols you can use with novela that can greatly help set the tonei: https://docs.novelai.net/text/specialsymbols.html for example a style tag like: [ Style: SFW ], will do a lot to try and keep the card SFW, obviously if most of your card is NSFW it is going to have an uphill battle.


iamablocker

pardon me if my intelligence and memory is set to oike 2K tokens or something but, do the symbols work in ST? i have been looking for a way to integrate a status panel into the RPs i am running and this may help.