fix: Remove hardcoded model names from UI to prevent staleness
- Remove model references from provider labels ('OpenAI' not 'OpenAI (GPT-4)')
- Remove DEFAULT_MODELS usage in form initialization
- Use generic placeholders instead of specific model names
- Models are now fetched dynamically from each provider's API
- UI won't become outdated when new models are released
This commit is contained in:
parent
6e19232b02
commit
a082fd3fc1
2 changed files with 12 additions and 13 deletions
|
|
@ -18,10 +18,10 @@ import type {
|
||||||
|
|
||||||
// Provider display names for grouped model selection
|
// Provider display names for grouped model selection
|
||||||
const PROVIDER_DISPLAY_NAMES: Record<string, string> = {
|
const PROVIDER_DISPLAY_NAMES: Record<string, string> = {
|
||||||
anthropic: 'Anthropic (Claude)',
|
anthropic: 'Anthropic',
|
||||||
openai: 'OpenAI (GPT)',
|
openai: 'OpenAI',
|
||||||
deepseek: 'DeepSeek',
|
deepseek: 'DeepSeek',
|
||||||
ollama: 'Ollama (Local)',
|
ollama: 'Ollama',
|
||||||
};
|
};
|
||||||
|
|
||||||
// Parse provider from model ID (format: "provider:model-name")
|
// Parse provider from model ID (format: "provider:model-name")
|
||||||
|
|
|
||||||
|
|
@ -8,16 +8,15 @@ import { notificationStore } from '@/stores/notifications';
|
||||||
import { logger } from '@/utils/logger';
|
import { logger } from '@/utils/logger';
|
||||||
import { AIAPI } from '@/api/ai';
|
import { AIAPI } from '@/api/ai';
|
||||||
import type { AISettings as AISettingsType, AIProvider, AuthMethod } from '@/types/ai';
|
import type { AISettings as AISettingsType, AIProvider, AuthMethod } from '@/types/ai';
|
||||||
import { DEFAULT_MODELS } from '@/types/ai';
|
|
||||||
|
|
||||||
// Providers are now configured via accordion sections, not a single-provider selector
|
// Providers are now configured via accordion sections, not a single-provider selector
|
||||||
|
|
||||||
// Provider display names for optgroup labels
|
// Provider display names for optgroup labels
|
||||||
const PROVIDER_DISPLAY_NAMES: Record<string, string> = {
|
const PROVIDER_DISPLAY_NAMES: Record<string, string> = {
|
||||||
anthropic: 'Anthropic (Claude)',
|
anthropic: 'Anthropic',
|
||||||
openai: 'OpenAI (GPT)',
|
openai: 'OpenAI',
|
||||||
deepseek: 'DeepSeek',
|
deepseek: 'DeepSeek',
|
||||||
ollama: 'Ollama (Local)',
|
ollama: 'Ollama',
|
||||||
};
|
};
|
||||||
|
|
||||||
// Parse provider from model ID (format: "provider:model-name")
|
// Parse provider from model ID (format: "provider:model-name")
|
||||||
|
|
@ -98,7 +97,7 @@ export const AISettings: Component = () => {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
provider: 'anthropic',
|
provider: 'anthropic',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
model: DEFAULT_MODELS.anthropic,
|
model: '', // Will be set when provider is configured
|
||||||
chatModel: '',
|
chatModel: '',
|
||||||
patrolModel: '',
|
patrolModel: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
|
|
@ -122,7 +121,7 @@ export const AISettings: Component = () => {
|
||||||
enabled: data.enabled,
|
enabled: data.enabled,
|
||||||
provider: data.provider,
|
provider: data.provider,
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
model: data.model || DEFAULT_MODELS[data.provider],
|
model: data.model || '', // User must select a model
|
||||||
chatModel: data.chat_model || '',
|
chatModel: data.chat_model || '',
|
||||||
patrolModel: data.patrol_model || '',
|
patrolModel: data.patrol_model || '',
|
||||||
baseUrl: data.base_url || '',
|
baseUrl: data.base_url || '',
|
||||||
|
|
@ -470,7 +469,7 @@ export const AISettings: Component = () => {
|
||||||
type="text"
|
type="text"
|
||||||
value={form.model}
|
value={form.model}
|
||||||
onInput={(e) => setForm('model', e.currentTarget.value)}
|
onInput={(e) => setForm('model', e.currentTarget.value)}
|
||||||
placeholder={DEFAULT_MODELS[form.provider]}
|
placeholder="Configure a provider below to see available models"
|
||||||
class={controlClass()}
|
class={controlClass()}
|
||||||
disabled={saving()}
|
disabled={saving()}
|
||||||
/>
|
/>
|
||||||
|
|
@ -614,7 +613,7 @@ export const AISettings: Component = () => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<span class="font-medium text-sm">Anthropic (Claude)</span>
|
<span class="font-medium text-sm">Anthropic</span>
|
||||||
<Show when={settings()?.anthropic_configured}>
|
<Show when={settings()?.anthropic_configured}>
|
||||||
<span class="px-1.5 py-0.5 text-[10px] font-semibold bg-green-100 dark:bg-green-900 text-green-700 dark:text-green-300 rounded">Configured</span>
|
<span class="px-1.5 py-0.5 text-[10px] font-semibold bg-green-100 dark:bg-green-900 text-green-700 dark:text-green-300 rounded">Configured</span>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
@ -682,7 +681,7 @@ export const AISettings: Component = () => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<span class="font-medium text-sm">OpenAI (GPT-4)</span>
|
<span class="font-medium text-sm">OpenAI</span>
|
||||||
<Show when={settings()?.openai_configured}>
|
<Show when={settings()?.openai_configured}>
|
||||||
<span class="px-1.5 py-0.5 text-[10px] font-semibold bg-green-100 dark:bg-green-900 text-green-700 dark:text-green-300 rounded">Configured</span>
|
<span class="px-1.5 py-0.5 text-[10px] font-semibold bg-green-100 dark:bg-green-900 text-green-700 dark:text-green-300 rounded">Configured</span>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
@ -826,7 +825,7 @@ export const AISettings: Component = () => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div class="flex items-center gap-2">
|
<div class="flex items-center gap-2">
|
||||||
<span class="font-medium text-sm">Ollama (Local)</span>
|
<span class="font-medium text-sm">Ollama</span>
|
||||||
<Show when={settings()?.ollama_configured}>
|
<Show when={settings()?.ollama_configured}>
|
||||||
<span class="px-1.5 py-0.5 text-[10px] font-semibold bg-green-100 dark:bg-green-900 text-green-700 dark:text-green-300 rounded">Available</span>
|
<span class="px-1.5 py-0.5 text-[10px] font-semibold bg-green-100 dark:bg-green-900 text-green-700 dark:text-green-300 rounded">Available</span>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue