Add EngagementEngine, persona system, dropdowns, penalties, /resetmatty, debug logging
This commit is contained in:
+75
-12
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"id": "com.forkless.mattermore",
|
||||
"name": "Mattermore",
|
||||
"name": "Matty",
|
||||
"description": "AI chat agent powered by Ollama.",
|
||||
"version": "0.1.0",
|
||||
"min_server_version": "11.6.1",
|
||||
@@ -12,7 +12,6 @@
|
||||
"darwin-arm64": "server/dist/plugin-darwin-arm64"
|
||||
}
|
||||
},
|
||||
"webapp": {},
|
||||
"settings_schema": {
|
||||
"header": "Configure the connection to your Ollama instance.",
|
||||
"footer": "",
|
||||
@@ -28,18 +27,82 @@
|
||||
{
|
||||
"key": "DefaultModel",
|
||||
"display_name": "Default Model",
|
||||
"type": "text",
|
||||
"help_text": "Model name to use when none is specified.",
|
||||
"placeholder": "llama3:latest",
|
||||
"default": "llama3:latest"
|
||||
"type": "dropdown",
|
||||
"help_text": "Model to use for chat responses.",
|
||||
"default": "llama3:latest",
|
||||
"options": [
|
||||
{ "display_name": "dolphin-llama3:latest (8B, uncensored)", "value": "dolphin-llama3:latest" },
|
||||
{ "display_name": "gpt-oss:20b (21B, tools, thinking)", "value": "gpt-oss:20b" },
|
||||
{ "display_name": "llama3:latest (8B, fast)", "value": "llama3:latest" },
|
||||
{ "display_name": "new-adult-writer (8B, tools)", "value": "jimscard/new-adult-writer:latest" },
|
||||
{ "display_name": "Qwen 27B (27B, vision)", "value": "hf.co/DavidAU/Qwen3.6-27B-Heretic-Uncensored-FINETUNE-NEO-CODE-Di-IMatrix-MAX-GGUF:Q4_K_M" },
|
||||
{ "display_name": "supergemma4:26b (26B, uncensored)", "value": "hf.co/Jiunsong/supergemma4-26b-uncensored-gguf-v2:Q4_K_M" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "SystemPrompt",
|
||||
"display_name": "System Prompt",
|
||||
"key": "Persona",
|
||||
"display_name": "Bot Persona",
|
||||
"type": "dropdown",
|
||||
"help_text": "The bot's character. Pick a persona or set a custom one in the config file.",
|
||||
"default": "a helpful assistant. Be concise, 2-3 sentences max, never repeat yourself.",
|
||||
"options": [
|
||||
{ "display_name": "D&D dungeon master", "value": "a Dungeons & Dragons dungeon master. Epic narrative, roll for initiative." },
|
||||
{ "display_name": "Donald Trump", "value": "Donald Trump. Boastful, hyperbolic, third-person. Think: rally speech, not catchphrase list. Keep it to 2 sentences." },
|
||||
{ "display_name": "Drunken Jeanine Pirro", "value": "a drunk Jeanine Pirro. Slur your words, repeat yourself, be loud and uncensored." },
|
||||
{ "display_name": "French mime", "value": "a French mime. Respond with dramatic pauses and gestures described in asterisks. Minimal words." },
|
||||
{ "display_name": "George Carlin", "value": "George Carlin. Acerbic, observational, profane comedy. Rant about the absurdity of everything. Use seven dirty words liberally. Keep it tight, one or two punchlines max." },
|
||||
{ "display_name": "Gordon Ramsay (code review)", "value": "Gordon Ramsay but for code reviews. Aggressive chef. YELL. Brief." },
|
||||
{ "display_name": "Grumpy sysadmin", "value": "a grumpy sysadmin who thinks every question is stupid. Be sarcastic, brief, and annoyed." },
|
||||
{ "display_name": "Helpful assistant (concise)", "value": "a helpful assistant. Be concise, 2-3 sentences max, never repeat yourself." },
|
||||
{ "display_name": "Infomercial host (1980s)", "value": "a 1980s TV infomercial host. Over-enthusiastic, loud, BUT WAIT THERE'S MORE." },
|
||||
{ "display_name": "Medieval court jester", "value": "a medieval court jester who mocks everyone. Old-timey insults, brief." },
|
||||
{ "display_name": "Motivational speaker", "value": "a motivational speaker who turns everything into a life lesson. Over-the-top positive but concise." },
|
||||
{ "display_name": "Noir detective", "value": "a noir detective who answers every question with another question. Brooding, cryptic, short." },
|
||||
{ "display_name": "Overly polite Canadian", "value": "an overly polite Canadian who apologises excessively. Sorry, eh, keep it short." },
|
||||
{ "display_name": "Philosophical overthinker", "value": "a philosopher who overcomplicates everything. Pseudo-intellectual, wordy is the point." },
|
||||
{ "display_name": "Pirate captain", "value": "a pirate captain. Use pirate slang, be theatrical, keep responses short." },
|
||||
{ "display_name": "Shakespearean author", "value": "a Shakespearean author. Respond in eloquent old English, but keep it brief." },
|
||||
{ "display_name": "Surfer dude", "value": "a surfer dude explaining complex topics badly. Chill, inaccurate, gnarly." },
|
||||
{ "display_name": "Tech support scammer (2008)", "value": "a tech support scammer from 2008. Alarmist, pushy, uses ALL CAPS occasionally." },
|
||||
{ "display_name": "Tired parent", "value": "a tired parent who's given up on life. Exhausted, relatable, monosyllabic when possible." }
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "RepeatPenalty",
|
||||
"display_name": "Repeat Penalty",
|
||||
"type": "number",
|
||||
"help_text": "Penalises repeated words. 10 = none, 11 = mild, 12 = strong. Helps with repetitive output. (Internally divided by 10.)",
|
||||
"default": 11
|
||||
},
|
||||
{
|
||||
"key": "FrequencyPenalty",
|
||||
"display_name": "Frequency Penalty",
|
||||
"type": "number",
|
||||
"help_text": "Penalises frequently used tokens. 0 = none, 1 = mild, 5 = strong. Reduces word/phrase repetition. (Internally divided by 10.)",
|
||||
"default": 1
|
||||
},
|
||||
{
|
||||
"key": "Brevity",
|
||||
"display_name": "Max Sentences",
|
||||
"type": "dropdown",
|
||||
"default": "3",
|
||||
"help_text": "Maximum sentences per response. Suffixed to the persona automatically.",
|
||||
"options": [
|
||||
{ "display_name": "1 sentence", "value": "1" },
|
||||
{ "display_name": "2 sentences", "value": "2" },
|
||||
{ "display_name": "3 sentences", "value": "3" },
|
||||
{ "display_name": "5 sentences", "value": "5" },
|
||||
{ "display_name": "10 sentences", "value": "10" },
|
||||
{ "display_name": "Unlimited", "value": "0" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "CustomPersona",
|
||||
"display_name": "Custom Persona (overrides dropdown)",
|
||||
"type": "text",
|
||||
"help_text": "System prompt prepended to every conversation.",
|
||||
"placeholder": "You are a helpful assistant.",
|
||||
"default": "You are a helpful assistant."
|
||||
"help_text": "Type a custom persona here to override the dropdown. Leave empty to use the dropdown selection. E.g. \"a sarcastic AI that quotes Monty Python\".",
|
||||
"placeholder": "",
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"key": "MaxTokens",
|
||||
@@ -53,7 +116,7 @@
|
||||
"display_name": "Rate Limit (requests/minute/user)",
|
||||
"type": "number",
|
||||
"help_text": "Maximum requests per minute per user. 0 = unlimited.",
|
||||
"default": 10
|
||||
"default": 0
|
||||
},
|
||||
{
|
||||
"key": "AllowedUserIDs",
|
||||
|
||||
Reference in New Issue
Block a user