diff --git a/apps/web/src/components/model-selector.tsx b/apps/web/src/components/model-selector.tsx index 5cdd3068..792df0db 100644 --- a/apps/web/src/components/model-selector.tsx +++ b/apps/web/src/components/model-selector.tsx @@ -156,7 +156,7 @@ function ModelItem({ isSelected && "bg-accent/60", )} > - + getModelById(models, value), [models, value]); const uniqueProviders = useMemo(() => { - const providerMap = new Map(); + const providerMap = new Map(); for (const model of models) { const existing = providerMap.get(model.providerId); if (existing) { @@ -259,6 +259,7 @@ export function ModelSelector({ providerMap.set(model.providerId, { id: model.providerId, name: model.provider, + logoId: model.logoId, count: 1, }); } @@ -457,7 +458,7 @@ export function ModelSelector({ > {selectedModel ? ( <> - + {selectedModel.name} ) : ( @@ -572,7 +573,7 @@ export function ModelSelector({ : "bg-muted/50 text-muted-foreground active:bg-accent active:text-foreground", )} > - + {provider.name} ))} @@ -714,7 +715,7 @@ export function ModelSelector({ )} title={provider.name} > - + ))} diff --git a/apps/web/src/routes/settings.tsx b/apps/web/src/routes/settings.tsx index 30422ee0..2f58362b 100644 --- a/apps/web/src/routes/settings.tsx +++ b/apps/web/src/routes/settings.tsx @@ -850,7 +850,7 @@ function ModelsSection() { {models.slice(0, 8).map((model) => (
{model.provider} { diff --git a/apps/web/src/stores/model.ts b/apps/web/src/stores/model.ts index 39196f31..1f86fae0 100644 --- a/apps/web/src/stores/model.ts +++ b/apps/web/src/stores/model.ts @@ -39,7 +39,8 @@ export interface Model { id: string; name: string; provider: string; // Provider display name (e.g., "Anthropic") - providerId: string; // Provider slug for logos (e.g., "anthropic") + providerId: string; // Provider slug from model ID (e.g., "meta-llama", "qwen") + logoId: string; // Logo slug for models.dev (e.g., "llama", "alibaba") family?: string; // Model family (e.g., "claude-3.5") description?: string; contextLength?: number; @@ -60,7 +61,7 @@ const PROVIDER_INFO: Record = { openai: { name: "OpenAI", logoId: "openai" }, anthropic: { name: "Anthropic", logoId: "anthropic" }, google: { name: "Google", logoId: "google" }, - "meta-llama": { name: "Meta Llama", logoId: "llama" }, + "meta-llama": { name: "Llama", logoId: "llama" }, mistralai: { name: "Mistral", logoId: "mistral" }, deepseek: { name: "DeepSeek", logoId: "deepseek" }, "x-ai": { name: "xAI", logoId: "xai" }, @@ -291,7 +292,8 @@ function transformModel(raw: OpenRouterModel): Model { id, name: raw.name || id, provider: info.name, - providerId: info.logoId, + providerId: providerSlug, + logoId: info.logoId, family: extractFamily(id, raw.name || ""), description: raw.description, contextLength: raw.context_length, @@ -412,6 +414,7 @@ function getFallbackModels(): Model[] { name: "Claude 3.5 Sonnet", provider: "Anthropic", providerId: "anthropic", + logoId: "anthropic", family: "Claude 3.5", isPopular: true, }, @@ -420,6 +423,7 @@ function getFallbackModels(): Model[] { name: "GPT-4o", provider: "OpenAI", providerId: "openai", + logoId: "openai", family: "GPT-4o", isPopular: true, }, @@ -428,6 +432,7 @@ function getFallbackModels(): Model[] { name: "GPT-4o Mini", provider: "OpenAI", providerId: "openai", + logoId: "openai", family: "GPT-4o", isPopular: true, }, @@ -436,6 +441,7 @@ function getFallbackModels(): Model[] { name: "Gemini 2.5 Flash", provider: "Google", providerId: "google", + logoId: "google", family: "Gemini 2.5", isPopular: true, }, @@ -444,14 +450,16 @@ function getFallbackModels(): Model[] { name: "DeepSeek Chat", provider: "DeepSeek", providerId: "deepseek", + logoId: "deepseek", family: "DeepSeek", isPopular: true, }, { id: "meta-llama/llama-3.3-70b-instruct", name: "Llama 3.3 70B", - provider: "Meta Llama", - providerId: "llama", + provider: "Llama", + providerId: "meta-llama", + logoId: "llama", family: "Llama 3.3", isPopular: true, },