fix(ai): localize MiniMax default endpoint
This commit is contained in:
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;
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user