Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions frontend/src/components/Marketing.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ const AI_MODELS = [
{
src: "/badge-kimi-logo.png",
alt: "Moonshot",
labels: ["Kimi K2"]
labels: ["Kimi K2", "Kimi K2.5"]
},
{ src: "/badge-qwen-logo.png", alt: "Qwen", labels: ["Qwen3 Coder", "Qwen3-VL"] },
{ src: "/badge-qwen-logo.png", alt: "Qwen", labels: ["Qwen3-VL"] },
{ src: "/badge-meta-logo.png", alt: "Meta", labels: ["Meta Llama"] }
];

Expand Down
20 changes: 10 additions & 10 deletions frontend/src/components/ModelSelector.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,28 +71,28 @@ export const MODEL_CONFIG: Record<string, ModelCfg> = {
"kimi-k2-thinking": {
displayName: "Kimi K2 Thinking",
shortName: "Kimi K2",
badges: ["Pro", "Reasoning", "New"],
badges: ["Pro", "Reasoning"],
requiresPro: true,
tokenLimit: 256000
},
"kimi-k2-5": {
displayName: "Kimi K2.5",
shortName: "Kimi K2.5",
badges: ["Pro", "New"],
requiresPro: true,
supportsVision: true,
tokenLimit: 256000
},
"gpt-oss-120b": {
displayName: "OpenAI GPT-OSS 120B",
shortName: "GPT-OSS",
badges: ["Pro"],
requiresPro: true,
tokenLimit: 128000
},
"qwen3-coder-480b": {
displayName: "Qwen3 Coder 480B",
shortName: "Qwen3 Coder",
badges: ["Pro"],
requiresPro: true,
tokenLimit: 128000
},
"qwen3-vl-30b": {
displayName: "Qwen3-VL 30B",
shortName: "Qwen3-VL",
badges: ["New"],
requiresStarter: true,
supportsVision: true,
tokenLimit: 256000
Expand All @@ -115,7 +115,7 @@ export const CATEGORY_MODELS = {
quick: "gpt-oss-120b",
reasoning_on: "kimi-k2-thinking", // Kimi K2 with thinking
reasoning_off: "deepseek-r1-0528", // DeepSeek R1 without thinking
math: "qwen3-coder-480b",
math: "kimi-k2-5",
image: "qwen3-vl-30b" // Qwen3-VL for image analysis
};

Expand Down
7 changes: 4 additions & 3 deletions frontend/src/state/LocalStateContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ function getInitialModel(): string {
// Priority 1: Check local storage for last used model
const selectedModel = localStorage.getItem("selectedModel");
if (selectedModel) {
return selectedModel;
return aliasModelName(selectedModel);
}

// Priority 2: Check cached billing status for pro/max/team users
Expand Down Expand Up @@ -76,9 +76,10 @@ export const LocalStateProvider = ({ children }: { children: React.ReactNode })

async function persistChat(chat: Chat) {
const chatToSave = {
...chat,

/** If a model is missing, assume the default Llama and write it now */
model: aliasModelName(chat.model) || DEFAULT_MODEL_ID,
...chat
model: aliasModelName(chat.model) || DEFAULT_MODEL_ID
};

console.log("Persisting chat:", chatToSave);
Expand Down
4 changes: 4 additions & 0 deletions frontend/src/utils/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,5 +89,9 @@ export function aliasModelName(modelName: string | undefined): string {
return "llama-3.3-70b";
}

if (modelName === "qwen3-coder-480b") {
return "kimi-k2-5";
}

return modelName;
}
Loading