kineuroExperimental Neuroradiology Research
Karolinska Institutet

What the assistant is made of

A served model, Kvasir in front of it, and the stations themselves.

The wizard does this for you. This page is what it does, for when you would rather do it yourself.

The assistant turns a sentence into a question the engine answers, and offers it as a change a person accepts or rejects. It never decides anything on its own.

It is the last part to install and the only one that needs a model. The engine and the desk work perfectly well without it.

Piece What it does
a served model Answers prompts. A model server of yours that speaks the OpenAI completions API (SGLang, vLLM, llama.cpp or Ollama), a commercial provider, or a person’s own ChatGPT subscription.
Kvasir The model gateway in front of the models: it holds the models and their credentials, decides which model serves which purpose, and records what was asked.
the assistant The stations, the tools they may call, and the conversation.

The assistant never talks to a model directly and never holds a model’s credential. It holds a key Kvasir minted for it, and Kvasir holds the models’ own. Each call the assistant makes for a conversation also carries the token of the person whose conversation it is, so Kvasir files the call under that person and uses their own subscription where one applies.

Why a gateway at all

Because the decisions about a model are not the assistant’s to make: which model may serve which purpose, whether a purpose may leave the machine, what a station may spend, and what was asked in the first place. Those live in one place with one record, so changing a model is something done on the desk’s Language models page, not a change to the software.

Kvasir keeps its models in its own database. A model is added only after it answered a short request, and a model in your systems is checked with Kvasir’s admission suite before the assistant uses it. The assistant follows what Kvasir holds as it changes, without starting again.

Subscriptions

A station moved to ChatGPT answers each person through their own ChatGPT subscription. A person who may use the assistant and see Kvasir adds theirs on that page, and it serves only their conversations. For a person with none signed in, or who no longer may use both, the station answers with the default model in your systems. Where nobody signs in, the install has one subscription, and every conversation uses it. Rows of the registry go to ChatGPT only where someone with work on Kvasir wrote down why, and identifiers never do.

What you need

One machine with a card, or an account with a provider. The stations are written to be easy for a local model rather than to need a large one, so what the card can hold decides which model, not whether this works at all.

The card What you can serve
24 GB or more a 27B model at 4 bit, with room for the context; what the stations were written against
12 to 24 GB a 7B to 14B model; the stations still work, with more retries on the harder questions
less, or none no local model worth serving

With no card there are four ways on, and the assistant is the only part affected:

  • a model on another machine you can reach, which is still local in the sense that matters if that machine is yours;
  • a commercial provider through Kvasir, in which case the prompt leaves the machine and Kvasir marks that model remote;
  • ChatGPT subscriptions, with the same rules as a provider;
  • no assistant at all. The engine and the desk are complete without it, and nothing else changes.

The wizard reads the card and says which of these you are in before it offers the assistant. Kvasir can download a model’s files into a folder you choose and, for a GGUF model, start it in llama.cpp beside it; any other model is served by your model server.

Next: the model and Kvasir.

Updated 16 October 2026