{% extends "admin/_layout.html" %} {% from "_macros.html" import icon, model_avatar %} {% set section = "models" %} {% block title %}{{ model.label }} - Models - LLeMbas{% endblock %} {% block heading %}{{ model.label }}{% endblock %} {% block admin_content %} {% if saved %}
{{ icon("check", "icon--sm") }} {{ saved }}
{% endif %}
{{ model_avatar(model, cls="model-detail__avatar") }}
{{ model.label }}
{{ model.model_id }}
via {{ model.connection.name }}
{% if model.model_id == default_model %} {{ icon("star", "icon--sm") }} default model {% else %}
{% endif %}
{% if model.image_path %}
{% endif %}

PNG, JPEG, WEBP or GIF, under 2 MB. Without one, the model gets a generated badge whose colour is derived from its id.

Presentation

Shown instead of the raw id. Empty uses the id.

Place in the picker, 1–{{ total }}. Typing a number is the workable way to move a model a long distance.

How many tokens this model can hold, filled in from the endpoint where it says. Leave it empty if you do not know: the context percentage and automatic compaction both stay off rather than working from a guess.

A seed, not a per-request setting: it is copied onto a chat when the chat is created and when somebody switches to this model, and from then on the chat's own value is what is sent. Changing it here therefore does nothing to chats that already exist. The composer's picker shows whichever level is actually in force, so what somebody sees there is what goes out. Anyone can change it per chat with /effort, and the control only appears on a model marked Reasoning above.
Sent two ways at once, because there is no one field that works: OpenAI and vLLM read reasoning_effort, while llama.cpp drops it silently and reads only chat_template_kwargs — which is the route by which it reaches gpt-oss. Both go out, and only on a chat that has an effort set, so an endpoint strict about unknown parameters is untouched until somebody chooses one.

Shown in the chat settings panel and your users' settings.

System prompt

Used by chats on this model that have no prompt of their own. A chat's own prompt overrides this; this overrides the instance prompt.

{% if instance_prompt %} Leave empty to fall back to the instance prompt shown above. {% else %} Leave empty to send no system prompt. {% endif %}

Capabilities

What this endpoint can do. Endpoints rarely advertise it reliably, so it is your call. reasoning shows the thinking block, vision lets images be sent, and tools is whether a tool list may be sent at all — turn it on for a model that does not support tool calling and every one of its replies fails.

{% for name in capabilities %} {% endfor %}

Built-in tools {% if not (model.capabilities_json or {}).get("tools") %} needs tools {% endif %}

What this model is given, as opposed to what it is capable of. None of it applies unless tools is ticked above. Each one is also subject to the instance being configured for it and to the reader's own permissions — this only decides whether it is offered to this model.

{# A model configured before these existed has no tool_* keys. Ticked by default when `tools` is on, matching what the tool registry does, so the form shows what will actually happen rather than a row of empty boxes that would take web search away on the next save. #} {% for key, label in tool_capabilities %} {% endfor %}

Availability

Uncheck to restrict this model to chosen groups. Administrators always have access.

Groups with access {% if groups %}
{% for group in groups %} {% endfor %}

Ignored while the model is available to everyone.

{% else %}

No groups yet — create one to restrict access.

{% endif %}
Back to all models
{% endblock %}