RisuAI + minirouter
Draft configuration for RisuAI's custom OpenAI-compatible model settings.
Settings
Settings → Model → custom OpenAI-compatible provider
In order
- ProviderOpenAI compatible (custom URL)
- Request URL / Base URLhttps://api.minirouter.sh/v1
If your build asks for a full request URL rather than a root, use https://api.minirouter.sh/v1/chat/completions there — and nowhere else.
- API Keymr-live-… (your key)
- Modelnousresearch/hermes-4-70b
curl https://api.minirouter.sh/v1/chat/completions \
-H "Authorization: Bearer $MINIROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"meta/llama-3.3-70b","messages":[{"role":"user","content":"ping"}]}'Draft candidates · 4 models
All models →- Modelnousresearch/hermes-4-70bWhyInstruction-following candidate that holds a persona across a long thread.—
- Modelsao10k/l3.3-euryale-70bWhyProse-oriented candidate. Single upstream — see the note on the roleplay facet.—
- Modelmeta/llama-3.3-70bWhyGeneral-purpose prose candidate.→
- Modelmistral/mistral-small-3.2WhySmaller-model candidate for frequent regeneration.—
Only rows confirmed in the current live catalog are linked. A plain row is a draft recommendation, not a claim that the model is currently available. Paste ids exactly as written, author/name.
When it fails
- SymptomRequests fail only after the chat gets longCodecontext_too_long
The character card, the lore book and the whole history are re-sent every turn, so a thread that worked at message 20 can exceed the window at message 200. Pick a longer-context model or trim the lore book. docs/errors#context_too_long →
- Symptom404, HTML, or a parse error on every requestCodeinvalid_request
Almost always the base URL. Use https://api.minirouter.sh/v1 — the bare host without /v1 also works, but never append /chat/completions to the base URL field; the client adds that path itself. docs/errors#invalid_request →
- Symptom401 on every requestCodeinvalid_api_key
Wrong or rotated key. Keys start with mr-live-; after a rotation the old key keeps working for 24 hours, then dies. docs/errors#invalid_api_key →
- SymptomResponse stops mid-sentence with a credits messageCodeinsufficient_credits
Balance hit $0 mid-stream. The stream ends with a terminal error naming the exact charge for tokens delivered — never a silent close. docs/errors#insufficient_credits →
Every API error string carries a URL resolving to /docs/errors.
Other roleplay frontends
- SillyTavernRoleplay frontend
- AgnaiRoleplay frontend
Why this workload bills the way it does, what it costs to contain, and which models suit it: /use/roleplay.