{% extends "admin/_layout.html" %} {% from "_macros.html" import icon, model_avatar %} {% set section = "models" %} {% block title %}{{ t("Models") }} - {{ brand.name }}{% endblock %} {% block heading %}{{ t("Models") }}{% endblock %} {% block admin_content %}

{{ tm("Every model discovered across your connections. The order here is the order users see in the picker. Pinning does not reorder anything — it puts a shortcut in the chat sidebar. The default is what a new chat starts with.") }}

{% if saved %}
{{ icon("check", "icon--sm") }} {{ saved }}
{% endif %} {% if not total %}
{{ icon("server", "empty__mark") }}

{{ tm("No models yet. Add a connection and run “%(button)s”.", button=t("Test & refresh")) }}

{% else %} {# Filters are links, so a filtered view is a real URL you can keep or share. #}
{% for key, label in filters.items() %} {{ label }} {{ counts[key] }} {% endfor %}
{% if q or connection_id or active_filter != "all" %} {{ t("Clear") }} {% endif %}
{% if not models %}

{{ t("Nothing matches that filter.") }}

{% else %}
{{ t("With selected:") }}
{#- In order by dragging the number, or by focusing it and pressing the arrow keys (js/dnd.js, api/ordering.py), as the tools are. The order posts by itself; the bulk form around it is not sent. -#}
{% for model in models %}
{{ model_avatar(model, cls="model-row__avatar") }}
{{ model.label }} {% if model.model_id == default_model %} {{ t("default") }} {% endif %} {% if model.pinned %}{{ t("pinned") }}{% endif %} {% if not model.enabled %}{{ t("disabled") }}{% endif %} {% if not model.public %}{{ t("restricted") }}{% endif %} {% for name, on in (model.capabilities_json or {}).items() %} {% if on %}{{ name }}{% endif %} {% endfor %}
{{ model.model_id }} · {{ model.connection.name }}
{% endfor %}
{% endif %} {% endif %} {% endblock %}