@extends('admin.layout') @section('title', 'AI / LLM Settings') @section('page_title', 'AI / LLM Settings') @section('extra_styles') @include('admin.partials.settings-styles') @endsection @section('content')

AI / LLM Settings

@if(session('success'))
{{ session('success') }}
@endif @if($errors->any())
{{ $errors->first() }}
@endif
@csrf {{-- ── AI / LLM toggles ──────────────────────────────────────── --}}
Lyrics LLM Pipeline @if($settings['llm_enabled'] === 'true') Enabled @else Disabled @endif

Configure one or more LLM providers (local Ollama or hosted APIs). Pick one as Active — that's the provider the lyrics pipeline uses to clean descriptions and (optionally) pick per-line emojis. With LLM off, the pipeline uses the built-in regex parser and keyword emoji map.

Enable LLM Master switch. When off, the regex/keyword pipeline runs instead.
Clean description lyrics Use the active LLM to drop titles, section headers, instrument tags, etc. from a song's description before aligning to audio.
Decorate lines with emojis Replaces the built-in keyword emoji with a per-line contextual emoji chosen by the LLM. Results are cached.
{{-- ── Providers ─────────────────────────────────────────────── --}}
Providers

Add as many as you like. Ollama runs locally with no API key (default http://localhost:11434). Anthropic / OpenAI need a key. Pick the radio next to the provider you want active.

@foreach($settings['llm_providers'] as $i => $p) @php $pid = $p['id'] ?? \Illuminate\Support\Str::uuid()->toString(); $kind = $p['kind'] ?? 'ollama'; $hasKey = isset($p['api_key']) && $p['api_key'] !== ''; @endphp
@endforeach
Cancel
@endsection @section('scripts') @endsection