Console Voice Assistant (Jervis): text prompt box -> local LLM agent (/voice proxies to .13:8501)

This commit is contained in:
2026-08-30 14:55:39 +10:00
parent a347aefdff
commit d68f6a4304
4 changed files with 67 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
{% 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 %}