fix(ai): localize MiniMax default endpoint

This commit is contained in:
zipg authored and GitHub committed 2026-09-09 22:36:26 +08:00
1 parent 41b5e51dcc
commit c32be4185f
3 files changed
+23 -2

No files matched your search

@@ -67,6 +67,7 @@ import {
normalizeAiHeaders,
getAiProviderPreset,
getAiProviderPresetId,
getAiProviderPresetDefaultEndpoint,
getAiProviderPresetOption,
isAiPartnerProviderPreset,
type AiProvider,
@@ -247,7 +248,7 @@ import { METADATA_CACHE_HARD_MAX_MEMORY_MB, METADATA_CACHE_MIN_MEMORY_MB, normal
import { databaseManifestEntry, manifestDatabaseTypes } from "@/lib/database/databaseDriverManifest";
import { buildConnectionGroupIdPathMap, connectionGroupDestinationRows, connectionIdsInGroups } from "@/lib/sidebar/sidebarLayout";
const { t } = useI18n();
const { t, locale } = useI18n();
const { toast } = useToast();
const settingsStore = useSettingsStore();
const connectionStore = useConnectionStore();
@@ -4368,7 +4369,7 @@ function aiSelectProvider(presetId: string) {
aiEditProvider.value = provider;
aiEditApiKey.value = "";
aiEditAuthMethod.value = preset.authMethod;
aiEditEndpoint.value = preset.endpoint;
aiEditEndpoint.value = getAiProviderPresetDefaultEndpoint(preset, locale.value);
aiEditModel.value = preset.group === "partner" ? preset.model : "";
aiEditLegacyModels.value = preset.group === "partner" ? [...(preset.models ?? [])] : [];
aiEditApiStyle.value = preset.apiStyle;
+13
View File
@@ -7,6 +7,7 @@ import {
EXECUTE_MODE_CURRENT_DEFAULT_VERSION,
SIDEBAR_BROWSE_OBJECTS_MIGRATION_VERSION,
enforceRightSidebarPanelExclusivity,
getAiProviderPresetDefaultEndpoint,
normalizeAiConfig,
normalizeDesktopSettings,
normalizeEditorSettings,
@@ -771,6 +772,18 @@ describe("settingsStore AI API key normalization", () => {
expect(normalizeAiConfig({ endpoint: "https://api.moonshot.cn/v1", model: "kimi-k2.5" }).provider).toBe("kimi");
});
it("uses the mainland MiniMax endpoint only for new zh-CN presets", () => {
expect(getAiProviderPresetDefaultEndpoint(AI_PROVIDER_PRESETS.minimax, "zh-CN")).toBe("https://api.minimaxi.com/v1");
expect(getAiProviderPresetDefaultEndpoint(AI_PROVIDER_PRESETS.minimax, "zh-TW")).toBe("https://api.minimax.io/v1");
expect(getAiProviderPresetDefaultEndpoint(AI_PROVIDER_PRESETS.minimax, "en")).toBe("https://api.minimax.io/v1");
expect(getAiProviderPresetDefaultEndpoint(AI_PROVIDER_PRESETS.openai, "zh-CN")).toBe(AI_PROVIDER_PRESETS.openai.endpoint);
});
it("preserves saved MiniMax endpoints during normalization", () => {
expect(normalizeAiConfig({ provider: "minimax", endpoint: "https://api.minimaxi.com/v1" }).endpoint).toBe("https://api.minimaxi.com/v1");
expect(normalizeAiConfig({ provider: "minimax", endpoint: "https://minimax.example.com/v1" }).endpoint).toBe("https://minimax.example.com/v1");
});
it("normalizes OpenCode CLI path and environment settings", () => {
expect(
normalizeAiConfig({
+7
View File
@@ -486,6 +486,13 @@ export function getAiProviderPresetOption(id: string): AiProviderPreset | AiPart
return AI_PROVIDER_PARTNER_PRESETS.find((preset) => preset.id === id) ?? AI_PROVIDER_PRESETS[id as AiProvider] ?? AI_PROVIDER_PRESETS.custom;
}
export function getAiProviderPresetDefaultEndpoint(preset: AiProviderPreset | AiPartnerProviderPreset, locale: string): string {
if (preset.provider === "minimax" && locale === "zh-CN") {
return "https://api.minimaxi.com/v1";
}
return preset.endpoint;
}
export function getAiProviderPresetId(provider: AiProvider, endpoint = ""): string {
const preset = getAiProviderPreset(provider, endpoint);
return "id" in preset ? preset.id : provider;