Skip to content

Commit c333ff8

Browse files
[Leo] 2026 Feb Model Upgrade (#33973)
* [Leo] update models * add near GLM 5 * address netzen comments * formatting * add removed models to clearprefs migration * correct model key name to chat-near-deepseek * clean up strings --------- Co-authored-by: jameshawrych <69646550+jameshawrych@users.noreply.github.com>
1 parent 70d8cec commit c333ff8

File tree

5 files changed

+70
-63
lines changed

5 files changed

+70
-63
lines changed

browser/ui/webui/settings/brave_settings_localized_strings_provider.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -593,10 +593,10 @@ void BraveAddCommonStrings(content::WebUIDataSource* html_source,
593593
{"braveLeoModelSubtitle-chat-claude-sonnet",
594594
IDS_CHAT_UI_CHAT_CLAUDE_SONNET_SUBTITLE},
595595
{"braveLeoModelSubtitle-chat-qwen", IDS_CHAT_UI_CHAT_QWEN_SUBTITLE},
596-
{"braveLeoModelSubtitle-chat-near-deepseek-v3-1",
597-
IDS_CHAT_UI_CHAT_NEAR_DEEPSEEK_V3_1_SUBTITLE},
598-
{"braveLeoModelSubtitle-chat-llama-4-scout",
599-
IDS_CHAT_UI_CHAT_LLAMA_4_SCOUT_SUBTITLE},
596+
{"braveLeoModelSubtitle-chat-near-glm-5",
597+
IDS_CHAT_UI_CHAT_NEAR_GLM_5_SUBTITLE},
598+
{"braveLeoModelSubtitle-chat-glm-4-7-flash",
599+
IDS_CHAT_UI_CHAT_GLM_4_7_FLASH_SUBTITLE},
600600
{"braveLeoModelSubtitle-chat-llama-4-maverick",
601601
IDS_CHAT_UI_CHAT_LLAMA_4_MAVERICK_SUBTITLE},
602602
{"braveLeoModelSubtitle-chat-gpt-oss-20b",
@@ -605,12 +605,12 @@ void BraveAddCommonStrings(content::WebUIDataSource* html_source,
605605
IDS_CHAT_UI_CHAT_GPT_OSS_120B_SUBTITLE},
606606
{"braveLeoModelSubtitle-chat-mistral-large",
607607
IDS_CHAT_UI_CHAT_MISTRAL_LARGE_SUBTITLE},
608-
{"braveLeoModelSubtitle-chat-pixtral-large",
609-
IDS_CHAT_UI_CHAT_PIXTRAL_LARGE_SUBTITLE},
608+
{"braveLeoModelSubtitle-chat-kimi-k2-5",
609+
IDS_CHAT_UI_CHAT_KIMI_K2_5_SUBTITLE},
610610
{"braveLeoModelSubtitle-chat-qwen-3-235b",
611611
IDS_CHAT_UI_CHAT_QWEN_3_235B_SUBTITLE},
612-
{"braveLeoModelSubtitle-chat-deepseek-v3-1",
613-
IDS_CHAT_UI_CHAT_DEEPSEEK_V3_1_SUBTITLE},
612+
{"braveLeoModelSubtitle-chat-deepseek-v3-2",
613+
IDS_CHAT_UI_CHAT_DEEPSEEK_V3_2_SUBTITLE},
614614
{"braveLeoModelSubtitle-chat-qwen-3-coder-480b",
615615
IDS_CHAT_UI_CHAT_QWEN_3_CODER_480B_SUBTITLE},
616616
{"braveLeoModelSubtitle-chat-claude-opus",

components/ai_chat/core/browser/model_service.cc

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -210,11 +210,11 @@ const std::vector<mojom::ModelPtr>& GetLeoModels() {
210210
models.push_back(std::move(model));
211211
}
212212

213-
// Llama 4 Scout
213+
// GLM 4.7 Flash
214214
{
215215
auto options = mojom::LeoModelOptions::New();
216-
options->display_maker = "Meta";
217-
options->name = "llama-4-scout";
216+
options->display_maker = "Z.ai";
217+
options->name = "glm-4-7-flash";
218218
options->category = mojom::ModelCategory::CHAT;
219219
options->access = features::kFreemiumAvailable.Get()
220220
? mojom::ModelAccess::BASIC_AND_PREMIUM
@@ -223,10 +223,10 @@ const std::vector<mojom::ModelPtr>& GetLeoModels() {
223223
options->long_conversation_warning_character_limit = 9700;
224224

225225
auto model = mojom::Model::New();
226-
model->key = "chat-llama-4-scout";
227-
model->display_name = "Llama 4 Scout";
226+
model->key = "chat-glm-4-7-flash";
227+
model->display_name = "GLM 4.7 Flash";
228228
model->vision_support = true;
229-
model->supports_tools = false;
229+
model->supports_tools = true;
230230
model->is_suggested_model = false;
231231
model->is_near_model = false;
232232
model->options =
@@ -331,21 +331,21 @@ const std::vector<mojom::ModelPtr>& GetLeoModels() {
331331
models.push_back(std::move(model));
332332
}
333333

334-
// Pixtral Large
334+
// Kimi K2.5
335335
{
336336
auto options = mojom::LeoModelOptions::New();
337-
options->display_maker = "Mistral";
338-
options->name = "pixtral-large";
337+
options->display_maker = "Moonshot AI";
338+
options->name = "kimi-k2-5";
339339
options->category = mojom::ModelCategory::CHAT;
340340
options->access = mojom::ModelAccess::PREMIUM;
341341
options->max_associated_content_length = 64000;
342342
options->long_conversation_warning_character_limit = 9700;
343343

344344
auto model = mojom::Model::New();
345-
model->key = "chat-pixtral-large";
346-
model->display_name = "Pixtral Large";
347-
model->vision_support = true;
348-
model->supports_tools = false;
345+
model->key = "chat-kimi-k2-5";
346+
model->display_name = "Kimi K2.5";
347+
model->vision_support = false;
348+
model->supports_tools = true;
349349
model->is_suggested_model = false;
350350
model->is_near_model = false;
351351
model->options =
@@ -377,19 +377,19 @@ const std::vector<mojom::ModelPtr>& GetLeoModels() {
377377
models.push_back(std::move(model));
378378
}
379379

380-
// Deepseek V3.1
380+
// Deepseek V3.2
381381
{
382382
auto options = mojom::LeoModelOptions::New();
383383
options->display_maker = "Deepseek";
384-
options->name = "deepseek-v3-1";
384+
options->name = "deepseek-v3-2";
385385
options->category = mojom::ModelCategory::CHAT;
386386
options->access = mojom::ModelAccess::PREMIUM;
387387
options->max_associated_content_length = 64000;
388388
options->long_conversation_warning_character_limit = 9700;
389389

390390
auto model = mojom::Model::New();
391-
model->key = "chat-deepseek-v3-1";
392-
model->display_name = "Deepseek V3.1";
391+
model->key = "chat-deepseek-v3-2";
392+
model->display_name = "Deepseek V3.2";
393393
model->vision_support = false;
394394
model->supports_tools = false;
395395
model->is_suggested_model = false;
@@ -471,19 +471,19 @@ const std::vector<mojom::ModelPtr>& GetLeoModels() {
471471
models.push_back(std::move(model));
472472
}
473473

474-
// DeepSeek V3.1 (NEAR)
474+
// GLM-5 (NEAR)
475475
if (features::IsNEARModelsEnabled()) {
476476
auto options = mojom::LeoModelOptions::New();
477-
options->display_maker = "DeepSeek";
478-
options->name = "near-deepseek-v3-1";
477+
options->display_maker = "Z.ai";
478+
options->name = "near-glm-5";
479479
options->category = mojom::ModelCategory::CHAT;
480480
options->access = kFreemiumAccess;
481481
options->max_associated_content_length = 128000;
482482
options->long_conversation_warning_character_limit = 128000;
483483

484484
auto model = mojom::Model::New();
485-
model->key = "chat-near-deepseek-v3-1";
486-
model->display_name = "DeepSeek V3.1";
485+
model->key = "chat-near-glm-5";
486+
model->display_name = "GLM-5";
487487
model->vision_support = false;
488488
model->supports_tools = false;
489489
model->is_suggested_model = true;
@@ -593,14 +593,19 @@ void ModelService::MigrateProfilePrefs(PrefService* profile_prefs) {
593593
if (ai_chat::features::IsAIChatEnabled()) {
594594
profile_prefs->ClearPref(prefs::kObseleteBraveChatAutoGenerateQuestions);
595595

596-
// Migrate old model keys to kChatAutomaticModelKey
597-
constexpr std::array<const char*, 3> kOldModelKeys = {
596+
// Migrate old model keys to "chat-automatic"
597+
constexpr std::array<const char*, 7> kOldModelKeys = {
598598
// Added: June 6, 2024. Checks can be removed eventually
599599
"chat-default",
600600
// Added: May 28, 2025. Checks can be removed eventually
601601
"chat-leo-expanded",
602602
// Added: July 15, 2025. Checks can be removed eventually
603603
"chat-vision-basic",
604+
// These 4 added Feb 26, 2026. Checks can be removed eventually
605+
"chat-llama-4-scout",
606+
"chat-pixtral-large",
607+
"chat-deepseek-v3-1",
608+
"chat-near-deepseek-v3-1",
604609
};
605610

606611
if (auto* default_model_value =
@@ -769,15 +774,15 @@ ModelService::GetModelsWithSubtitles() {
769774
} else if (model->key == "chat-qwen") {
770775
model_with_subtitle->subtitle =
771776
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_QWEN_SUBTITLE);
772-
} else if (model->key == "chat-near-deepseek-v3-1") {
773-
model_with_subtitle->subtitle = l10n_util::GetStringUTF8(
774-
IDS_CHAT_UI_CHAT_NEAR_DEEPSEEK_V3_1_SUBTITLE);
775-
} else if (model->key == kChatAutomaticModelKey) {
777+
} else if (model->key == "chat-near-glm-5") {
778+
model_with_subtitle->subtitle =
779+
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_NEAR_GLM_5_SUBTITLE);
780+
} else if (model->key == "chat-automatic") {
776781
model_with_subtitle->subtitle =
777782
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_AUTOMATIC_SUBTITLE);
778-
} else if (model->key == "chat-llama-4-scout") {
783+
} else if (model->key == "chat-glm-4-7-flash") {
779784
model_with_subtitle->subtitle =
780-
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_LLAMA_4_SCOUT_SUBTITLE);
785+
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_GLM_4_7_FLASH_SUBTITLE);
781786
} else if (model->key == "chat-llama-4-maverick") {
782787
model_with_subtitle->subtitle = l10n_util::GetStringUTF8(
783788
IDS_CHAT_UI_CHAT_LLAMA_4_MAVERICK_SUBTITLE);
@@ -790,15 +795,15 @@ ModelService::GetModelsWithSubtitles() {
790795
} else if (model->key == "chat-mistral-large") {
791796
model_with_subtitle->subtitle =
792797
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_MISTRAL_LARGE_SUBTITLE);
793-
} else if (model->key == "chat-pixtral-large") {
798+
} else if (model->key == "chat-kimi-k2-5") {
794799
model_with_subtitle->subtitle =
795-
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_PIXTRAL_LARGE_SUBTITLE);
800+
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_KIMI_K2_5_SUBTITLE);
796801
} else if (model->key == "chat-qwen-3-235b") {
797802
model_with_subtitle->subtitle =
798803
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_QWEN_3_235B_SUBTITLE);
799-
} else if (model->key == "chat-deepseek-v3-1") {
804+
} else if (model->key == "chat-deepseek-v3-2") {
800805
model_with_subtitle->subtitle =
801-
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_DEEPSEEK_V3_1_SUBTITLE);
806+
l10n_util::GetStringUTF8(IDS_CHAT_UI_CHAT_DEEPSEEK_V3_2_SUBTITLE);
802807
} else if (model->key == "chat-qwen-3-coder-480b") {
803808
model_with_subtitle->subtitle = l10n_util::GetStringUTF8(
804809
IDS_CHAT_UI_CHAT_QWEN_3_CODER_480B_SUBTITLE);

components/ai_chat/resources/common/constants.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@ export const IGNORE_EXTERNAL_LINK_WARNING_KEY = 'IGNORE_EXTERNAL_LINK_WARNING'
99

1010
const modelIcons = {
1111
'chat-automatic': 'product-brave-leo',
12-
'chat-near-deepseek-v3-1': 'deepseek-color',
12+
'chat-near-glm-5': 'zai-color',
1313
'chat-claude-instant': 'anthropic-color',
1414
'chat-claude-haiku': 'anthropic-color',
1515
'chat-claude-sonnet': 'anthropic-color',
1616
'chat-qwen': 'qwen-color',
1717
'chat-brave-summary': 'social-brave-release-favicon-fullheight-color',
1818
'chat-basic': 'meta-color',
19-
'chat-llama-4-scout': 'meta-color',
19+
'chat-glm-4-7-flash': 'zai-color',
2020
'chat-llama-4-maverick': 'meta-color',
2121
'chat-gpt-oss-20b': 'openai-color',
2222
'chat-gpt-oss-120b': 'openai-color',
2323
'chat-mistral-large': 'mistral-color',
24-
'chat-pixtral-large': 'mistral-color',
24+
'chat-kimi-k2-5': 'kimi-color',
2525
'chat-qwen-3-235b': 'qwen-color',
26-
'chat-deepseek-v3-1': 'deepseek-color',
26+
'chat-deepseek-v3-2': 'deepseek-color',
2727
'chat-qwen-3-coder-480b': 'qwen-color',
2828
'chat-claude-opus': 'anthropic-color',
2929
}

0 commit comments

Comments
 (0)