31 lines
1.4 KiB
HTML
31 lines
1.4 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Voice Assistant — {{ settings.APP_NAME }}{% endblock %}
|
|
{% block content %}
|
|
<div class="page" style="max-width:560px">
|
|
<h1 class="greeting">Voice Assistant (Jervis)</h1>
|
|
<p class="muted">Type a command for the home assistant — it's sent to the local LLM agent, which acts (lights, shopping, weather, reminders…) and speaks the reply on the house speakers.</p>
|
|
<div class="admin-panel">
|
|
<div class="linkout-card stack">
|
|
{% if error %}<div class="form-error">{{ error }}</div>{% endif %}
|
|
<form method="post" action="/voice">
|
|
<div class="form-field">
|
|
<label for="message">Command</label>
|
|
<input class="text-input" id="message" name="message"
|
|
placeholder="e.g. turn on the lounge lights, what's the weather, add milk to the shopping list…"
|
|
value="{{ command or '' }}" required>
|
|
</div>
|
|
<button class="button button-primary width-full" type="submit">Send</button>
|
|
</form>
|
|
{% if reply %}
|
|
<div class="linkout-card stack" style="margin-top:16px">
|
|
<strong>Jervis:</strong>
|
|
<p style="margin:8px 0 0">{{ reply }}</p>
|
|
</div>
|
|
{% endif %}
|
|
<p class="faint margin-top" style="font: var(--type-caption)">
|
|
Uses the local voice agent on `.13` (OmniRoute LLM). Replies are also spoken via Snapcast.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %} |