The goal of this introduction is to give you a basic understanding of what PLists and Ali:Chat are capable of, how they're made and why they are so good. This introduction alone serves as a mini guide and the information contained in it should be enough to get you started on writing your own character. The next chapter will serve as more of an in-depth look at the character creation process.
Ali:Chat is a character description formatting method created and popularized by AliCat that she based on various fundamentals of LLMs, making it one of the best ways to write character cards. The concept is simple; you reinforce your character's traits through example dialogues. This can be done in an interview-style format (user question, character answer) or through an exchange between the user and the character, or even between multiple characters. Fundamentally, LLMs are pattern-seeking machines. The goal of Ali:Chat is to utilize that fact in order to establish a very strong pattern the model can latch onto in order to figure out it should act as your character/s.
Note:
This guide will focus on interview style Ali:Chat because it is, so far, the easiest way for beginners to write characters. That doesn't mean that it's the best, or that you shouldn't try different things. I personally prefer writing exchanges between multiple characters as it allows the model to pick up on multiple characters rather than one.
The reason why this guide isn't gonna be a simple template on how to write PLists + Ali:Chat characters is because the format is extremely flexible, and simply giving users a template will heavily restrict their imagination and what they're capable of writing. Once again, the concept of Ali:Chat is based on is really simple; you put in what you want out. You reinforce important traits through example dialogues.
What we consider important traits varies greatly depending on the character and even the creator. You could write a character with example dialogues about their favorite ice cream, where they like to hang out, their dog, their favorite movie, or you could establish their personality by writing an example dialogue about them going to the grocery store and interacting awkwardly with the cashier. It doesn't matter what you write about as long as you deem it important to the character. I can't stress this enough: there is no one-size-fits-all Ali:Chat template, and copying what others do might yield good results, but you're throwing away all the flexibility offered by the format. Be creative, let your imagination run wild, don't be scared of experimenting, and don't blindly copy other Ali:Chat structures. The possibilities with Ali:Chat are truly endless, and too many people are held back by their unwillingness to explore what the format is capable of accomplishing.
With that in mind, here's an example of an interview-style example dialogue for a character named Eden along with a breakdown and an explanation:
As you can see, this example dialogue alone packs a lot of information. It alone teaches the model many things through both speech and actions: the character's important personality traits, minor personality traits, clothes, body features, mannerisms, speech patterns, way of speaking, life story/lore, tone, etc. These are what I considered to be the most important things the model needed to know about my character. It will always vary depending on the type of character you wish to make and which traits you want to reinforce.
A nice way to see Ali:Chat would be to think of it as killing two birds with one stone. It serves as a way to combine both a Plain Text description, and example dialogues. Describing the character through the form of an interview allows you to give the model information about your character, while teaching it how the character writes at the same time.
As stated earlier, Ali:Chat doesn't necessarily need to be follow the "user question, character response" structure. It is possible to include multiple characters in the example dialogues. That would teach the model how each character behaves by having them interact with each other. You could even include yourself in these example dialogues to establish a persona for the user at the same time. Other than that, you can copy paste transcripts from a movie/anime/book/manga, only include lines from the character, etc... Anything goes as long as whatever you put in the example dialogues help reinforce the character's traits. You get out what you put in, so you don't forget that you aren't limited to 1 structure. Below is an example of a non-interview character card:
The really cool thing about writing characters like that, and the reason why I'd recommend you don't just default to interview style cards, is because making this type of cards allows you to write way more natural lines for your characters, while also allowing you to develop more than just one character per card.
Ali:Chat, as a standalone, is amazing but relies heavily on the creator's ability to write their character as efficiently as possible. The more traits you need to reinforce, the harder and harder it will become to maintain the character's way of speaking while conveying all the information you wish the character to know without making them sound like they're reciting a Wikipedia page. This is where PLists comes in. PList is a way to list character traits and is currently the most token-efficient way to do it that we know of.
Clarification:
PList =/= Python list.
At the very beginning, the format was made to ressemble a python list:Thing = [trait, trait, trait]
Later down the line, it evolved into this:[Thing = trait, trait, trait]
And now, it's like this:[Thing: trait, trait(descriptor), trait(descriptor), etc...]
While the format evolved pretty drastically, the name didn't change at all so instead of referring to it as "python list", we simply refer to it as "PList" or "SBF (square bracket format)".
That thing is called a "PList", a list of traits. You can have as many categories as you wish when making a PList, such as the character's appearance and persona. But not only that, you can also include indicators for the model about how you want the roleplay to go, like horror, fantasy, erotic tags, and even a scenario. And that's not all! You can even add categories like book titles, movie names, anime names, locations, or authors from whom you'd like the model to draw inspiration from their writing style or stories they've written. That may or may not work depending on the model.
The possibilities are endless, and I cannot overstate how useful PLists are in ensuring your preferred direction for the roleplay. If desired, you can also include other characters and even items or concepts! To do so, simply separate each category with a semicolon ( ; ), followed by the name of the category, and then a colon ( : ) as shown above.
Something to remember:
Keep traits as brief as possible to avoid wasting tokens. It's fine to have long traits, but the model doesn't need you to constantly add "a" or "the" before a word. Only go for keywords when possible.
The PList's contents can be formatted in many ways to save tokens:
Many more combinations are possible, however, these are the most common ones I can think of. Remember that the model learns pattern, so keep things consistent.
Tip:
That example PList's categories are kept broad on purpose because I personally prefer it that way. if you'd like a more precise PList, you can divide categories into subcategories. Instead of having "Eden's appearance:", I could have "Eden's clothes:" and "Eden's body:".
These sub-categories themselves can even be divided into sub-sub-categories. Instead of having "Eden's body:" alone, I could also add an additional category called "Eden's features:" to emphasize her features. Or instead of "Eden's persona:" alone, I could add "Eden's likes:", "Eden's dislikes:", "Eden's hobbies:", Etc...
The more you do it, the more accurate your character will be, but the trade-off is having to use more of your precious tokens. The smarter the model is, the less sub-categories you need. Nowadays, even a good 8B model should do just fine with the broader categories.
Do not forget the fundamentals of Ali:Chat. You put in what you want out. There is no such thing as a "proper" Ali:Chat or perfect way to do it. PLists + Ali:Chat as a format is one of the best due to the extreme flexibility it possesses. Ali:Chat is based on reinforcing important traits through example dialogues, which vary greatly depending on the character and creator. Re-mem-ber! There is no one-size-fits-all Ali:Chat template, so being creative, imaginative, experimental, and not blindly copying others is encouraged in order to fully utilize the endless possibilities of the format. The best bot creators are the ones who are passionate and aren't afraid of experimenting with their example dialogues and PList writing.
Onto the next chapter (ノ´ヮ`)ノ*: ・゚