{% extends "base.html" %} {% load static %} {% block title %}LLM Settings{% endblock %} {% block content %}
Observe and assign LLM routing and rotate the ERP's caller token — swapping which model a lane serves happens in the gateway's admin UI, not here.
{% if snap.key_undecryptable %}SECRET_KEY, which was rotated){% endif %}. It is being treated as unset
{% if snap.api_key %}and the environment's key is in use{% else %}and no key resolves{% endif %}.
{{ row.gateway_base_url }} is not in
LLMHUB_ALLOWED_BASE_URLS ({{ allowed_base_urls|join:", " }}), so it is treated as unset.
Save an allowed URL, or clear the field to use the environment's.
Two ways to get a first completion:
ANTHROPIC_API_KEY (chat) and/or
OPENAI_API_KEY (+ OPENAI_BASE_URL for any OpenAI-compatible provider)
in the environment, restart, and run manage.py llmhub_check.| Purpose | Lane | Owner | Door |
|---|---|---|---|
| {{ x.label }} | {{ x.route }} | {{ x.owner }} | {{ x.door }} |
{{ m.route }}{% if m.missing_on_gateway %} (missing on gateway){% endif %}{{ purposes.0.route.value|default:"unassigned" }}). Add a row to offer a choice.
{{ a.field }}
{% if a.old_masked or a.new_masked %}{{ a.old_masked }} → {{ a.new_masked }}{% endif %}