{% extends "base.html" %} {% from "_macros.html" import icon, mark, model_avatar %} {% block title %}{{ chat.title if chat else "New chat" }} - LLeMbas{% endblock %} {% block head %} {% endblock %} {% block body_attrs %} data-authenticated="true"{% endblock %} {% block body %}
{% include "partials/sidebar.html" %}

{{ chat.title if chat else "New chat" }}

{% if models %} {% if can.get("chat.model_select") or not chat %} {% include "chat/_model_picker.html" %} {% elif current_model %} {{ current_model.label }} {% endif %} {% endif %} {% if chat and (can.get("chat.system_prompt") or can.get("chat.params")) %} {% endif %}
{% if chat and (can.get("chat.system_prompt") or can.get("chat.params")) %} {# Collapsed by default: per-chat overrides, not everyday controls. Each field saves on change, so there is no half-applied state. #} {% endif %} {% if not models %} {# Every fresh install lands here, so it points at the fix. #}
{{ icon("server", "empty__mark") }}

No models available

{% if user.is_admin %} Add an OpenAI-compatible connection and LLeMbas will load its models. {% else %} No model connections have been set up yet. Ask an administrator. {% endif %}

{% if user.is_admin %} {{ icon("server", "icon--sm") }} Set up a connection {% endif %}
{% else %}
{% if not messages %}
{{ mark(cls="empty__mark", uid="intro") }}

What would you ask?

Speak, friend, and enter.

{% endif %} {# The same include the rewind response returns, so the conversation is described in one place. Markdown was rendered server-side in pages.py, keyed by message id. #} {% include "chat/_thread.html" %}
{% include "chat/_composer.html" %} {% endif %}
{% endblock %}