Skip to content
Open
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
46 changes: 46 additions & 0 deletions packages/llms/src/models.live.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
* TESTING_OPENROUTER_KEY=...
* TESTING_DEEPSEEK_KEY=...
* TESTING_ALIYUN_KEY=...
* TESTING_MINIMAX_KEY=...
* TESTING_MINIMAX_CN_KEY=...
*/
import { config as dotenvConfig } from 'dotenv'
import { dirname, resolve } from 'path'
Expand Down Expand Up @@ -152,6 +154,17 @@ const PROVIDERS = {
baseURL: 'https://api.deepseek.com',
apiKey: process.env.TESTING_DEEPSEEK_KEY,
},
// MiniMax exposes the same OpenAI-compatible model ids on two regional
// hosts: the global host (api.minimax.io) and the China host
// (api.minimaxi.com). Each needs its own key.
minimax: {
baseURL: 'https://api.minimax.io/v1',
apiKey: process.env.TESTING_MINIMAX_KEY,
},
minimaxChina: {
baseURL: 'https://api.minimaxi.com/v1',
apiKey: process.env.TESTING_MINIMAX_CN_KEY,
},
} as const

const ECHO_TOOL: Tool<{ message: string }, string> = {
Expand Down Expand Up @@ -228,3 +241,36 @@ describe.concurrent('DeepSeek — native', () => {
)
}
})

// MiniMax's own OpenAI-compatible API serves the current generation
// (MiniMax-M3, MiniMax-M2.7). The older MiniMax-M2.5 is only reachable via
// OpenRouter resellers, not the native endpoints, so it is excluded here.
const MINIMAX_NATIVE_MODELS = MODEL_GROUPS.MiniMax.filter((model) => model !== 'MiniMax-M2.5')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Exercise M2.5 on MiniMax native endpoints

When TESTING_MINIMAX_KEY or TESTING_MINIMAX_CN_KEY is present, this filter skips MiniMax-M2.5 even though the native MiniMax OpenAI SDK docs for both hosts list MiniMax-M2.5 as supported (https://platform.minimax.io/docs/api-reference/text-openai-api and https://platform.minimaxi.com/docs/api-reference/text-openai-api). That leaves one of the public models listed in the docs untested on the native endpoints, so a native-only request/response-format regression for M2.5 would still pass this live suite; include it here or gate the exclusion on a current documented incompatibility.

Useful? React with 👍 / 👎.


describe.concurrent('MiniMax — global native', () => {
const { baseURL, apiKey } = PROVIDERS.minimax

for (const model of MINIMAX_NATIVE_MODELS) {
it.skipIf(!apiKey)(
model,
async () => {
await expectEchoToolCall(baseURL, apiKey!, model)
},
TEST_TIMEOUT
)
}
})

describe.concurrent('MiniMax — China native', () => {
const { baseURL, apiKey } = PROVIDERS.minimaxChina

for (const model of MINIMAX_NATIVE_MODELS) {
it.skipIf(!apiKey)(
model,
async () => {
await expectEchoToolCall(baseURL, apiKey!, model)
},
TEST_TIMEOUT
)
}
})
6 changes: 1 addition & 5 deletions packages/website/src/pages/docs/features/models/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,7 @@ const MODEL_GROUPS: Record<string, string[]> = {
'claude-sonnet-4-5',
'claude-haiku-4-5',
],
MiniMax: [
// 'MiniMax-M3', low success rate
'MiniMax-M2.7',
'MiniMax-M2.5',
],
MiniMax: ['MiniMax-M3', 'MiniMax-M2.7', 'MiniMax-M2.5'],
xAI: ['grok-4.5', 'grok-4.3', 'grok-build-0.1'],
Tencent: ['hy3'],
MoonshotAI: ['kimi-k3', 'kimi-k2.7-code', 'kimi-k2.6', 'kimi-k2.5'],
Expand Down