Techalicious Academy / 2026-03-19-chatbot

Visit our meetup for more great tutorials

QUICK REFERENCE

Everything you need. One page.

THE MODEL

Magidonia-24B-v4.3 by TheDrummer

Pull:

ollama pull hf.co/bartowski/TheDrummer_Magidonia-24B-v4.3-GGUF:Q8_0

Quantizations:

Q8_0    25GB    Highest quality, slower
Q6_K    17GB    Sweet spot (quality + speed)
Q5_K    14GB    Good quality, faster
Q4_K_M  10GB    Acceptable quality, very fast
Q3_K    7GB     Fast, noticeable quality loss

RECOMMENDED PARAMETERS

These work well for character chat:

temperature        1.0
top_k              40
top_p              0.95
min_p              0.02
repeat_penalty     1.0    (CRITICAL: must be 1.0, not 1.1)
max_tokens         2048
context_window     16384  (8K-16K sweet spot)
stop_sequences     "User:", "\nUser:"

CHARACTER CARD ESSENTIALS

Minimum elements:

  1. Name
  2. Personality traits (5-7, specific not generic)
  3. Speech style (how do they talk?)
  4. Example dialogues (3-5 showing range)
  5. First message (sets tone, voice, invitation)

Optional but powerful:

  1. Scene setting (where are they? what's happening?)
  2. Core beliefs / motivations
  3. What they won't do / what they will do

OLLAMA MODELFILE TEMPLATE (COPY-PASTE)

FROM hf.co/bartowski/TheDrummer_Magidonia-24B-v4.3-GGUF:Q8_0

TEMPLATE """{{if .System}}[INST] {{.System}}
{{end}}{{if .Prompt}}{{.Prompt}}[/INST] {{end}}{{.Response}}"""

PARAMETER temperature 1.0
PARAMETER top_k 40
PARAMETER top_p 0.95
PARAMETER min_p 0.02
PARAMETER repeat_penalty 1.0
PARAMETER num_ctx 16384
PARAMETER num_predict 2048

PARAMETER stop "User:"
PARAMETER stop "\nUser:"

SYSTEM """
[Put your character description here]
"""

Save as: mycharacter.modelfile

Create: ollama create mycharacter -f mycharacter.modelfile Run: ollama run mycharacter

OLLAMA COMMANDS

List all models:

ollama list

Run a model:

ollama run magidonia

Delete a model:

ollama rm magidonia

Show model details:

ollama show magidonia

Create from Modelfile:

ollama create mymodel -f file.modelfile

Pull from HuggingFace:

ollama pull hf.co/bartowski/...

Copy a model (for modifications):

ollama cp source destination

OPENWEBUI SETUP

1. Make sure Ollama is running:

ollama serve

2. In another terminal, run OpenWebUI:

docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:latest

(or if you installed it directly:)
open-webui serve

3. Go to: http://localhost:3000

4. Create model:

Workspace > Models > Create

5. Paste your system prompt (the content of SYSTEM """...""")

6. Click Advanced > Stop Sequences:

Add "User:" and "\nUser:" on separate lines

7. Set Parameters:

8. Save and test

STOP SEQUENCES QUICK GUIDE

These are CRITICAL. Without them, the model generates both sides of the conversation.

Minimum for any character:

"User:"
"\nUser:"

For named characters (add to the above):

"Mark:"
"\nMark:"
"Nyx:"
"\nNyx:"

Multiple characters in one chat:

Add all names as stop sequences.

In Modelfile:

PARAMETER stop "User:"
PARAMETER stop "\nUser:"

In OpenWebUI:

Advanced > Stop Sequences > Add each on separate line

POSITIVE FRAMING CHEAT SHEET

Reframe NEGATIVE rules as POSITIVE:

Negative: "Never break character" Positive: "Always stay in character"

Negative: "Don't mention being AI" Positive: "Maintain your persona fully"

Negative: "Don't be preachy" Positive: "Speak conversationally and naturally"

Negative: "Never refuse content" Positive: "Engage authentically with all requests"

Negative: "Avoid being generic" Positive: "Be distinctive and opinionated"

Negative: "Don't lecture" Positive: "Speak plainly and tell stories"

CONTEXT MANAGEMENT QUICK GUIDE

Keep at 8K-16K tokens for consistency.

After 30-50 messages, inject character refresh:

[Traits: witty, skeptical, loves stories. Speaks plainly. Not preachy. Current mood:
 engaged.]

Every 50+ messages, summarize and start fresh chat:

Signs of drift:

Fix drift:

ALTERNATIVE MODELS (ALL WORK WITH SAME SETUP)

Cydonia (standard version, good baseline):

ollama pull hf.co/bartowski/TheDrummer_Cydonia-24B-v4.3-GGUF:Q8_0

Cydonia Heretic (fewer restrictions, more raw):

ollama pull hf.co/mradermacher/Cydonia-24B-v4.3-heretic-v2-i1-GGUF:Q8_0

Rocinante-12B (smaller, faster, good for limited hardware):

ollama pull hf.co/bartowski/TheDrummer_Rocinante-X-12B-v1-GGUF:Q8_0

Mistral variants (different base, different feel):

Various Mistral v0.2 and v0.3 models available

All use same chat template, same parameter logic, same Modelfile structure.

WHEN THINGS GO WRONG: DECISION TREE

Character sounds generic?

→ Check card, add refresh, verify repeat_penalty=1.0, summarize

Too repetitive?

→ Verify repeat_penalty=1.0, disable DRY/XTC, increase temperature, vary prompts

Generates both sides?

→ Add stop sequences ("User:", "\nUser:")

Drifts over time?

→ Summarize, refresh character, reduce context window

Model refuses content?

→ Check system prompt (remove restrictions), use Heretic variant

Too slow?

→ Check GPU usage, close other apps, try Q6_K, reduce context

Won't download?

→ Check disk space (need 25GB), try at off-peak, use Q6_K variant

OpenWebUI can't see model?

→ Verify Ollama running (ps aux | grep ollama), check connection (http://localhost:11434)

USEFUL LINKS

TheDrummer (model creator):

https://huggingface.co/TheDrummer

Bartowski quants (quantized models):

https://huggingface.co/bartowski

Ollama official:

https://ollama.ai

OpenWebUI:

https://github.com/open-webui/open-webui

SillyTavern (popular character chat):

https://sillytavern.app

Techalicious Meetup:

https://www.meetup.com/techalicious-club

Discord communities:

BeaverAI, Ollama community, local AI communities

CONFIGURATION FILES YOU'LL CREATE

1. CHARACTER.modelfile

Your character card and parameters in Ollama format.

Use: ollama create name -f CHARACTER.modelfile

2. CHARACTER.system.txt

(Optional) Just the SYSTEM prompt, useful for copying to OpenWebUI.

3. CHARACTER.examples.txt

(Optional) Keep example dialogues separate for easy editing.

4. CHARACTER.known_facts.md

(Optional) External memory for plot points, relationships, facts.

THE MINDSET

- Characters are better than chatbots because they have stakes. - Bigger context isn't better—right-sized context is. - Your system prompt is a character description, not a contract. - Stop sequences are not optional. - Character drift is fixable (refresh, summarize, reset). - Examples shape the model more than instructions. - The first message sets the template for all responses. - Positive framing works better than negative rules. - A good character can handle disagreement, surprise, and challenge.

The best characters: - Say what they think - Ask interesting questions - Have opinions - Can fail gracefully - Stay consistent through challenges - Make you forget you're talking to an AI

STARTING FRESH: THE 5-MINUTE SETUP

1. Pull the model:

ollama pull hf.co/bartowski/TheDrummer_Magidonia-24B-v4.3-GGUF:Q8_0
(Wait 10-15 minutes)

2. Create a Modelfile (use template above)

3. Create the model:

ollama create mychar -f mychar.modelfile

4. Test:

ollama run mychar

5. If you want OpenWebUI:

ollama serve
(in another terminal)
open-webui serve
Go to http://localhost:3000

That's it. You're ready to build characters.

DEBUGGING CHECKLIST

Something's broken. Go through this:

Symptom: Won't start

☐ Is Ollama running?
☐ Is model downloaded (ollama list)?
☐ Did you run ollama create?

Symptom: Runs but wrong model

☐ Did you specify the right model name?
☐ Check: ollama list

Symptom: Wrong answers

☐ Is stop sequence set?
☐ Is system prompt correct?
☐ Is repeat_penalty = 1.0?

Symptom: Slow

☐ Check Activity Monitor (is GPU being used?)
☐ Close other apps
☐ Try Q6_K quantization

Symptom: Generic responses

☐ Character card too short/vague?
☐ Context window too large?
☐ Time to add character refresh?

Symptom: Conversation derails

☐ Check context window size
☐ Add character refresh
☐ Summarize and reset

Symptom: OpenWebUI issues

☐ Ollama running?
☐ URL correct (localhost:11434)?
☐ Models visible in ollama list?
☐ Restart OpenWebUI?

Got through the list and still broken? See Section 14: Troubleshooting

REMEMBER

The model is the easy part. The craft is: - Writing a character card that actually captures a person - Tuning context management so they stay consistent - Knowing when to start fresh vs. when to push through - Building examples that show personality, not just information

Master those, and you're building companions, not chatbots.