SillyTavern Chat Completion vs Text Completion: which to pick
Updated
Pick Chat Completion when the provider takes a list of messages, which covers most hosted APIs, UnsavedAI included; the provider applies the model's own template. Pick Text Completion for backends such as KoboldCpp or llama.cpp that take one raw prompt string. Only then does SillyTavern build the string itself, so the instruct and context templates in Advanced Formatting must match the model family.
Try it now, free, no account neededStart a story with VesperThe ship's AI is kind. And keeping a secret.What actually goes over the wire
The two API types differ in who wraps your story in the special tokens a model was trained on. With Chat Completion, SillyTavern sends a list of messages, each with a role, and the server formats them:
[{"role": "system", "content": "You are Vesper, the ship's AI."}, {"role": "user", "content": "I open the airlock."}]
With Text Completion, SillyTavern sends one long string and the server feeds it to the model as is. SillyTavern has to insert the tags itself. For a model trained on the ChatML format, the same turn looks something like this:
<|im_start|>user\nI open the airlock.<|im_end|>\n<|im_start|>assistant\n
Get those tags wrong and the model is reading a format it never learned. Under Chat Completion the question never comes up, because the server knows its own model's format.
Which settings apply to which
Half the confusion about SillyTavern's panels comes from settings that only work under one API type. Labels shift between versions, but the split holds:
| Setting | Chat Completion | Text Completion |
|---|---|---|
| Prompt Manager (bottom of AI Response Configuration) | Builds the prompt | Not shown |
| Instruct template (Advanced Formatting) | Ignored | Wraps every turn in tags |
| Context template and story string | Ignored | Decides how card fields are laid out |
| Main instructions | Main Prompt block in the Prompt Manager | System prompt in Advanced Formatting |
| Sampler sliders | Whatever the provider accepts | Usually a longer list from the backend |
So if you spent an evening tuning an instruct template and nothing changed, check the API type first. Under Chat Completion your edits belong in the Prompt Manager.
Signs the template is wrong
These only happen under Text Completion, and they almost always point at a template that does not match the model:
- Replies contain stray tags such as <|im_end|>, [/INST] or "### Response".
- The model writes your lines, or carries on as both sides of the conversation.
- Replies never stop until they hit the length limit.
- Writing quality is far worse than people report for the same model.
The fix is to pick the instruct and context templates of the model's family, which the model's page on its download site usually names: ChatML, Llama 3, Mistral, Gemma and so on. Some backends report the template themselves and SillyTavern can choose a match automatically, but check what it chose.
When each one is worth it
Text Completion earns its extra setup with local models. Backends like KoboldCpp and llama.cpp tend to expose more samplers, you control every character of the prompt, and base models with no chat format only work this way. If you run a model on your own GPU, it is the natural choice.
Chat Completion is simpler for hosted APIs. There is no template to match, the Prompt Manager lets you drag blocks into order, and switching models never breaks formatting. Most hosted, OpenAI-compatible providers offer it.
Moving to UnsavedAI from a Text Completion setup
UnsavedAI's API is Chat Completions only, so choose Chat Completion in API Connections; the SillyTavern guide lists the fields. The Gemma 4 format is applied on our side, which means you can stop thinking about instruct templates entirely.
One thing to carry over by hand: if your rules lived in the Advanced Formatting system prompt, paste them into the Main Prompt block, because Chat Completion ignores the old field. Samplers you relied on may have no equivalent; roleplay sampler settings covers a sensible starting set.
Questions people ask
Can I reach an OpenAI-compatible provider through Text Completion?
Only if that provider also offers a text completions endpoint. Many offer only chat; UnsavedAI's API is chat only, so use Chat Completion.
Is one of them better for roleplay quality?
Neither by itself. A correct template under Text Completion and a well-built prompt under Chat Completion can produce the same writing; what hurts quality is a mismatched template or a messy prompt.
Does the API type change my chats or cards?
No. Chats, characters and lorebooks stay the same when you switch. Only the way the prompt is assembled changes.
