{% extends "base.html" %} {% block breadcrumbs %} › {{ opts.app_label }} › {{ opts.verbose_name_plural }}{% endblock %} {% block title %}{{ opts.label }} — {{ site_title }}{% endblock %} {% block content %}

{{ opts.verbose_name_plural.title() }}

{{ opts.kind }} {{ opts.label }} {% if opts.description %}— {{ opts.description }}{% endif %}

Declaration

{% for f in schema.fields %} {% else %} {% endfor %}
FieldTypeRequiredDetail
{{ f.name }}{% if f.target %} target{% endif %} {{ f['class'] }} {{ 'yes' if f.required else 'no' }} {%- for k, v in f.items() if k not in ('name','class','kind','required','null','target') -%} {{ k }}={{ v | short(40) }}{% if not loop.last %}, {% endif %} {%- endfor -%}
No fields declared.
{% if summary %}

Configuration

{% for k, v in summary.items() %}
{{ k }}
{{ v | short(300) }}
{% endfor %}
{% endif %} {% if opts.kind == 'dataset' %}

Data preview

{% if message %}

{{ message }}

{% endif %}
{% if entry.get_search_fields() %} {% endif %} {% for name, values in filter_values.items() %} {% endfor %}
{% if periods %}

All dates {% for p in periods %} · {{ p }} {% endfor %}

{% endif %} {% if preview_error %}

Could not read the source: {{ preview_error }}

{% elif rows %}
{% if actions %}
Tick the rows to act on.
{% endif %}
{% if actions %}{% endif %} {% for c in columns %}{% endfor %} {% for row in rows %} {% if actions %} {% endif %} {% for c in columns %}{% endfor %} {% endfor %}
{{ c }}
{{ entry.render(row, c) }}
{% if page_no > 1 %}← previous{% endif %} page {{ page_no }} {% if has_next %}next →{% endif %}
{% else %}

No rows matched.

{% endif %}

Materialised versions

{% if versions %}
{% for v in versions %} {% endfor %}
VersionRowsSchemaContentNotesCreated
v{{ v.version }} {{ v.row_count | number }} {{ v.fingerprint }} {{ (v.content_hash or '')[:12] }} {{ v.notes | short(60) }} {{ v.created_at.strftime('%Y-%m-%d %H:%M') }}
{% else %}

Not materialised yet.

{% endif %}
{% endif %} {% if opts.kind == 'model' %}

Registered versions

{% if versions %}
{% for v in versions %} {% endfor %}
VersionStageMetricsParamsCreated
v{{ v.version }} {{ v.stage }} {% for k, val in (v.metrics or {}).items() %}{{ k }}={{ val | number }} {% endfor %} {{ v.params | short(80) }} {{ v.created_at.strftime('%Y-%m-%d %H:%M') }}
{% else %}

Not trained yet.

{% endif %}
{% if drift %}

Input drift

{{ drift.rows }} logged prediction{{ '' if drift.rows == 1 else 's' }} from the last {{ drift.days }} days, against what v{{ drift.version }} was trained on.

{% for column in drift.columns %} {% endfor %}
ColumnKindRowsPSIVerdict
{{ column.name }} {{ column.kind }} {{ column.count | number }} {{ '%.4f' | format(column.psi) }} {{ column.verdict }}

Population stability index: below 0.1 stable, 0.1–0.25 moderate, above 0.25 significant.

{% endif %} {% if importances %}

Feature importance

What v{{ importances.version }} weighted most heavily{% if importances.total > importances.rows | length %} — top {{ importances.rows | length }} of {{ importances.total }}{% endif %}.{% if importances.signed %} A hollow bar is a weight that argues the other way.{% endif %}

{% for row in importances.rows %} {% endfor %}
{{ row.name | short(48) }} {{ row.value | number }}
{% endif %} {% endif %} {% if opts.kind in ('model', 'eval') %}

Runs

{% if runs %}
{% for run in runs %} {% endfor %}
RunStatusSummaryStartedDuration
{{ run.short_id }} {{ run.status }} {% for k, val in (run.summary or {}).items() %}{{ k }}={{ val | number }} {% endfor %} {{ run.started_at.strftime('%Y-%m-%d %H:%M') }} {{ run.duration_s | duration }}
{% else %}

No runs yet.

{% endif %}
{% endif %} {% if opts.kind == 'agent' %}

Recent traces

{% if traces %}
{% for t in traces %} {% endfor %}
TraceInputOutputStepsTokensStatus
{{ t.short_id }} {{ t.input | short(50) }} {{ t.output | short(50) }} {{ t.steps }} {{ t.total_tokens | number }} {{ t.status }}
{% else %}

This agent has not run yet.

{% endif %}
{% endif %} {% endblock %}