{% extends "base.html" %} {% block title %}Nutzung und Kosten{% endblock %} {% block content %}

Nutzung und Kosten{% if workspace %}: {{ workspace.name }}{% endif %}

Tokens und Kosten je Modellaufruf, {{ start.strftime('%d.%m.%Y') }} bis {{ end.strftime('%d.%m.%Y') }}. Kosten nur für Modelle mit hinterlegtem Preis{% if not workspace %} (Modelle){% endif %}; Verbrauch bleibt erhalten, auch wenn Chats gelöscht werden.

Für eigene Daten „Zeitraum“ wählen.

Kosten

{{ total.cost|money }} {{ currency }}

{% if total.unpriced %}

{{ total.unpriced|number }} Aufrufe ohne Preis

{% endif %}

Tokens

{{ total.total_tokens|number }}

{{ total.input_tokens|number }} ein · {{ total.output_tokens|number }} aus

Modellaufrufe

{{ total.calls|number }}

in {{ total.runs|number }} Runs

Runs nach Status

{% for s, n in stats|dictsort %}{{ labels.get(s, s) }}: {{ n }}{% if not loop.last %} · {% endif %}{% else %}keine{% endfor %}

{% if rows %}
{% for r in rows %} {% endfor %}
{{ groups[group] }}AufrufeRunsEingabedavon CacheAusgabedavon ReasoningKosten ({{ currency }})
{{ r.label }} {{ r.calls|number }} {{ r.runs|number }} {{ r.input_tokens|number }} {{ r.cached_tokens|number }} {{ r.output_tokens|number }} {{ r.reasoning_tokens|number }} {{ r.cost|money }}{% if r.unpriced %} +{{ r.unpriced }} ohne Preis{% endif %}
Summe{{ total.calls|number }}{{ total.runs|number }}{{ total.input_tokens|number }}{{ total.cached_tokens|number }}{{ total.output_tokens|number }}{{ total.reasoning_tokens|number }}{{ total.cost|money }}
{% else %}

Im Zeitraum keine Modellaufrufe.

{% endif %}

Rückmeldungen zu Antworten

{% if feedback.total %}Als CSV herunterladen{% endif %}
{% if feedback.total %}

Hilfreich

{{ feedback.share }} %

{{ feedback.up|number }} 👍 · {{ feedback.down|number }} 👎

Rückmeldungen

{{ feedback.total|number }}

{% if total.runs %}zu {{ (100 * feedback.total / total.runs)|round|int }} % der Runs{% endif %}

{% if feedback.by_model|length > 1 %}
{% for model, up, down in feedback.by_model %}{% endfor %}
Modell👍👎Hilfreich
{{ model }}{{ up }}{{ down }}{{ (100 * up / (up + down))|round|int }} %
{% endif %}

Einzelne Rückmeldungen

Zuerst die mit Kommentar, dann die negativen{% if feedback.total > feedback.recent|length %}; hier {{ feedback.recent|length }} von {{ feedback.total }}, alle im CSV{% endif %}.

{% else %}

Im Zeitraum keine Rückmeldungen. Unter jeder Antwort fragt Bifröst „Hilfreich?“.

{% endif %}
{% endblock %}