Rename Server Config to Inference Args in the UI
The stored blob is the inference server invocation, and it is no longer only a local server's: a hosted provider is addressed rather than configured. Display text only -- the table, routes and relations keep their names, so there is no migration and no broken links.
This commit is contained in:
parent
7f53ce6878
commit
10d4e0aef8
4 changed files with 14 additions and 14 deletions
|
|
@ -68,7 +68,7 @@ class="flex h-full w-full items-center justify-center rounded-lg bg-neutral-200
|
||||||
|
|
||||||
<flux:menu.radio.group>
|
<flux:menu.radio.group>
|
||||||
<flux:menu.item href="/settings/profile" icon="cog" wire:navigate>Settings</flux:menu.item>
|
<flux:menu.item href="/settings/profile" icon="cog" wire:navigate>Settings</flux:menu.item>
|
||||||
<flux:menu.item href="{{ route('settings.server-configs') }}" icon="cpu" wire:navigate>Server Configs</flux:menu.item>
|
<flux:menu.item href="{{ route('settings.server-configs') }}" icon="cpu" wire:navigate>Inference Args</flux:menu.item>
|
||||||
</flux:menu.radio.group>
|
</flux:menu.radio.group>
|
||||||
|
|
||||||
<flux:menu.separator />
|
<flux:menu.separator />
|
||||||
|
|
@ -123,7 +123,7 @@ class="flex h-full w-full items-center justify-center rounded-lg bg-neutral-200
|
||||||
|
|
||||||
<flux:menu.radio.group>
|
<flux:menu.radio.group>
|
||||||
<flux:menu.item href="/settings/profile" icon="cog" wire:navigate>Settings</flux:menu.item>
|
<flux:menu.item href="/settings/profile" icon="cog" wire:navigate>Settings</flux:menu.item>
|
||||||
<flux:menu.item href="{{ route('settings.server-configs') }}" icon="cpu" wire:navigate>Server Configs</flux:menu.item>
|
<flux:menu.item href="{{ route('settings.server-configs') }}" icon="cpu" wire:navigate>Inference Args</flux:menu.item>
|
||||||
</flux:menu.radio.group>
|
</flux:menu.radio.group>
|
||||||
|
|
||||||
<flux:menu.separator />
|
<flux:menu.separator />
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ private function sortDir(): string
|
||||||
</div>
|
</div>
|
||||||
@if ($this->run->serverConfig)
|
@if ($this->run->serverConfig)
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<flux:heading size="sm">{{ __('Server config') }} — {{ $this->run->serverConfig->name }}</flux:heading>
|
<flux:heading size="sm">{{ __('Inference args') }} — {{ $this->run->serverConfig->name }}</flux:heading>
|
||||||
<pre class="mt-2 overflow-x-auto rounded-lg bg-zinc-900 p-4 text-xs leading-relaxed text-zinc-100">{{ $this->run->serverConfig->config_yaml }}</pre>
|
<pre class="mt-2 overflow-x-auto rounded-lg bg-zinc-900 p-4 text-xs leading-relaxed text-zinc-100">{{ $this->run->serverConfig->config_yaml }}</pre>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ public function save(): void
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->modal('config-form')->close();
|
$this->modal('config-form')->close();
|
||||||
Flux::toast(variant: 'success', text: __('Server config saved.'));
|
Flux::toast(variant: 'success', text: __('Inference args saved.'));
|
||||||
|
|
||||||
// Config identity is part of the session grouping key — re-summarize
|
// Config identity is part of the session grouping key — re-summarize
|
||||||
// so linked runs regroup immediately.
|
// so linked runs regroup immediately.
|
||||||
|
|
@ -60,7 +60,7 @@ public function delete(int $id): void
|
||||||
{
|
{
|
||||||
ServerConfig::where('user_id', auth()->id())->whereKey($id)->firstOrFail()->delete();
|
ServerConfig::where('user_id', auth()->id())->whereKey($id)->firstOrFail()->delete();
|
||||||
|
|
||||||
Flux::toast(variant: 'success', text: __('Server config deleted.'));
|
Flux::toast(variant: 'success', text: __('Inference args deleted.'));
|
||||||
Illuminate\Support\Facades\Artisan::call('festbench:summary');
|
Illuminate\Support\Facades\Artisan::call('festbench:summary');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,10 +76,10 @@ public function with(): array
|
||||||
<div class="flex flex-col gap-6">
|
<div class="flex flex-col gap-6">
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<div>
|
<div>
|
||||||
<flux:heading size="xl">{{ __('Server Configs') }}</flux:heading>
|
<flux:heading size="xl">{{ __('Inference Args') }}</flux:heading>
|
||||||
<flux:subheading>{{ __('Named harness configs. Runs link to them; the config identity keeps differently-tuned sessions in their own groups.') }}</flux:subheading>
|
<flux:subheading>{{ __('Named inference server invocations. Runs link to them; the identity keeps differently-tuned sessions in their own groups.') }}</flux:subheading>
|
||||||
</div>
|
</div>
|
||||||
<flux:button variant="primary" icon="plus" wire:click="create">{{ __('New config') }}</flux:button>
|
<flux:button variant="primary" icon="plus" wire:click="create">{{ __('New inference args') }}</flux:button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if ($configs->isNotEmpty())
|
@if ($configs->isNotEmpty())
|
||||||
|
|
@ -109,16 +109,16 @@ public function with(): array
|
||||||
</flux:table>
|
</flux:table>
|
||||||
@else
|
@else
|
||||||
<flux:callout variant="brand">
|
<flux:callout variant="brand">
|
||||||
<flux:callout.heading>{{ __('No server configs yet') }}</flux:callout.heading>
|
<flux:callout.heading>{{ __('No inference args yet') }}</flux:callout.heading>
|
||||||
<flux:callout.text>{{ __('Save your llama.cpp / vllm args as a named config so runs group by their tuning.') }}</flux:callout.text>
|
<flux:callout.text>{{ __('Save your llama.cpp / vllm / hosted-provider invocation as a named entry so runs group by their tuning.') }}</flux:callout.text>
|
||||||
</flux:callout>
|
</flux:callout>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<flux:modal name="config-form" class="w-2xl">
|
<flux:modal name="config-form" class="w-2xl">
|
||||||
<div class="flex flex-col gap-4">
|
<div class="flex flex-col gap-4">
|
||||||
<div>
|
<div>
|
||||||
<flux:heading size="lg">{{ $editingId ? __('Edit config') : __('New config') }}</flux:heading>
|
<flux:heading size="lg">{{ $editingId ? __('Edit config') : __('New inference args') }}</flux:heading>
|
||||||
<flux:subheading>{{ __('Paste your harness args — the full server invocation (YAML or argv list).') }}</flux:subheading>
|
<flux:subheading>{{ __('Paste the full inference server invocation (YAML or argv list), or how a hosted model was addressed.') }}</flux:subheading>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<flux:input wire:model="name" :label="__('Name')" placeholder="{{ __('llama.cpp DFlash spec-decode, 131k ctx') }}" />
|
<flux:input wire:model="name" :label="__('Name')" placeholder="{{ __('llama.cpp DFlash spec-decode, 131k ctx') }}" />
|
||||||
|
|
@ -129,7 +129,7 @@ public function with(): array
|
||||||
@endforeach
|
@endforeach
|
||||||
</flux:select>
|
</flux:select>
|
||||||
|
|
||||||
<flux:textarea wire:model="config_yaml" :label="__('Harness args')" rows="12" class="font-mono text-xs" placeholder="--host 0.0.0.0 --port 8000 -hf model:Q5_K_M -ngl 99 ..." />
|
<flux:textarea wire:model="config_yaml" :label="__('Inference args')" rows="12" class="font-mono text-xs" placeholder="--host 0.0.0.0 --port 8000 -hf model:Q5_K_M -ngl 99 ..." />
|
||||||
|
|
||||||
<div class="flex justify-end gap-2">
|
<div class="flex justify-end gap-2">
|
||||||
<flux:button variant="ghost" wire:click="$toggle('config-form')">{{ __('Cancel') }}</flux:button>
|
<flux:button variant="ghost" wire:click="$toggle('config-form')">{{ __('Cancel') }}</flux:button>
|
||||||
|
|
|
||||||
|
|
@ -91,5 +91,5 @@
|
||||||
$this->actingAs(User::factory()->create())
|
$this->actingAs(User::factory()->create())
|
||||||
->get(route('settings.server-configs'))
|
->get(route('settings.server-configs'))
|
||||||
->assertOk()
|
->assertOk()
|
||||||
->assertSee('Server Configs');
|
->assertSee('Inference Args');
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue