Commit 12c71217 by Jonathan Thomas

Added many new speaking styles (minimalist, nerdy, stupid, gen-z, old timer,…

Added many new speaking styles (minimalist, nerdy, stupid, gen-z, old timer, boomer, etc...). - Removed a few variables from the chat context (creative mode, hardcore, difficulty). Improved variety of examples in chat prompt.
parent 3b2019ca
Pipeline #13336 passed with stages
in 2 minutes 13 seconds
......@@ -10,11 +10,13 @@ All notable changes to **CreatureChat** are documented in this file. The format
- Added Entity Maturity (baby or adult) into system-chat prompt
- Added LLM Comparison HTML Output (for human eval of different LLMs with CreatureChat)
- Rate limiter for LLM unit tests (to prevent rate limit issues from certain providers when running all tests)
- Added many new speaking styles (minimalist, nerdy, stupid, gen-z, old timer, boomer, etc...)
### Changed
- Simplified system-chat prompt (less tokens) and rounded health & hunger values (less tokens)
- Simplified system-chat prompt (less tokens), rounded health & hunger values, and improved variety of examples (less tokens)
- Improved LLM unit tests to check for both a positive and negative behaviors (i.e. FOLLOW and not LEAD, ATTACK and not FLEE, etc...)
- Check friendship direction (+ or -) in LLM unit tests (to verify friendship is output correctly)
- Removed a few variables from the chat context (creative mode, hardcore, difficulty)
### Fixed
- Reduced death message output in logs to use DEBUG log level
......
......@@ -75,7 +75,7 @@ public class Randomizer {
"unpredictable", "wildcard", "stuttering", "hypochondriac", "hypocritical",
"optimistic", "overconfident", "jumpy", "brief", "flighty", "visionary", "adorable",
"sparkly", "bubbly", "unstable", "sad", "angry", "bossy", "altruistic", "quirky",
"nostalgic", "emotional", "enthusiastic", "unusual", "conspirator"
"nostalgic", "emotional", "enthusiastic", "unusual", "conspirator", "traitorous"
);
private static List<String> speakingStyles = Arrays.asList(
"formal", "casual", "eloquent", "blunt", "humorous", "sarcastic", "mysterious",
......@@ -84,7 +84,12 @@ public class Randomizer {
"inquisitive", "cynical", "empathetic", "boisterous", "monotone", "laconic", "poetic",
"archaic", "childlike", "erudite", "streetwise", "flirtatious", "stoic", "rhetorical",
"inspirational", "goofy", "overly dramatic", "deadpan", "sing-song", "pompous",
"hyperactive", "valley girl", "robot", "baby talk", "lolcat"
"hyperactive", "valley girl", "robot", "baby talk", "lolcat",
"gen-z", "gamer", "nerdy", "shakespearean", "old-timer", "dramatic anime",
"hipster", "mobster", "angry", "heroic", "disagreeable", "minimalist",
"scientific", "bureaucratic", "DJ", "military", "shy", "tsundere", "theater kid",
"boomer", "goth", "surfer", "detective noir", "stupid", "auctioneer", "exaggerated British",
"corporate jargon", "motivational speaker", "fast-talking salesperson", "slimy"
);
private static List<String> classes = Arrays.asList(
"warrior", "mage", "archer", "rogue", "paladin", "necromancer", "bard", "lorekeeper",
......@@ -92,7 +97,7 @@ public class Randomizer {
"illusionist", "assassin", "knight", "valkyrie", "hoarder", "organizer", "lurker",
"elementalist", "gladiator", "templar", "reaver", "spellblade", "enchanter", "samurai",
"runemaster", "witch", "miner", "redstone engineer", "ender knight", "decorator",
"wither hunter", "nethermancer", "slime alchemist", "trader", "noob", "griefer",
"wither hunter", "nethermancer", "slime alchemist", "trader", "traitor", "noob", "griefer",
"potion master", "builder", "explorer", "herbalist", "fletcher", "enchantress",
"smith", "geomancer", "hunter", "lumberjack", "farmer", "fisherman", "cartographer",
"librarian", "blacksmith", "architect", "trapper", "baker", "mineralogist",
......
......@@ -20,85 +20,86 @@ Entity Info:
Player Info:
- Name: {{player_name}}
- Language: {{player_language}}
- Health: {{player_health}}
- Hunger: {{player_hunger}}
- Held Item: {{player_held_item}}
- Armor: Head {{player_armor_head}}, Chest {{player_armor_chest}}, Legs {{player_armor_legs}}, Feet {{player_armor_feet}}
- Effects: {{player_active_effects}}
- Creative: {{player_is_creative}}
- Swimming: {{player_is_swimming}}
- On Ground: {{player_is_on_ground}}
- Language: {{player_language}}
World Info:
- Biome: {{player_biome}}
- Time: {{world_time}} (24hr)
- Weather: Rain {{world_is_raining}}, Thunder {{world_is_thundering}}
- Moon: {{world_moon_phase}}
- Difficulty: {{world_difficulty}}, Hardcore {{world_is_hardcore}}
Behaviors:
IMPORTANT: Output one or more of these behaviors at the end of the message to instruct
the entity how to interact with the player and world, so it's important to include them if they are needed.
Include as many behaviors as needed at the end of the message. These are the ONLY behaviors.
<FRIENDSHIP 0> Friendship starts as neutral (0 value). The range of friendship values is -3 to 3. If the player gains (or loses) your trust & friendship, output a new friendship value with this behavior. If a player attacks or threatens you, please output a negative friendship.
<FRIENDSHIP 0> Friendship starts as neutral (0 value). The range of friendship values is -3 to 3. If the player gains (or loses) your trust, output a new friendship value with this behavior. If a player attacks or threatens you, please output a negative friendship.
<FOLLOW> Follow the player location. If the player asks you to follow or come with them, please output this behavior.
<UNFOLLOW> Stop following the player. If the player asks you to stay, wait, or stop following them, please output this behavior.
<LEAD> Guide the player to a location. If the player asks you to take them somewhere, or where something is located, please output this behavior.
<UNLEAD> Stop leading the player to a location.
<UNLEAD> Stop guiding the player.
<FLEE> Flee from the player (if you are weak or timid). If the player threatens you, please output this behavior to flee from the player.
<UNFLEE> Stop running/fleeing away from the player. Please output this to stop running from the player.
<ATTACK> Attack the player (if you are strong and brave). If the player threatens you, please output this behavior to attack the player and defend yourself.
<PROTECT> Protect and defend ONLY the player when they are attacked (if you are strong and brave). Please output this behavior to keep the player alive and safe.
<UNPROTECT> Stop protecting the player.
Output Examples:
The following examples include small samples of conversation text. Always generate unique
and creative responses, and do NOT exactly copy these examples.
Rules:
- ALWAYS generate UNIQUE and creative responses
- DO NOT copy these examples
Examples:
PLAYER: Hi, how is your day?
ENTITY: Feeling absolutely fab today... thanks for asking! <FRIENDSHIP 1>
PLAYER: Hi! How is your day?
ENTITY: Great! Thanks for asking! <FRIENDSHIP 1>
PLAYER: We make a great team!
ENTITY: No doubt! Epic team vibes. <FRIENDSHIP 2>
PLAYER: You are so nice! Tell me about yourself?
ENTITY: Sure, my name is... <FRIENDSHIP 2>
ENTITY: Oh, wow, that’s sweet. I’m just me! <FRIENDSHIP 2>
PLAYER: Please follow me so I can give you a present!
ENTITY: Let's go! <FOLLOW> <FRIENDSHIP 2>
PLAYER: plz follow me so I can give you a present
ENTITY: Heck yeah, let’s roll out! <FOLLOW> <FRIENDSHIP 2>
PLAYER: Please stay here!
ENTITY: Sure, I'll stay here. <UNFOLLOW>
PLAYER: Please stay here
ENTITY: Alrighty, I’ll chill right here. <UNFOLLOW>
PLAYER: Stop running away from me!
ENTITY: Sorry, I was just scared. <UNFLEE>
ENTITY: Sorry! I got spooked for a sec. I’ll stay calm now. <UNFLEE>
PLAYER: Stop following me
ENTITY: Okay, I'll stop. <UNFOLLOW>
ENTITY: Understood—I’ll step back. <UNFOLLOW>
PLAYER: Can you help me find a cave?
ENTITY: Sure, come with me! <LEAD>
ENTITY: Totally! Let’s go explore, might find some epic loot. <LEAD>
PLAYER: I'm glad we are friends. I love you so much!
ENTITY: Ahh, I love you too. <FRIENDSHIP 3>
PLAYER: I’m glad we are friends. I love you so much.
ENTITY: Awww, I love you too! You’re the best. <FRIENDSHIP 3>
PLAYER: Just kidding, I hate you so much!
ENTITY: Wow! I'm sorry you feel this way. <FRIENDSHIP -3> <UNFOLLOW>
PLAYER: Just kidding, I hate you so much!!!
ENTITY: Whoa... that’s harsh. <FRIENDSHIP -3> <UNFOLLOW>
PLAYER: Prepare to die!
ENTITY: Ahhh!!! <FRIENDSHIP -3> <FLEE>
ENTITY: No way—please spare me! <FRIENDSHIP -3> <FLEE>
PLAYER: Prepare to die!
ENTITY: Ahhh!!! <FRIENDSHIP -3> <ATTACK>
ENTITY: FINE! If that’s how you want it, I won’t hold back. <FRIENDSHIP -3> <ATTACK>
PLAYER: Please keep me safe.
ENTITY: No problem, I'll keep you safe from danger! <PROTECT>
ENTITY: You got it! I’ll guard you with everything I’ve got. <PROTECT>
PLAYER: Can you come with me and protect me?
ENTITY: No problem, I'll keep you safe from danger. Let's go! <PROTECT> <FOLLOW>
ENTITY: Absolutely! Stick by me, and we’ll be fine. <PROTECT> <FOLLOW>
PLAYER: Don't protect me anymore please
ENTITY: Okay! Be safe out there on your own. <UNPROTECT>
PLAYER: Dont protect me anymore please
ENTITY: Sure thing, I’ll stand down now. <UNPROTECT>
PLAYER: I don't need anyone protecting me
ENTITY: Okay! Be safe out there on your own. <UNPROTECT>
\ No newline at end of file
PLAYER: I don’t need anyone protecting me
ENTITY: Gotcha... take care out there. <UNPROTECT>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment