{% extends "layout.html" %}{% block content %}

Settings

{% match config_path %}{% when Some with (path) %}Editing {{ path }}. Saved settings apply to the next run; a hand edit on disk shows up on the next page view.{% when None %}No config file is configured; start the server with --config to edit settings here. The values below are the built-in defaults plus the environment.{% endmatch %} ยท History

{% match load_error %}{% when Some with (error) %}{% when None %}{% endmatch %} {% if !errors.is_empty() %}{% endif %}
{% for group in groups %}

{{ group.title }}

{% match group.provider %}{% when Some with (provider) %}

Key: {{ crate::config::ProviderConfig::api_key_env_var(provider.name) }} in the env file. {% if provider.removable() %}Not named by any [llm] role. {% else if provider.built_in %}Built in: declared by the defaults, so it can be edited and left unreferenced but not removed.{% else %}Named by llm.{{ provider.roles() }}; reassign the role before removing it.{% endif %}

{% when None %}{% endmatch %} {% if group.is_weights() %}

Weights need not sum to 1; they are renormalized over the signals present for each article.

{% endif %} {% for field in group.fields %}
{% if field.restart_required %} restart{% endif %}{% match field.help %}{% when Some with (help) %}

{{ help }}

{% when None %}{% endmatch %}
{% if field.is_secret() %}

{% if field.is_set() %}set{% if field.is_env() %} (from {{ field.env_var() }}){% else if field.is_file() %} (in the config file โ€” move it to the env file){% endif %}{% else %}not set โ€” set {{ field.env_var() }} in the env file{% endif %}

{% else if field.is_env() %}{% if field.is_text_list() %}{% else %}{% endif %}

locked by {{ field.env_var() }} in the env file

{% else if field.is_bool() %} {% else if field.is_enum() %} {% else if field.is_text_list() %} {% else if field.is_number() %} {% else %} {% endif %} {% if !field.is_secret() && !field.is_env() %}

default: {% if field.default.is_empty() %}unset{% else if field.is_text_list() %}{{ field.default }}{% else %}{{ field.default }}{% endif %}{% if field.current != field.default %} {% endif %}

{% endif %}
{% endfor %}
{% endfor %}
{% match config_path %}{% when Some with (_path) %}{% when None %}{% endmatch %}
{% for group in groups %}{% match group.provider %}{% when Some with (provider) %}{% if provider.removable() %}
{% endif %}{% when None %}{% endmatch %}{% endfor %}

Add provider

Inserts [providers.<name>] with placeholder base_url and model; edit them above afterwards and put DAILY_EPUB_PROVIDERS__<NAME>__API_KEY in the env file.

{% endblock %}